summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/labstack/echo/cookbook/middleware
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/labstack/echo/cookbook/middleware')
-rw-r--r--vendor/github.com/labstack/echo/cookbook/middleware/server.go82
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/github.com/labstack/echo/cookbook/middleware/server.go b/vendor/github.com/labstack/echo/cookbook/middleware/server.go
deleted file mode 100644
index 2f21df50..00000000
--- a/vendor/github.com/labstack/echo/cookbook/middleware/server.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package main
-
-import (
- "net/http"
- "strconv"
- "sync"
- "time"
-
- "github.com/labstack/echo"
-)
-
-type (
- Stats struct {
- Uptime time.Time `json:"uptime"`
- RequestCount uint64 `json:"requestCount"`
- Statuses map[string]int `json:"statuses"`
- mutex sync.RWMutex
- }
-)
-
-func NewStats() *Stats {
- return &Stats{
- Uptime: time.Now(),
- Statuses: make(map[string]int),
- }
-}
-
-// Process is the middleware function.
-func (s *Stats) Process(next echo.HandlerFunc) echo.HandlerFunc {
- return func(c echo.Context) error {
- if err := next(c); err != nil {
- c.Error(err)
- }
- s.mutex.Lock()
- defer s.mutex.Unlock()
- s.RequestCount++
- status := strconv.Itoa(c.Response().Status)
- s.Statuses[status]++
- return nil
- }
-}
-
-// Handle is the endpoint to get stats.
-func (s *Stats) Handle(c echo.Context) error {
- s.mutex.RLock()
- defer s.mutex.RUnlock()
- return c.JSON(http.StatusOK, s)
-}
-
-// ServerHeader middleware adds a `Server` header to the response.
-func ServerHeader(next echo.HandlerFunc) echo.HandlerFunc {
- return func(c echo.Context) error {
- c.Response().Header().Set(echo.HeaderServer, "Echo/3.0")
- return next(c)
- }
-}
-
-func main() {
- e := echo.New()
-
- // Debug mode
- e.Debug = true
-
- //-------------------
- // Custom middleware
- //-------------------
- // Stats
- s := NewStats()
- e.Use(s.Process)
- e.GET("/stats", s.Handle) // Endpoint to get stats
-
- // Server header
- e.Use(ServerHeader)
-
- // Handler
- e.GET("/", func(c echo.Context) error {
- return c.String(http.StatusOK, "Hello, World!")
- })
-
- // Start server
- e.Logger.Fatal(e.Start(":1323"))
-}