퀴즈 풀기/점수
This commit is contained in:
89
internal/routers/paper.go
Normal file
89
internal/routers/paper.go
Normal file
@ -0,0 +1,89 @@
|
||||
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 InitPaperRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewPaperRouter(db, router)
|
||||
r.SetPaperRouter()
|
||||
}
|
||||
|
||||
type PaperRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type paperRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.PaperRepository
|
||||
paperQuizRepository repositories.PaperQuizRepository
|
||||
quizRepository repositories.QuizRepository
|
||||
quizPaperRepository repositories.QuizPaperRepository
|
||||
userRepository repositories.UserRepository
|
||||
userQuizRepository repositories.UserQuizRepository
|
||||
service services.PaperService
|
||||
paperQuizService services.PaperQuizService
|
||||
quizService services.QuizService
|
||||
quizPaperService services.QuizPaperService
|
||||
userService services.UserService
|
||||
userQuizService services.UserQuizService
|
||||
controller controllers.PaperController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewPaperRouter(db *gorm.DB, router *gin.Engine) *paperRouter {
|
||||
repository := repositories.NewPaperRepository(db)
|
||||
paperQuizRepository := repositories.NewPaperQuizRepository(db)
|
||||
quizRepository := repositories.NewQuizRepository(db)
|
||||
quizPaperRepository := repositories.NewQuizPaperRepository(db)
|
||||
tokenRepository := repositories.NewTokenRepository(db)
|
||||
userRepository := repositories.NewUserRepository(db)
|
||||
userQuizRepository := repositories.NewUserQuizRepository(db)
|
||||
|
||||
service := services.NewPaperService(repository, paperQuizRepository)
|
||||
paperQuizService := services.NewPaperQuizService(paperQuizRepository)
|
||||
quizService := services.NewQuizService(quizRepository)
|
||||
quizPaperService := services.NewQuizPaperService(quizPaperRepository)
|
||||
userService := services.NewUserService(userRepository, tokenRepository)
|
||||
userQuizService := services.NewUserQuizService(userQuizRepository, quizRepository)
|
||||
|
||||
controller := controllers.NewPaperController(service, paperQuizService, quizService, quizPaperService, userService, userQuizService)
|
||||
|
||||
return &paperRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
quizRepository: quizRepository,
|
||||
quizPaperRepository: quizPaperRepository,
|
||||
userRepository: userRepository,
|
||||
userQuizRepository: userQuizRepository,
|
||||
|
||||
service: service,
|
||||
paperQuizService: paperQuizService,
|
||||
quizService: quizService,
|
||||
quizPaperService: quizPaperService,
|
||||
userService: userService,
|
||||
userQuizService: userQuizService,
|
||||
|
||||
controller: controller,
|
||||
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *paperRouter) SetPaperRouter() {
|
||||
group := r.router.Group("/paper")
|
||||
group.GET("", middleware.Auth("member"), r.controller.List)
|
||||
group.GET("/:paper_id", middleware.Auth("member"), r.controller.Find)
|
||||
group.PATCH("/:paper_id/start", middleware.Auth("member"), r.controller.Start)
|
||||
group.PATCH("/:paper_id/finish", middleware.Auth("member"), r.controller.Finish)
|
||||
|
||||
group.GET("/:paper_id/quiz", middleware.Auth("member"), r.controller.QuizList)
|
||||
group.GET("/:paper_id/quiz/:quiz_id", middleware.Auth("member"), r.controller.QuizFind)
|
||||
group.PATCH("/:paper_id/quiz/:quiz_id/answer", middleware.Auth("member"), r.controller.QuizAnswer)
|
||||
}
|
@ -25,6 +25,7 @@ func Init() {
|
||||
InitAuthRouter(maindb, Router)
|
||||
|
||||
InitCenterRouter(maindb, Router)
|
||||
InitPaperRouter(maindb, Router)
|
||||
InitQuizPaperRouter(maindb, Router)
|
||||
InitQuizRouter(maindb, Router)
|
||||
InitTokenRouter(maindb, Router)
|
||||
|
@ -20,27 +20,42 @@ type UserQuizRouter interface {
|
||||
}
|
||||
|
||||
type userQuizRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.UserQuizRepository
|
||||
quizRepository repositories.QuizRepository
|
||||
service services.UserQuizService
|
||||
controller controllers.UserQuizController
|
||||
router *gin.Engine
|
||||
db *gorm.DB
|
||||
repository repositories.UserQuizRepository
|
||||
quizRepository repositories.QuizRepository
|
||||
userquizRepository repositories.UserQuizRepository
|
||||
userquizpaperRepository repositories.UserQuizPaperRepository
|
||||
service services.UserQuizService
|
||||
quizService services.QuizService
|
||||
userquizService services.UserQuizService
|
||||
userquizpaperService services.UserQuizPaperService
|
||||
controller controllers.UserQuizController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewUserQuizRouter(db *gorm.DB, router *gin.Engine) *userQuizRouter {
|
||||
repository := repositories.NewUserQuizRepository(db)
|
||||
quizRepostory := repositories.NewQuizRepository(db)
|
||||
userquizRepository := repositories.NewUserQuizRepository(db)
|
||||
userquizpaperRepository := repositories.NewUserQuizPaperRepository(db)
|
||||
service := services.NewUserQuizService(repository, quizRepostory)
|
||||
controller := controllers.NewUserQuizController(service)
|
||||
quizService := services.NewQuizService(quizRepostory)
|
||||
userquizService := services.NewUserQuizService(userquizRepository, quizRepostory)
|
||||
userquizpaperService := services.NewUserQuizPaperService(userquizpaperRepository, userquizRepository)
|
||||
controller := controllers.NewUserQuizController(service, quizService, userquizpaperService)
|
||||
|
||||
return &userQuizRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
quizRepository: quizRepostory,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
db: db,
|
||||
repository: repository,
|
||||
quizRepository: quizRepostory,
|
||||
userquizpaperRepository: userquizpaperRepository,
|
||||
userquizRepository: userquizRepository,
|
||||
service: service,
|
||||
quizService: quizService,
|
||||
userquizpaperService: userquizpaperService,
|
||||
userquizService: userquizService,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,4 +65,5 @@ func (r *userQuizRouter) SetUserQuizRouter() {
|
||||
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("member"), r.controller.Answer)
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ func NewUserQuizPaperRouter(db *gorm.DB, router *gin.Engine) *userQuizPaperRoute
|
||||
userRepository := repositories.NewUserRepository(db)
|
||||
userQuizRepository := repositories.NewUserQuizRepository(db)
|
||||
|
||||
service := services.NewUserQuizPaperService(repository)
|
||||
service := services.NewUserQuizPaperService(repository, userQuizRepository)
|
||||
quizService := services.NewQuizService(quizRepository)
|
||||
quizPaperService := services.NewQuizPaperService(quizPaperRepository)
|
||||
userService := services.NewUserService(userRepository, tokenRepository)
|
||||
|
Reference in New Issue
Block a user