veza/veza-backend-api/internal/api/routes_social.go

37 lines
1.2 KiB
Go

package api
import (
"github.com/gin-gonic/gin"
socialcore "veza-backend-api/internal/core/social"
"veza-backend-api/internal/handlers"
)
// setupSocialRoutes configure les routes sociales
func (r *APIRouter) setupSocialRoutes(router *gin.RouterGroup) {
socialService := socialcore.NewService(r.db.GormDB, r.logger)
socialHandler := handlers.NewSocialHandler(socialService, r.logger)
groupHandler := handlers.NewGroupHandler(socialService, r.logger)
social := router.Group("/social")
{
social.GET("/feed", socialHandler.GetFeed)
social.GET("/posts/user/:user_id", socialHandler.GetPostsByUser)
social.GET("/groups", groupHandler.ListGroups)
social.GET("/groups/:id", groupHandler.GetGroup)
if r.config.AuthMiddleware != nil {
protected := social.Group("")
protected.Use(r.config.AuthMiddleware.RequireAuth())
r.applyCSRFProtection(protected)
protected.POST("/posts", socialHandler.CreatePost)
protected.POST("/like", socialHandler.ToggleLike)
protected.POST("/comments", socialHandler.AddComment)
protected.POST("/groups", groupHandler.CreateGroup)
protected.POST("/groups/:id/join", groupHandler.JoinGroup)
protected.DELETE("/groups/:id/leave", groupHandler.LeaveGroup)
}
}
}