54 lines
2.1 KiB
Go
54 lines
2.1 KiB
Go
package education
|
|
|
|
import (
|
|
"veza-backend-api/internal/middleware"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// SetupRoutes configure les routes d'éducation
|
|
func SetupRoutes(router *gin.RouterGroup, handler *Handler, jwtSecret string, authMiddleware *middleware.AuthMiddleware) { // Added authMiddleware parameter
|
|
// Groupe de routes pour l'éducation
|
|
edu := router.Group("/education")
|
|
{
|
|
// Routes des cours
|
|
courses := edu.Group("/courses")
|
|
courses.Use(authMiddleware.RequireAuth()) // Changed to authMiddleware.RequireAuth()
|
|
{
|
|
courses.POST("/create", handler.CreateCourse)
|
|
courses.GET("/list", handler.ListCourses)
|
|
courses.GET("/:course_id", handler.GetCourse)
|
|
courses.PUT("/:course_id", handler.UpdateCourse)
|
|
courses.DELETE("/:course_id", handler.DeleteCourse)
|
|
courses.POST("/:course_id/lessons", handler.AddLesson)
|
|
courses.POST("/:course_id/lessons/:lesson_id/exercises", handler.AddExercise)
|
|
courses.GET("/:course_id/progress", handler.GetUserProgress)
|
|
courses.PUT("/:course_id/progress", handler.UpdateUserProgress)
|
|
courses.POST("/:course_id/certificate", handler.IssueCertificate)
|
|
}
|
|
|
|
// Routes des tutoriels
|
|
tutorials := edu.Group("/tutorials")
|
|
{
|
|
// Routes publiques (sans authentification)
|
|
tutorials.GET("/list", handler.ListTutorials)
|
|
tutorials.GET("/search", handler.SearchTutorials)
|
|
tutorials.GET("/:tutorial_id", handler.GetTutorial)
|
|
tutorials.GET("/:tutorial_id/steps", handler.GetTutorialSteps)
|
|
tutorials.GET("/:tutorial_id/comments", handler.GetTutorialComments)
|
|
tutorials.POST("/:tutorial_id/like", handler.LikeTutorial)
|
|
tutorials.POST("/:tutorial_id/dislike", handler.DislikeTutorial)
|
|
|
|
// Routes protégées (avec authentification)
|
|
protected := tutorials.Group("")
|
|
protected.Use(authMiddleware.RequireAuth()) // Changed to authMiddleware.RequireAuth()
|
|
{
|
|
protected.POST("/create", handler.CreateTutorial)
|
|
protected.PUT("/:tutorial_id", handler.UpdateTutorial)
|
|
protected.DELETE("/:tutorial_id", handler.DeleteTutorial)
|
|
protected.POST("/:tutorial_id/steps", handler.AddTutorialStep)
|
|
protected.POST("/:tutorial_id/comments", handler.AddTutorialComment)
|
|
}
|
|
}
|
|
}
|
|
}
|