handler.go 639 B

12345678910111213141516171819202122232425262728
  1. package server
  2. import (
  3. "net/http"
  4. "github.com/felamaslen/gmus-backend/pkg/logger"
  5. "github.com/go-redis/redis"
  6. )
  7. type RouteHandler func(l *logger.Logger, rdb redis.Cmdable, w http.ResponseWriter, r *http.Request) error
  8. func routeHandler(
  9. l *logger.Logger,
  10. rdb redis.Cmdable,
  11. handler RouteHandler,
  12. ) func(w http.ResponseWriter, r *http.Request) {
  13. return func(w http.ResponseWriter, r *http.Request) {
  14. l.Verbose("[%s] %s\n", r.Method, r.URL);
  15. err := handler(l, rdb, w, r)
  16. if err != nil {
  17. l.Error("Unhandled error during request: %v\n", err)
  18. http.Error(w, "Unhandled error", http.StatusInternalServerError)
  19. }
  20. }
  21. }