Files
ipe/functional/client.go
T
Claudemiro 8da763ec2f Refactor to make the maintanance simpler
- Fixed issue with webhooks
2018-11-25 17:40:43 +01:00

88 lines
1.8 KiB
Go

package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"net/http/httputil"
"github.com/pusher/pusher-http-go"
)
var client pusher.Client
func init() {
client = pusher.Client{
AppId: "1",
Key: "278d525bdf162c739803",
Secret: "7ad3753142a6693b25b9",
Host: ":8080",
Cluster: "hello",
}
}
func pusherPresenceAuth(res http.ResponseWriter, req *http.Request) {
log.Println("Presence Request")
presenceData := pusher.MemberData{
UserId: "1",
UserInfo: map[string]string{},
}
params, _ := ioutil.ReadAll(req.Body)
response, err := client.AuthenticatePresenceChannel(params, presenceData)
if err != nil {
panic(err)
}
_, _ = fmt.Fprint(res, string(response))
}
func pusherPrivateAuth(res http.ResponseWriter, req *http.Request) {
params, _ := ioutil.ReadAll(req.Body)
response, err := client.AuthenticatePrivateChannel(params)
log.Printf("Private Request %s", params)
log.Printf("Auth %s", response)
if err != nil {
panic(err)
}
_, _ = fmt.Fprint(res, string(response))
}
func triggerMessage(res http.ResponseWriter, _ *http.Request) {
_, err := client.Trigger("private-messages", "messages", "The message from server")
if err != nil {
panic(err)
}
_, _ = fmt.Fprint(res, "OK")
}
func hookcallback(res http.ResponseWriter, r *http.Request) {
bytes, err := httputil.DumpRequest(r, true)
if err != nil {
panic(err)
}
fmt.Println(string(bytes))
_, err = client.Trigger("private-webhook", "mywebhook", "The Webhoook from server")
if err != nil {
panic(err)
}
_, _ = fmt.Fprint(res, "OK")
}
func main() {
http.HandleFunc("/pusher/presence/auth", pusherPresenceAuth)
http.HandleFunc("/pusher/private/auth", pusherPrivateAuth)
http.HandleFunc("/trigger", triggerMessage)
http.HandleFunc("/hook", hookcallback)
http.Handle("/", http.FileServer(http.Dir("./")))
_ = http.ListenAndServe(":5000", nil)
}