middleware.go 735 B

123456789101112131415161718192021222324252627282930313233
  1. package manager
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/gin-gonic/gin"
  6. )
  7. func contextErrorLogger(c *gin.Context) {
  8. errs := c.Errors.ByType(gin.ErrorTypeAny)
  9. if len(errs) > 0 {
  10. for _, err := range errs {
  11. logger.Error(`"in request "%s %s: %s"`, c.Request.Method, c.Request.URL.Path, err.Error())
  12. }
  13. }
  14. // pass on to the next middleware in chain
  15. c.Next()
  16. }
  17. func (s *managerServer) workerIDValidator(c *gin.Context) {
  18. workerID := c.Param("id")
  19. _, err := s.adapter.GetWorker(workerID)
  20. if err != nil {
  21. // no worker named `workerID` exists
  22. err := fmt.Errorf("invalid workerID %s", workerID)
  23. s.returnErrJSON(c, http.StatusBadRequest, err)
  24. c.Abort()
  25. return
  26. }
  27. // pass on to the next middleware in chain
  28. c.Next()
  29. }