On branch main
modified: main_dc/yalarba/api_yal/internal/domain/rating/dto.go new file: main_dc/yalarba/api_yal/internal/domain/rating/handler.go new file: main_dc/yalarba/api_yal/internal/domain/rating/router.go new file: main_dc/yalarba/api_yal/internal/domain/rating/service.go modified: main_dc/yalarba/api_yal/internal/router/router.go add raing domain without test
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package rating
|
||||
|
||||
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.Info("Registering routes for rating")
|
||||
|
||||
ratingRepo := repository.NewRatingRepository(db)
|
||||
ratingService := NewRatingServiceImpl(ratingRepo, db)
|
||||
ratingHandler := NewRatingHandler(ratingService)
|
||||
|
||||
// Группируем маршруты для рейтингов
|
||||
r.Route("/ratings", func(r chi.Router) {
|
||||
// Публичные маршруты (не требуют аутентификации)
|
||||
r.Get("/", ratingHandler.ListRatings)
|
||||
r.Get("/stats", ratingHandler.GetRatingStats)
|
||||
r.Get("/{id}", ratingHandler.GetRatingByID)
|
||||
r.Get("/object/{objectID}/platform/{platform}", ratingHandler.GetRatingByObjectAndPlatform)
|
||||
|
||||
// Защищенные маршруты (требуют аутентификации)
|
||||
r.Group(func(r chi.Router) {
|
||||
r.Use(middleware.AuthMiddleware(jwtSecret))
|
||||
|
||||
// CRUD операции с рейтингами
|
||||
r.Post("/", ratingHandler.CreateRating)
|
||||
r.Put("/{id}", ratingHandler.UpdateRating)
|
||||
r.Delete("/{id}", ratingHandler.DeleteRating)
|
||||
|
||||
// Голосование
|
||||
r.Post("/{targetID}/vote/{platform}", ratingHandler.Vote)
|
||||
r.Get("/{targetID}/my-vote/{platform}", ratingHandler.GetMyVote)
|
||||
r.Put("/{targetID}/my-vote/{platform}", ratingHandler.UpdateMyVote)
|
||||
r.Delete("/{targetID}/my-vote/{platform}", ratingHandler.DeleteMyVote)
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user