Exam
This commit is contained in:
65
internal/routers/exam.go
Normal file
65
internal/routers/exam.go
Normal file
@ -0,0 +1,65 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"learnsteam/learsteam-quiz-api/internal/controllers"
|
||||
"learnsteam/learsteam-quiz-api/internal/middleware"
|
||||
"learnsteam/learsteam-quiz-api/internal/repositories"
|
||||
"learnsteam/learsteam-quiz-api/internal/services"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func InitExamRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewExamRouter(db, router)
|
||||
r.SetExamRouter(db, router)
|
||||
}
|
||||
|
||||
type ExamRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type examRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.ExamRepository
|
||||
programRepository repositories.ProgramRepository
|
||||
userRepository repositories.UserRepository
|
||||
|
||||
service services.ExamService
|
||||
programService services.ProgramService
|
||||
userService services.UserService
|
||||
|
||||
controller controllers.ExamController
|
||||
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewExamRouter(db *gorm.DB, router *gin.Engine) *examRouter {
|
||||
repository := repositories.NewExamRepository(db)
|
||||
programRepository := repositories.NewProgramRepository(db)
|
||||
tokenRepository := repositories.NewTokenRepository(db)
|
||||
userRepository := repositories.NewUserRepository(db)
|
||||
|
||||
service := services.NewExamService(repository)
|
||||
programService := services.NewProgramService(programRepository)
|
||||
userService := services.NewUserService(userRepository, tokenRepository)
|
||||
|
||||
controller := controllers.NewExamController(service, userService, programService)
|
||||
|
||||
return &examRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *examRouter) SetExamRouter(db *gorm.DB, router *gin.Engine) {
|
||||
group := router.Group("/exam")
|
||||
group.GET("", middleware.Auth(), r.controller.List)
|
||||
group.GET("/:id", middleware.Auth(), r.controller.Find)
|
||||
group.POST("", middleware.Auth(), r.controller.Create)
|
||||
group.PUT("/:id", middleware.Auth(), r.controller.Update)
|
||||
group.PATCH("/:id", middleware.Auth(), r.controller.Patch)
|
||||
}
|
@ -25,6 +25,7 @@ func Init() {
|
||||
InitUserRouter(maindb, Router)
|
||||
InitProgramRouter(maindb, Router)
|
||||
InitQuizRouter(maindb, Router)
|
||||
InitExamRouter(maindb, Router)
|
||||
|
||||
InitSwaggerRouter(Router)
|
||||
}
|
||||
|
Reference in New Issue
Block a user