mirror of
https://github.com/jwetzell/showbridge-go.git
synced 2026-09-18 03:02:53 +00:00
rework osc message create syntax
This commit is contained in:
@@ -18,6 +18,7 @@ var (
|
||||
ErrParamNotStringSlice = errors.New("not a string slice")
|
||||
ErrParamNotByteSlice = errors.New("not a byte slice")
|
||||
ErrParamNotIntSlice = errors.New("not an int slice")
|
||||
ErrParamNotObjectSlice = errors.New("not an object slice")
|
||||
)
|
||||
|
||||
func (p Params) GetString(key string) (string, error) {
|
||||
@@ -143,3 +144,30 @@ func (p Params) GetByteSlice(key string) ([]byte, error) {
|
||||
|
||||
return byteSlice, nil
|
||||
}
|
||||
|
||||
func (p Params) GetObjectSlice(key string) ([]map[string]interface{}, error) {
|
||||
value, ok := p[key]
|
||||
if !ok {
|
||||
return nil, ErrParamNotFound
|
||||
}
|
||||
|
||||
alreadyObjectSlice, ok := value.([]map[string]interface{})
|
||||
if ok {
|
||||
return alreadyObjectSlice, nil
|
||||
}
|
||||
|
||||
interfaceSlice, ok := value.([]any)
|
||||
if !ok {
|
||||
return nil, ErrParamNotSlice
|
||||
}
|
||||
|
||||
objectSlice := make([]map[string]interface{}, len(interfaceSlice))
|
||||
for i, v := range interfaceSlice {
|
||||
obj, ok := v.(map[string]interface{})
|
||||
if !ok {
|
||||
return nil, ErrParamNotObjectSlice
|
||||
}
|
||||
objectSlice[i] = obj
|
||||
}
|
||||
return objectSlice, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user