blob: c37eedbdc6700e571b65a8f529f7bb59b20d986c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package realtime
import (
"github.com/Jeffail/gabs"
"github.com/matterbridge/Rocket.Chat.Go.SDK/models"
)
// GetPublicSettings gets public settings
//
// https://rocket.chat/docs/developer-guides/realtime-api/method-calls/get-public-settings
func (c *Client) GetPublicSettings() ([]models.Setting, error) {
rawResponse, err := c.ddp.Call("public-settings/get")
if err != nil {
return nil, err
}
document, _ := gabs.Consume(rawResponse)
sett, _ := document.Children()
var settings []models.Setting
for _, rawSetting := range sett {
setting := models.Setting{
ID: stringOrZero(rawSetting.Path("_id").Data()),
Type: stringOrZero(rawSetting.Path("type").Data()),
}
switch setting.Type {
case "boolean":
setting.ValueBool = rawSetting.Path("value").Data().(bool)
case "string":
setting.Value = stringOrZero(rawSetting.Path("value").Data())
case "code":
setting.Value = stringOrZero(rawSetting.Path("value").Data())
case "color":
setting.Value = stringOrZero(rawSetting.Path("value").Data())
case "int":
setting.ValueInt = rawSetting.Path("value").Data().(float64)
case "asset":
setting.ValueAsset = models.Asset{
DefaultUrl: stringOrZero(rawSetting.Path("value").Data().(map[string]interface{})["defaultUrl"]),
}
default:
// log.Println(setting.Type, rawSetting.Path("value").Data())
}
settings = append(settings, setting)
}
return settings, nil
}
|