Files
tp/main_dc/yalarba/api_yal/internal/domain/comment/router.go
T
valitovgaziz cc3d0a8b07 On branch main
modified:   yalarba/api_yal/internal/domain/account/service.go
	modified:   yalarba/api_yal/internal/domain/comment/dto.go
	new file:   yalarba/api_yal/internal/domain/comment/handler.go
	new file:   yalarba/api_yal/internal/domain/comment/router.go
	new file:   yalarba/api_yal/internal/domain/comment/service.go
	modified:   yalarba/api_yal/internal/repository/feedback_repository.go
	new file:   yalarba/api_yal/internal/util/JSON_resp.go
Realize comment domain hole
2026-05-19 18:11:20 +05:00

45 lines
1.5 KiB
Go

package comment
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 comment")
commentRepo := repository.NewCommentRepository(db)
commentService := NewCommentServiceImpl(commentRepo, db)
commentHandler := NewCommentHandler(commentService)
// Группируем маршруты для комментариев
r.Route("/comments", func(r chi.Router) {
// Публичные маршруты (не требуют аутентификации)
r.Get("/", commentHandler.ListComments)
r.Get("/stats", commentHandler.GetCommentStats)
r.Get("/{id}", commentHandler.GetCommentByID)
r.Get("/feedback/{feedbackID}", commentHandler.GetCommentsByFeedback)
r.Get("/replies/{parentID}", commentHandler.GetReplies)
// Защищенные маршруты (требуют аутентификации)
r.Group(func(r chi.Router) {
r.Use(middleware.AuthMiddleware(jwtSecret))
r.Post("/", commentHandler.CreateComment)
r.Put("/{id}", commentHandler.UpdateComment)
r.Delete("/{id}", commentHandler.DeleteComment)
r.Get("/my", commentHandler.GetMyComments)
// Маршруты для админов
r.Group(func(r chi.Router) {
r.Use(middleware.AdminOnlyMiddleware)
r.Put("/{id}/verify", commentHandler.VerifyComment)
})
})
})
}