63d486f48d
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
46 lines
1.7 KiB
Go
46 lines
1.7 KiB
Go
package feetback
|
|
|
|
import (
|
|
"api_yal/internal/logger"
|
|
"api_yal/internal/middleware"
|
|
"api_yal/internal/repository"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func RegisterRoutes(r chi.Router, db *gorm.DB, jwtSecret string) {
|
|
l := logger.Get()
|
|
l.Info("Registering routes for feetback")
|
|
|
|
feedbackRepo := repository.NewFeedbackRepository(db)
|
|
feedbackService := NewFeedbackServiceImpl(feedbackRepo, db)
|
|
feedbackHandler := NewFeedbackHandler(feedbackService)
|
|
|
|
// Группируем маршруты для отзывов
|
|
r.Route("/feedbacks", func(r chi.Router) {
|
|
// Публичные маршруты (не требуют аутентификации)
|
|
r.Get("/", feedbackHandler.ListFeedbacks)
|
|
r.Get("/search", feedbackHandler.SearchFeedbacks)
|
|
r.Get("/stats", feedbackHandler.GetFeedbackStats) // Новый эндпоинт
|
|
r.Get("/{id}", feedbackHandler.GetFeedbackByID)
|
|
r.Get("/object/{objectID}", feedbackHandler.GetFeedbacksByObject)
|
|
r.Get("/platform/{platform}", feedbackHandler.GetFeedbacksByPlatform)
|
|
r.Get("/{id}/comments", feedbackHandler.GetFeedbackComments)
|
|
|
|
// Защищенные маршруты (требуют аутентификации)
|
|
r.Group(func(r chi.Router) {
|
|
r.Use(middleware.AuthMiddleware(jwtSecret))
|
|
|
|
r.Post("/", feedbackHandler.CreateFeedback)
|
|
r.Put("/{id}", feedbackHandler.UpdateFeedback)
|
|
r.Delete("/{id}", feedbackHandler.DeleteFeedback)
|
|
r.Get("/my", feedbackHandler.GetMyFeedbacks)
|
|
|
|
// Маршруты для комментариев
|
|
r.Post("/{id}/comments", feedbackHandler.AddComment)
|
|
r.Put("/{id}/comments/{commentID}", feedbackHandler.UpdateComment)
|
|
r.Delete("/{id}/comments/{commentID}", feedbackHandler.DeleteComment)
|
|
})
|
|
})
|
|
} |