On branch main
modified: main_dc/yalarba/api_yal/internal/domain/account/dto.go new file: main_dc/yalarba/api_yal/internal/domain/account/errors.go modified: main_dc/yalarba/api_yal/internal/domain/account/handler.go modified: main_dc/yalarba/api_yal/internal/domain/account/router.go modified: main_dc/yalarba/api_yal/internal/domain/account/service.go new file: main_dc/yalarba/api_yal/internal/domain/account/types.go new file: main_dc/yalarba/api_yal/internal/middleware/admin.go modified: main_dc/yalarba/api_yal/internal/middleware/auth.go new file: main_dc/yalarba/api_yal/internal/middleware/context.go new file: main_dc/yalarba/api_yal/internal/middleware/logging.go modified: main_dc/yalarba/api_yal/internal/router/router.go last but not yet commit
This commit is contained in:
@@ -1 +1,51 @@
|
||||
package account
|
||||
package account
|
||||
|
||||
import (
|
||||
"api_yal/internal/logger"
|
||||
"api_yal/internal/middleware"
|
||||
"api_yal/internal/repository"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// RegisterRoutes регистрирует маршруты для работы с аккаунтами
|
||||
func RegisterRoutes(r chi.Router, db *gorm.DB, jwtSecret string) {
|
||||
l := logger.Get()
|
||||
l.Debug("Регистрация маршрутов аккаунтов")
|
||||
|
||||
// Создаем репозиторий и сервис
|
||||
accountRepo := repository.NewAccountRepository(db)
|
||||
accountService := NewService(accountRepo)
|
||||
accountHandler := NewHandler(accountService)
|
||||
|
||||
// Публичные маршруты (без аутентификации)
|
||||
r.Group(func(r chi.Router) {
|
||||
r.Post("/forgot-password", accountHandler.ForgotPassword)
|
||||
r.Post("/reset-password", accountHandler.ResetPassword)
|
||||
})
|
||||
|
||||
// Защищенные маршруты (требуют аутентификации)
|
||||
r.Group(func(r chi.Router) {
|
||||
r.Use(middleware.AuthMiddleware(jwtSecret))
|
||||
|
||||
r.Get("/profile", accountHandler.GetAccountProfile)
|
||||
r.Get("/me", accountHandler.GetAccountByID)
|
||||
r.Put("/me", accountHandler.UpdateAccount)
|
||||
r.Delete("/me", accountHandler.DeleteAccount)
|
||||
r.Post("/change-password", accountHandler.ChangePassword)
|
||||
})
|
||||
|
||||
// Административные маршруты (требуют прав администратора)
|
||||
r.Group(func(r chi.Router) {
|
||||
r.Use(middleware.AuthMiddleware(jwtSecret))
|
||||
r.Use(middleware.AdminOnlyMiddleware)
|
||||
|
||||
r.Get("/accounts", accountHandler.ListAccounts)
|
||||
r.Get("/account", accountHandler.GetAccountByIDAdmin)
|
||||
r.Put("/account/verify", accountHandler.VerifyAccount)
|
||||
r.Put("/account/status", accountHandler.UpdateAccountStatus)
|
||||
})
|
||||
|
||||
l.Info("Маршруты аккаунтов зарегистрированы")
|
||||
}
|
||||
Reference in New Issue
Block a user