Files
tp/main_dc/yalarba/api_yal/internal/domain/feetback/router.go
T
valitovgaziz 63d486f48d 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
2026-05-19 15:01:57 +05:00

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)
})
})
}