71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
package routers
|
|
|
|
import (
|
|
"learnsteam/cslms-api/internal/controllers"
|
|
"learnsteam/cslms-api/internal/middleware"
|
|
"learnsteam/cslms-api/internal/repositories"
|
|
"learnsteam/cslms-api/internal/services"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func InitUserQuizPaperRouter(db *gorm.DB, router *gin.Engine) {
|
|
r := NewUserQuizPaperRouter(db, router)
|
|
r.SetUserQuizPaperRouter()
|
|
}
|
|
|
|
type UserQuizPaperRouter interface {
|
|
SetRouter(db *gorm.DB, router *gin.Engine)
|
|
}
|
|
|
|
type userQuizPaperRouter struct {
|
|
db *gorm.DB
|
|
repository repositories.UserQuizPaperRepository
|
|
quizRepository repositories.QuizRepository
|
|
service services.UserQuizPaperService
|
|
controller controllers.UserQuizPaperController
|
|
// quizPaperRepository repositories.QuizPaperRepository
|
|
// userRepository repositories.UserRepository
|
|
|
|
// quizPaperService services.QuizPaperService
|
|
// userService services.UserService
|
|
|
|
router *gin.Engine
|
|
}
|
|
|
|
func NewUserQuizPaperRouter(db *gorm.DB, router *gin.Engine) *userQuizPaperRouter {
|
|
repository := repositories.NewUserQuizPaperRepository(db)
|
|
quizRepository := repositories.NewQuizRepository(db)
|
|
quizPaperRepository := repositories.NewQuizPaperRepository(db)
|
|
tokenRepository := repositories.NewTokenRepository(db)
|
|
userRepository := repositories.NewUserRepository(db)
|
|
userQuizRepository := repositories.NewUserQuizRepository(db)
|
|
|
|
service := services.NewUserQuizPaperService(repository, userQuizRepository)
|
|
quizService := services.NewQuizService(quizRepository)
|
|
quizPaperService := services.NewQuizPaperService(quizPaperRepository)
|
|
userService := services.NewUserService(userRepository, tokenRepository)
|
|
userQuizService := services.NewUserQuizService(userQuizRepository, quizRepository)
|
|
|
|
controller := controllers.NewUserQuizPaperController(service, quizService, quizPaperService, userQuizService, userService)
|
|
|
|
return &userQuizPaperRouter{
|
|
db: db,
|
|
repository: repository,
|
|
quizRepository: quizRepository,
|
|
service: service,
|
|
controller: controller,
|
|
router: router,
|
|
}
|
|
}
|
|
|
|
func (r *userQuizPaperRouter) SetUserQuizPaperRouter() {
|
|
group := r.router.Group("/userquizpaper")
|
|
group.GET("", middleware.Auth("admin"), r.controller.List)
|
|
group.GET("/:id", middleware.Auth("admin"), r.controller.Find)
|
|
group.POST("", middleware.Auth("admin"), r.controller.Create)
|
|
group.PUT("/:id", middleware.Auth("admin"), r.controller.Update)
|
|
group.PATCH("/:id", middleware.Auth("admin"), r.controller.Patch)
|
|
}
|