From 12389d602eecf4adab0e394da19b2b808cb489b1 Mon Sep 17 00:00:00 2001 From: Wim Date: Sun, 4 Sep 2016 20:03:07 +0200 Subject: Add Gitter support --- vendor/github.com/mrexodia/wray/http_transport.go | 55 +++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 vendor/github.com/mrexodia/wray/http_transport.go (limited to 'vendor/github.com/mrexodia/wray/http_transport.go') diff --git a/vendor/github.com/mrexodia/wray/http_transport.go b/vendor/github.com/mrexodia/wray/http_transport.go new file mode 100644 index 00000000..f9465832 --- /dev/null +++ b/vendor/github.com/mrexodia/wray/http_transport.go @@ -0,0 +1,55 @@ +package wray + +import ( + "bytes" + "encoding/json" + "errors" + "io/ioutil" + "net/http" + "net/url" +) + +type HttpTransport struct { + url string + SendHook func(data map[string]interface{}) +} + +func (self HttpTransport) isUsable(clientUrl string) bool { + parsedUrl, err := url.Parse(clientUrl) + if err != nil { + return false + } + if parsedUrl.Scheme == "http" || parsedUrl.Scheme == "https" { + return true + } + return false +} + +func (self HttpTransport) connectionType() string { + return "long-polling" +} + +func (self HttpTransport) send(data map[string]interface{}) (Response, error) { + if self.SendHook != nil { + self.SendHook(data) + } + dataBytes, _ := json.Marshal(data) + buffer := bytes.NewBuffer(dataBytes) + responseData, err := http.Post(self.url, "application/json", buffer) + if err != nil { + return Response{}, err + } + if responseData.StatusCode != 200 { + return Response{}, errors.New(responseData.Status) + } + readData, _ := ioutil.ReadAll(responseData.Body) + responseData.Body.Close() + var jsonData []interface{} + json.Unmarshal(readData, &jsonData) + response := newResponse(jsonData) + return response, nil +} + +func (self *HttpTransport) setUrl(url string) { + self.url = url +} -- cgit v1.2.3