Files
tp/main_dc/yalarba/api_yal/internal/domain/object/router.go
T
valitovgaziz 979c265e36 On branch main
modified:   main_dc/yalarba/api_yal/internal/domain/account/handler.go
	modified:   main_dc/yalarba/api_yal/internal/domain/account/router.go
	modified:   main_dc/yalarba/api_yal/internal/domain/account/service.go
	modified:   main_dc/yalarba/api_yal/internal/domain/auth/router.go
	new file:   main_dc/yalarba/api_yal/internal/domain/comment/dto.go
	new file:   main_dc/yalarba/api_yal/internal/domain/feetback/dto.go
	new file:   main_dc/yalarba/api_yal/internal/domain/object/dto.go
	new file:   main_dc/yalarba/api_yal/internal/domain/object/errors.go
	new file:   main_dc/yalarba/api_yal/internal/domain/object/handler.go
	new file:   main_dc/yalarba/api_yal/internal/domain/object/router.go
	new file:   main_dc/yalarba/api_yal/internal/domain/object/service.go
	new file:   main_dc/yalarba/api_yal/internal/domain/object/types.go
	new file:   main_dc/yalarba/api_yal/internal/domain/rating/dto.go
	modified:   main_dc/yalarba/api_yal/internal/models/rating.go
add and not tested Object's domain
2026-03-31 16:53:24 +05:00

47 lines
1.6 KiB
Go

package object
import (
"api_yal/internal/logger"
"api_yal/internal/middleware"
"api_yal/internal/repository"
"github.com/go-chi/chi/v5"
"gorm.io/gorm"
)
// RegisterObjects регистрирует маршруты для работы с объектами
func RegisterObjects(r chi.Router, db *gorm.DB, jwtSecret string) {
l := logger.Get()
l.Debug("Регистрация маршрутов объектов")
objectRepo := repository.NewObjectRepository(db)
objectService := NewObjectService(objectRepo)
objectHandler := NewObjectHandler(objectService)
// Публичные маршруты (не требуют аутентификации)
r.Group(func(r chi.Router) {
r.Get("/objects", objectHandler.ListObjects)
r.Get("/objects/search", objectHandler.SearchObjects)
r.Get("/objects/nearby", objectHandler.GetNearbyObjects)
r.Get("/objects/{id}", objectHandler.GetObjectByID)
r.Get("/objects/owner/{ownerId}", objectHandler.GetObjectsByOwner)
})
// Защищенные маршруты (требуют аутентификации)
r.Group(func(r chi.Router) {
r.Use(middleware.AuthMiddleware(jwtSecret))
// CRUD для объектов
r.Post("/objects", objectHandler.CreateObject)
r.Put("/objects/{id}", objectHandler.UpdateObject)
r.Delete("/objects/{id}", objectHandler.DeleteObject)
// Отзывы
r.Post("/objects/{id}/feedbacks", objectHandler.CreateFeedback)
// Рейтинги
r.Post("/objects/{id}/ratings", objectHandler.CreateRatingVote)
})
l.Debug("Маршруты объектов зарегистрированы")
}