From 502899e07bbc23398fbcadf7a5e15624855bf877 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Wed, 11 Mar 2015 15:42:44 +0100 Subject: Initial commit. --- handler.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 handler.go (limited to 'handler.go') diff --git a/handler.go b/handler.go new file mode 100644 index 0000000..e0d40b8 --- /dev/null +++ b/handler.go @@ -0,0 +1,40 @@ +package main + +import ( + "encoding/json" + "log" + "net/http" +) + +func IndexHandler(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(400) + w.Write([]byte("Wrong URL.")) +} + +func WebhookFailureHandler(w http.ResponseWriter, r *http.Request) { + log.Println("Getting not-Post request on /webhook") + w.WriteHeader(400) + w.Write([]byte("Accepts only POST requests.")) +} + +func WebhookHandler(w http.ResponseWriter, r *http.Request) { + decoder := json.NewDecoder(r.Body) + var hook Webhook + err := decoder.Decode(&hook) + if err != nil { + log.Print(err) + w.WriteHeader(400) + w.Write([]byte("Wrong JSON.")) + return + } + if hook.Join != "" { + con.Join("#" + hook.Join) + con.Privmsg("#"+hook.Join, hook.Message) + con.Part("#" + hook.Join) + if hook.Target != "" { + con.Privmsg(hook.Target, hook.Message) + } + } else { + con.Privmsg(hook.Target, hook.Message) + } +} -- cgit v1.2.3