iceservers with auth.

This commit is contained in:
Miroslav Šedivý
2021-03-17 15:47:49 +01:00
parent 4abe0a5dba
commit 552223d031
6 changed files with 82 additions and 34 deletions

View File

@ -1,6 +1,9 @@
package utils
import "encoding/json"
import (
"encoding/json"
"reflect"
)
func Unmarshal(in interface{}, raw []byte, callback func() error) error {
if err := json.Unmarshal(raw, &in); err != nil {
@ -8,3 +11,19 @@ func Unmarshal(in interface{}, raw []byte, callback func() error) error {
}
return callback()
}
func JsonStringAutoDecode(m interface{}) func(rf reflect.Kind, rt reflect.Kind, data interface{}) (interface{}, error) {
return func(rf reflect.Kind, rt reflect.Kind, data interface{}) (interface{}, error) {
if rf != reflect.String || rt == reflect.String {
return data, nil
}
raw := data.(string)
if raw != "" && (raw[0:1] == "{" || raw[0:1] == "[") {
err := json.Unmarshal([]byte(raw), &m)
return m, err
}
return data, nil
}
}