feat: adjust routes and make use of middlewares in each one
This commit is contained in:
@ -31,7 +31,8 @@ func (h *AdminHandler) RegisterRoutes(router chi.Router) {
|
|||||||
adminMiddleware := imiddleware.NewAdminMiddleware(h.repo)
|
adminMiddleware := imiddleware.NewAdminMiddleware(h.repo)
|
||||||
r.Use(authMiddleware.Runner, adminMiddleware.Runner)
|
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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +44,25 @@ func (h *AdminHandler) GetApiServices(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
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 {
|
type AddServiceRequest struct {
|
||||||
@ -104,7 +123,7 @@ func (h *AdminHandler) AddApiService(w http.ResponseWriter, r *http.Request) {
|
|||||||
service.ClientSecret = clientSecret
|
service.ClientSecret = clientSecret
|
||||||
|
|
||||||
encoder := json.NewEncoder(w)
|
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)
|
web.Error(w, "failed to encode response", http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package auth
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -31,7 +32,7 @@ func (h *AuthHandler) signTokens(user *repository.User) (string, string, error)
|
|||||||
Issuer: h.cfg.Jwt.Issuer,
|
Issuer: h.cfg.Jwt.Issuer,
|
||||||
Subject: user.ID.String(),
|
Subject: user.ID.String(),
|
||||||
IssuedAt: jwt.NewNumericDate(time.Now()),
|
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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Printf("DEBUG: looking for user with following params: %#v\n", params)
|
||||||
|
|
||||||
user, err := h.repo.FindUserEmail(r.Context(), params.Email)
|
user, err := h.repo.FindUserEmail(r.Context(), params.Email)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
web.Error(w, "user with provided email does not exists", http.StatusBadRequest)
|
web.Error(w, "user with provided email does not exists", http.StatusBadRequest)
|
||||||
|
Reference in New Issue
Block a user