On branch main
modified: main_dc/yalarba/api_yal/internal/domain/appeal/router.go modified: main_dc/yalarba/api_yal/internal/domain/feetback/dto.go modified: main_dc/yalarba/api_yal/internal/domain/feetback/handler.go modified: main_dc/yalarba/api_yal/internal/domain/feetback/router.go modified: main_dc/yalarba/api_yal/internal/domain/feetback/service.go modified: main_dc/yalarba/api_yal/internal/models/feedback.go modified: main_dc/yalarba/api_yal/internal/repository/comment_repository.go modified: main_dc/yalarba/api_yal/internal/repository/feedback_repository.go modified: main_dc/yalarba/api_yal/internal/repository/feedback_repository_impl.go modified: main_dc/yalarba/api_yal/internal/router/router.go craete routerRegister, service, hander, dto for feedback
This commit is contained in:
@@ -2,9 +2,10 @@ package router
|
||||
|
||||
import (
|
||||
"api_yal/internal/config"
|
||||
"api_yal/internal/logger"
|
||||
"api_yal/internal/domain/auth"
|
||||
"api_yal/internal/domain/account"
|
||||
"api_yal/internal/domain/auth"
|
||||
"api_yal/internal/domain/feetback"
|
||||
"api_yal/internal/logger"
|
||||
"time"
|
||||
|
||||
"encoding/json"
|
||||
@@ -27,7 +28,7 @@ func SetupRouter(db *gorm.DB, config *config.Config) http.Handler {
|
||||
// ВСЕ middleware должны быть определены ДО маршрутов
|
||||
// 1. Сначала добавляем production middleware
|
||||
addProductionMiddleware(r, config)
|
||||
|
||||
|
||||
// 2. Затем добавляем middleware аутентификации (он тоже применяется ко всем маршрутам)
|
||||
zapLogger.Debug("Auth middleware применён")
|
||||
|
||||
@@ -36,7 +37,7 @@ func SetupRouter(db *gorm.DB, config *config.Config) http.Handler {
|
||||
r.Get("/health", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusOK)
|
||||
|
||||
|
||||
if err := json.NewEncoder(w).Encode(map[string]string{"status": "healthy"}); err != nil {
|
||||
zapLogger.Error("Ошибка при отправке health check ответа",
|
||||
zap.String("path", r.URL.Path),
|
||||
@@ -50,9 +51,13 @@ func SetupRouter(db *gorm.DB, config *config.Config) http.Handler {
|
||||
r.Route("/api/v1", func(r chi.Router) {
|
||||
// Регистрируем маршруты аутентификации
|
||||
auth.RegisterRoutes(r, db, config.JWTSecret)
|
||||
|
||||
|
||||
// Регистрируем маршруты аккаунтов
|
||||
account.RegisterRoutes(r, db, config.JWTSecret)
|
||||
|
||||
|
||||
// Регистрируем маршруты отзывов
|
||||
feetback.RegisterRoutes(r, db, config.JWTSecret) // Добавьте эту строку
|
||||
})
|
||||
|
||||
zapLogger.Info("Настройка маршрутов завершена")
|
||||
@@ -74,7 +79,7 @@ func addProductionMiddleware(r *chi.Mux, config *config.Config) {
|
||||
r.Use(ChiMiddleware.Timeout(30 * time.Second))
|
||||
r.Use(ChiMiddleware.Compress(5, "gzip"))
|
||||
r.Use(ChiMiddleware.StripSlashes)
|
||||
|
||||
|
||||
// CORS
|
||||
r.Use(cors.Handler(cors.Options{
|
||||
AllowedOrigins: config.CORS.AllowedOrigins,
|
||||
@@ -84,15 +89,15 @@ func addProductionMiddleware(r *chi.Mux, config *config.Config) {
|
||||
AllowCredentials: true,
|
||||
MaxAge: 300,
|
||||
}))
|
||||
|
||||
|
||||
// Content-Type проверка
|
||||
r.Use(ChiMiddleware.AllowContentType("application/json", "application/xml"))
|
||||
|
||||
|
||||
// Rate limiting
|
||||
if config.RateLimit.Enabled {
|
||||
r.Use(ChiMiddleware.Throttle(config.RateLimit.RequestsPerSecond))
|
||||
}
|
||||
|
||||
|
||||
// Security headers
|
||||
r.Use(func(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -100,12 +105,12 @@ func addProductionMiddleware(r *chi.Mux, config *config.Config) {
|
||||
w.Header().Set("X-Frame-Options", "DENY")
|
||||
w.Header().Set("X-XSS-Protection", "1; mode=block")
|
||||
w.Header().Set("Referrer-Policy", "strict-origin-when-cross-origin")
|
||||
|
||||
|
||||
if config.Environment == "production" {
|
||||
w.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload")
|
||||
}
|
||||
|
||||
|
||||
next.ServeHTTP(w, r)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user