blob: 91b67916b8976dc2c54fef8ff39b3450c0f72a9b [file] [log] [blame]
giolekva8d9f1022020-05-13 20:13:36 +04001package events
2
3import (
4 "encoding/json"
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10type Trigger struct {
11 Namespace string `json:"namespace"`
12 Template string `json:"template"`
13}
14
15type AppManager interface {
16 QueryTriggers(triggerOnType string, triggerOnEvent string) ([]Trigger, error)
17}
18
19type appManagerClient struct {
20 addr string
21}
22
23func NewAppManagerClient(addr string) AppManager {
24 return &appManagerClient{addr}
25}
26
27func (c *appManagerClient) QueryTriggers(triggerOnType string, triggerOnEvent string) ([]Trigger, error) {
28 triggerUrl := fmt.Sprintf("%s/triggers?trigger_on_type=%s&trigger_on_event=%s",
29 c.addr, triggerOnType, triggerOnEvent)
30 resp, err := http.Get(triggerUrl)
31 if err != nil {
32 return nil, err
33 }
34 respBody, err := ioutil.ReadAll(resp.Body)
35 if err != nil {
36 return nil, err
37 }
38 triggers := make([]Trigger, 0)
39 if err := json.Unmarshal(respBody, &triggers); err != nil {
40 return nil, err
41 }
42 return triggers, nil
43}