package service import ( "net/http" "git.ostiwe.com/ostiwe-com/status/modules/jwt" "git.ostiwe.com/ostiwe-com/status/modules/log" http2 "git.ostiwe.com/ostiwe-com/status/pkg/http" "git.ostiwe.com/ostiwe-com/status/repository" "git.ostiwe.com/ostiwe-com/status/router/controller" "git.ostiwe.com/ostiwe-com/status/router/midlleware" "git.ostiwe.com/ostiwe-com/status/transform" "github.com/gin-gonic/gin" ) type GetServices struct { serviceRepository repository.Service } func (g *GetServices) New() controller.Controller { return &GetServices{ serviceRepository: repository.NewServiceRepository(), } } func (g *GetServices) Handler() gin.HandlerFunc { return func(c *gin.Context) { items, err := g.serviceRepository.All(c.Request.Context(), -1, 0, true) if err != nil { log.Global.Get(log.SERVER).Error(err) writeErr := http2.NewResponseErrBuilder(). WithMessage("Fetch service error"). WithStatusCode(http.StatusInternalServerError). Send(c) if writeErr != nil { log.Global.Get(log.SERVER).Error(writeErr) } return } c.JSON(http.StatusOK, transform.PublicServices(items...)) } } func (g *GetServices) Method() string { return http.MethodGet } func (g *GetServices) Path() string { return "/api/v1/services" } func (g *GetServices) Middlewares() []gin.HandlerFunc { return []gin.HandlerFunc{ jwt.AuthMiddleware.MiddlewareFunc(), midlleware.SetUserFromJWT(), } }