middleware.go 737 B

1234567891011121314151617181920212223242526272829303132333435
  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"`,
  12. c.Request.Method, c.Request.URL.Path,
  13. err.Error())
  14. }
  15. }
  16. // pass on to the next middleware in chain
  17. c.Next()
  18. }
  19. func (s *Manager) workerIDValidator(c *gin.Context) {
  20. workerID := c.Param("id")
  21. _, err := s.adapter.GetWorker(workerID)
  22. if err != nil {
  23. // no worker named `workerID` exists
  24. err := fmt.Errorf("invalid workerID %s", workerID)
  25. s.returnErrJSON(c, http.StatusBadRequest, err)
  26. c.Abort()
  27. return
  28. }
  29. // pass on to the next middleware in chain
  30. c.Next()
  31. }