blob: 91b67916b8976dc2c54fef8ff39b3450c0f72a9b [file] [log] [blame]
package events
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type Trigger struct {
Namespace string `json:"namespace"`
Template string `json:"template"`
}
type AppManager interface {
QueryTriggers(triggerOnType string, triggerOnEvent string) ([]Trigger, error)
}
type appManagerClient struct {
addr string
}
func NewAppManagerClient(addr string) AppManager {
return &appManagerClient{addr}
}
func (c *appManagerClient) QueryTriggers(triggerOnType string, triggerOnEvent string) ([]Trigger, error) {
triggerUrl := fmt.Sprintf("%s/triggers?trigger_on_type=%s&trigger_on_event=%s",
c.addr, triggerOnType, triggerOnEvent)
resp, err := http.Get(triggerUrl)
if err != nil {
return nil, err
}
respBody, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
triggers := make([]Trigger, 0)
if err := json.Unmarshal(respBody, &triggers); err != nil {
return nil, err
}
return triggers, nil
}