diff options
author | 2018-01-02 22:04:48 -0800 | |
---|---|---|
committer | 2018-01-02 22:04:48 -0800 | |
commit | 320d1b016747ba4501da9417d9ce5f99368a5768 (patch) | |
tree | 1054d96afde6022951b76cc4a09b78e1e3f05058 /server/core/handler.go | |
parent | c39f2e1a8d2de6d412bcc673d29eb0f7a2d1f5f7 (diff) | |
download | v2-320d1b016747ba4501da9417d9ce5f99368a5768.tar.gz v2-320d1b016747ba4501da9417d9ce5f99368a5768.tar.zst v2-320d1b016747ba4501da9417d9ce5f99368a5768.zip |
Refactor packages to have more idiomatic code base
Diffstat (limited to 'server/core/handler.go')
-rw-r--r-- | server/core/handler.go | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/server/core/handler.go b/server/core/handler.go deleted file mode 100644 index e6aca98a..00000000 --- a/server/core/handler.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2017 Frédéric Guillot. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package core - -import ( - "net/http" - "time" - - "github.com/miniflux/miniflux/config" - "github.com/miniflux/miniflux/locale" - "github.com/miniflux/miniflux/logger" - "github.com/miniflux/miniflux/server/middleware" - "github.com/miniflux/miniflux/server/template" - "github.com/miniflux/miniflux/storage" - "github.com/miniflux/miniflux/timer" - - "github.com/gorilla/mux" - "github.com/tomasen/realip" -) - -// HandlerFunc is an application HTTP handler. -type HandlerFunc func(ctx *Context, request *Request, response *Response) - -// Handler manages HTTP handlers and middlewares. -type Handler struct { - cfg *config.Config - store *storage.Storage - translator *locale.Translator - template *template.Engine - router *mux.Router - middleware *middleware.Chain -} - -// Use is a wrapper around an HTTP handler. -func (h *Handler) Use(f HandlerFunc) http.Handler { - return h.middleware.WrapFunc(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - defer timer.ExecutionTime(time.Now(), r.URL.Path) - logger.Debug("[HTTP] %s %s %s", realip.RealIP(r), r.Method, r.URL.Path) - - if r.Header.Get("X-Forwarded-Proto") == "https" { - h.cfg.IsHTTPS = true - } - - ctx := NewContext(w, r, h.store, h.router, h.translator) - request := NewRequest(w, r) - response := NewResponse(w, r, h.template) - - if ctx.IsAuthenticated() { - h.template.SetLanguage(ctx.UserLanguage()) - } else { - h.template.SetLanguage("en_US") - } - - f(ctx, request, response) - })) -} - -// NewHandler returns a new Handler. -func NewHandler(cfg *config.Config, store *storage.Storage, router *mux.Router, template *template.Engine, translator *locale.Translator, middleware *middleware.Chain) *Handler { - return &Handler{ - cfg: cfg, - store: store, - translator: translator, - router: router, - template: template, - middleware: middleware, - } -} |