48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package admin
|
|
|
|
import (
|
|
"gitea.local/admin/hspguard/internal/config"
|
|
imiddleware "gitea.local/admin/hspguard/internal/middleware"
|
|
"gitea.local/admin/hspguard/internal/repository"
|
|
"github.com/go-chi/chi/v5"
|
|
)
|
|
|
|
type AdminHandler struct {
|
|
repo *repository.Queries
|
|
cfg *config.AppConfig
|
|
}
|
|
|
|
func New(repo *repository.Queries, cfg *config.AppConfig) *AdminHandler {
|
|
return &AdminHandler{
|
|
repo,
|
|
cfg,
|
|
}
|
|
}
|
|
|
|
func (h *AdminHandler) RegisterRoutes(router chi.Router) {
|
|
router.Route("/admin", func(r chi.Router) {
|
|
authMiddleware := imiddleware.NewAuthMiddleware(h.cfg, h.repo)
|
|
adminMiddleware := imiddleware.NewAdminMiddleware(h.repo)
|
|
r.Use(authMiddleware.Runner, adminMiddleware.Runner)
|
|
|
|
r.Get("/api-services", h.GetApiServices)
|
|
r.Get("/api-services/{id}", h.GetApiService)
|
|
r.Post("/api-services", h.AddApiService)
|
|
r.Patch("/api-services/{id}", h.RegenerateApiServiceSecret)
|
|
r.Put("/api-services/{id}", h.UpdateApiService)
|
|
r.Patch("/api-services/toggle/{id}", h.ToggleApiService)
|
|
|
|
r.Get("/users", h.GetUsers)
|
|
r.Post("/users", h.CreateUser)
|
|
r.Get("/users/{id}", h.GetUser)
|
|
|
|
r.Get("/user-sessions", h.GetUserSessions)
|
|
r.Patch("/user-sessions/revoke/{id}", h.RevokeUserSession)
|
|
|
|
r.Get("/service-sessions", h.GetServiceSessions)
|
|
r.Patch("/service-sessions/revoke/{id}", h.RevokeUserSession)
|
|
})
|
|
|
|
router.Get("/api-services/client/{client_id}", h.GetApiServiceCID)
|
|
}
|