diff options
author | Wolfy-J <[email protected]> | 2018-06-10 17:04:02 +0300 |
---|---|---|
committer | Wolfy-J <[email protected]> | 2018-06-10 17:04:02 +0300 |
commit | 3fe85e9d92f5f98337e8f7fd9a14e6b66b9694bd (patch) | |
tree | 2575fbba16df4f95dd392f231ad7d7b30a5dd4ef /service/http/handler.go | |
parent | 4c292ee46f5505b00b16186e8f30e9bc1be25895 (diff) |
http service
Diffstat (limited to 'service/http/handler.go')
-rw-r--r-- | service/http/handler.go | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/service/http/handler.go b/service/http/handler.go deleted file mode 100644 index 1319200c..00000000 --- a/service/http/handler.go +++ /dev/null @@ -1,71 +0,0 @@ -package http - -import ( - "net/http" - "strconv" - "github.com/sirupsen/logrus" - "github.com/spiral/roadrunner" - "github.com/pkg/errors" -) - -// Handler serves http connections to underlying PHP application using PSR-7 protocol. Context will include request headers, -// parsed files and query, payload will include parsed form dataTree (if any). -type Handler struct { - cfg *Config - rr *roadrunner.Server -} - -// Handle serve using PSR-7 requests passed to underlying application. Attempts to serve static files first if enabled. -func (h *Handler) Handle(w http.ResponseWriter, r *http.Request) { - // validating request size - if h.cfg.MaxRequest != 0 { - if length := r.Header.Get("content-length"); length != "" { - if size, err := strconv.ParseInt(length, 10, 64); err != nil { - h.sendError(w, r, err) - return - } else if size > h.cfg.MaxRequest { - h.sendError(w, r, errors.New("request body max size is exceeded")) - return - } - } - } - - req, err := NewRequest(r) - if err != nil { - h.sendError(w, r, err) - return - } - - if err = req.Open(h.cfg); err != nil { - h.sendError(w, r, err) - return - } - defer req.Close() - - p, err := req.Payload() - if err != nil { - h.sendError(w, r, err) - return - } - - rsp, err := h.rr.Exec(p) - if err != nil { - h.sendError(w, r, err) - return - } - - resp, err := NewResponse(rsp) - if err != nil { - h.sendError(w, r, err) - return - } - - resp.Write(w) -} - -// sendError sends error -func (h *Handler) sendError(w http.ResponseWriter, r *http.Request, err error) { - logrus.Errorf("http: %s", err) - w.WriteHeader(500) - w.Write([]byte(err.Error())) -} |