From 013f300513b2f9b4aeefb8a58915effa24f63501 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Fri, 30 May 2025 21:24:48 +0200 Subject: [PATCH] feat: adjust routes and make use of middlewares in each one --- internal/admin/routes.go | 27 +++++++++++++++++++++++---- internal/auth/routes.go | 5 ++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/internal/admin/routes.go b/internal/admin/routes.go index 0f2ec8c..bf8bb44 100644 --- a/internal/admin/routes.go +++ b/internal/admin/routes.go @@ -31,7 +31,8 @@ func (h *AdminHandler) RegisterRoutes(router chi.Router) { adminMiddleware := imiddleware.NewAdminMiddleware(h.repo) r.Use(authMiddleware.Runner, adminMiddleware.Runner) - r.Post("/api-services/create", h.AddApiService) + r.Get("/api-services", h.GetApiServices) + r.Post("/api-services", h.AddApiService) }) } @@ -42,8 +43,26 @@ func (h *AdminHandler) GetApiServices(w http.ResponseWriter, r *http.Request) { web.Error(w, "failed to get api services", http.StatusInternalServerError) return } - - + + apiServices := make([]ApiServiceDTO, 0) + + for _, service := range services { + apiServices = append(apiServices, NewApiServiceDTO(service)) + } + + type Response struct { + Items []ApiServiceDTO `json:"items"` + Count int `json:"count"` + } + + encoder := json.NewEncoder(w) + + if err := encoder.Encode(Response{ + Items: apiServices, + Count: len(apiServices), + }); err != nil { + web.Error(w, "failed to encode response", http.StatusInternalServerError) + } } type AddServiceRequest struct { @@ -104,7 +123,7 @@ func (h *AdminHandler) AddApiService(w http.ResponseWriter, r *http.Request) { service.ClientSecret = clientSecret encoder := json.NewEncoder(w) - if err := encoder.Encode(service); err != nil { + if err := encoder.Encode(NewApiServiceDTO(service)); err != nil { web.Error(w, "failed to encode response", http.StatusInternalServerError) } } diff --git a/internal/auth/routes.go b/internal/auth/routes.go index 085ec2b..3ecdffc 100644 --- a/internal/auth/routes.go +++ b/internal/auth/routes.go @@ -3,6 +3,7 @@ package auth import ( "encoding/json" "fmt" + "log" "net/http" "strings" "time" @@ -31,7 +32,7 @@ func (h *AuthHandler) signTokens(user *repository.User) (string, string, error) Issuer: h.cfg.Jwt.Issuer, Subject: user.ID.String(), IssuedAt: jwt.NewNumericDate(time.Now()), - ExpiresAt: jwt.NewNumericDate(time.Now().Add(15 * time.Minute)), + ExpiresAt: jwt.NewNumericDate(time.Now().Add(15 * time.Second)), }, } @@ -193,6 +194,8 @@ func (h *AuthHandler) login(w http.ResponseWriter, r *http.Request) { return } + log.Printf("DEBUG: looking for user with following params: %#v\n", params) + user, err := h.repo.FindUserEmail(r.Context(), params.Email) if err != nil { web.Error(w, "user with provided email does not exists", http.StatusBadRequest)