mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-05 03:02:56 +00:00
35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
package routes
|
|
|
|
import (
|
|
"fotbal-club/internal/controllers"
|
|
"fotbal-club/internal/middleware"
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func RegisterContactInfoRoutes(router *gin.RouterGroup, db *gorm.DB) {
|
|
contactInfoController := controllers.NewContactInfoController(db)
|
|
|
|
// Public endpoints (no auth required)
|
|
router.GET("/contacts", contactInfoController.GetPublicContacts)
|
|
router.GET("/contacts/categories", contactInfoController.GetPublicContactCategories)
|
|
|
|
// Admin endpoints (require auth + admin role)
|
|
admin := router.Group("/admin/contacts")
|
|
admin.Use(middleware.JWTAuth(db))
|
|
admin.Use(middleware.RoleAuth("admin"))
|
|
{
|
|
// Contact Categories CRUD
|
|
admin.GET("/categories", contactInfoController.GetContactCategories)
|
|
admin.POST("/categories", contactInfoController.CreateContactCategory)
|
|
admin.PUT("/categories/:id", contactInfoController.UpdateContactCategory)
|
|
admin.DELETE("/categories/:id", contactInfoController.DeleteContactCategory)
|
|
|
|
// Contacts CRUD
|
|
admin.GET("", contactInfoController.GetContacts)
|
|
admin.POST("", contactInfoController.CreateContact)
|
|
admin.PUT("/:id", contactInfoController.UpdateContact)
|
|
admin.DELETE("/:id", contactInfoController.DeleteContact)
|
|
}
|
|
}
|