From aa6ce8af52758fb932d1b011f10be307f3d88f80 Mon Sep 17 00:00:00 2001 From: Silvan Jegen Date: Fri, 16 Dec 2016 19:33:35 +0100 Subject: Add an HTTP filter --- filter/http.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 filter/http.go (limited to 'filter') diff --git a/filter/http.go b/filter/http.go new file mode 100644 index 0000000..97fffa7 --- /dev/null +++ b/filter/http.go @@ -0,0 +1,35 @@ +package filter + +import ( + "bytes" + "io/ioutil" + "net/http" + + "github.com/Shugyousha/stasher/work" +) + +type HTTPFilter struct { + url string +} + +func NewHTTPFilter(url string) *HTTPFilter { + return &HTTPFilter{url: url} +} + +func (hf *HTTPFilter) Filter(w *work.Work) *work.Work { + resp, err := http.Post(hf.url, "application/json", bytes.NewReader(w.Data)) + if err != nil { + w.Err = err + return w + } + defer resp.Body.Close() + + filtered, err := ioutil.ReadAll(resp.Body) + if err != nil { + w.Err = err + return w + } + + w.Data = filtered + return w +} -- cgit v1.2.1-18-gbd029