event-processor: query app-manager for triggers instead of hard coding them
diff --git a/events/appmanager.go b/events/appmanager.go
new file mode 100644
index 0000000..91b6791
--- /dev/null
+++ b/events/appmanager.go
@@ -0,0 +1,43 @@
+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
+}