summaryrefslogtreecommitdiff
path: root/service/http/response.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-10 17:06:06 +0300
committerWolfy-J <[email protected]>2018-06-10 17:06:06 +0300
commit232aa8f3c20a060e556ab431467f4f7b3f83bfbf (patch)
treea9dacbc142020cabae6a0708733aadb7e789aea5 /service/http/response.go
parent3fe85e9d92f5f98337e8f7fd9a14e6b66b9694bd (diff)
http service
Diffstat (limited to 'service/http/response.go')
-rw-r--r--service/http/response.go54
1 files changed, 0 insertions, 54 deletions
diff --git a/service/http/response.go b/service/http/response.go
deleted file mode 100644
index dd092353..00000000
--- a/service/http/response.go
+++ /dev/null
@@ -1,54 +0,0 @@
-package http
-
-import (
- "encoding/json"
- "github.com/spiral/roadrunner"
- "net/http"
- "io"
-)
-
-// Response handles PSR7 response logic.
-type Response struct {
- // Status contains response status.
- Status int `json:"status"`
-
- // Headers contains list of response headers.
- Headers map[string][]string `json:"headers"`
-
- // associated body payload.
- body interface{}
-}
-
-// NewResponse creates new response based on given roadrunner payload.
-func NewResponse(p *roadrunner.Payload) (*Response, error) {
- r := &Response{body: p.Body}
- if err := json.Unmarshal(p.Context, r); err != nil {
- return nil, err
- }
-
- return r, nil
-}
-
-// Write writes response headers, status and body into ResponseWriter.
-func (r *Response) Write(w http.ResponseWriter) error {
- for k, v := range r.Headers {
- for _, h := range v {
- w.Header().Add(k, h)
-
- }
- }
-
- w.WriteHeader(r.Status)
-
- if data, ok := r.body.([]byte); ok {
- w.Write(data)
- }
-
- if rc, ok := r.body.(io.Reader); ok {
- if _, err := io.Copy(w, rc); err != nil {
- return err
- }
- }
-
- return nil
-}