-
Notifications
You must be signed in to change notification settings - Fork 0
/
services.go
57 lines (53 loc) · 1.4 KB
/
services.go
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
54
55
56
57
package staytus
import "encoding/json"
//GetService returns a service info. Requires service's permalink as an input
func (api *Staytus) GetService(permalink string) (*Service, error) {
request := &request{
ServicePermalink: permalink,
}
body, err := json.Marshal(request)
if err != nil {
return nil, err
}
data, err := api.post("api/v1/services/info", body)
if err != nil {
return nil, err
}
var service Service
if err := json.Unmarshal(data, &service); err != nil {
return nil, err
}
return &service, nil
}
//GetServices gets a list of services
func (api *Staytus) GetServices() ([]Service, error) {
data, err := api.post("api/v1/services/all", nil)
if err != nil {
return nil, err
}
var services []Service
if err := json.Unmarshal(data, &services); err != nil {
return nil, err
}
return services, nil
}
//SetServiceStatus sets the status for a service. Requires service's and status' permalink as an input
func (api *Staytus) SetServiceStatus(servicePermalink, statusPermalink string) (*Service, error) {
request := &request{
ServicePermalink: servicePermalink,
StatusPermalink: statusPermalink,
}
body, err := json.Marshal(request)
if err != nil {
return nil, err
}
data, err := api.post("api/v1/services/set_status", body)
if err != nil {
return nil, err
}
var service Service
if err := json.Unmarshal(data, &service); err != nil {
return nil, err
}
return &service, nil
}