퀴즈 풀기/점수
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