first commit
This commit is contained in:
53
internal/routers/auth.go
Normal file
53
internal/routers/auth.go
Normal file
@ -0,0 +1,53 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"learnsteam/cslms-api/internal/controllers"
|
||||
"learnsteam/cslms-api/internal/repositories"
|
||||
"learnsteam/cslms-api/internal/services"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func InitAuthRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewAuthRouter(db, router)
|
||||
r.SetAuthRouter()
|
||||
}
|
||||
|
||||
type AuthRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type authRouter struct {
|
||||
db *gorm.DB
|
||||
userRepository repositories.UserRepository
|
||||
tokenRepository repositories.TokenRepository
|
||||
service services.AuthService
|
||||
tokenService services.TokenService
|
||||
controller controllers.AuthController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewAuthRouter(db *gorm.DB, router *gin.Engine) *authRouter {
|
||||
userRepository := repositories.NewUserRepository(db)
|
||||
tokenRepository := repositories.NewTokenRepository(db)
|
||||
service := services.NewAuthService(userRepository, tokenRepository)
|
||||
tokenService := services.NewTokenService(tokenRepository)
|
||||
controller := controllers.NewAuthController(service, tokenService)
|
||||
|
||||
return &authRouter{
|
||||
db: db,
|
||||
userRepository: userRepository,
|
||||
tokenRepository: tokenRepository,
|
||||
service: service,
|
||||
tokenService: tokenService,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *authRouter) SetAuthRouter() {
|
||||
group := r.router.Group("/auth")
|
||||
group.POST("login", r.controller.Login)
|
||||
group.POST("register", r.controller.Register)
|
||||
}
|
53
internal/routers/center.go
Normal file
53
internal/routers/center.go
Normal file
@ -0,0 +1,53 @@
|
||||
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 InitCenterRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewCenterRouter(db, router)
|
||||
r.SetCenterRouter()
|
||||
}
|
||||
|
||||
type CenterRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type centerRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.CenterRepository
|
||||
service services.CenterService
|
||||
controller controllers.CenterController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewCenterRouter(db *gorm.DB, router *gin.Engine) *centerRouter {
|
||||
repository := repositories.NewCenterRepository(db)
|
||||
tokenRepository := repositories.NewTokenRepository(db)
|
||||
service := services.NewCenterService(repository, tokenRepository)
|
||||
|
||||
tokenService := services.NewTokenService(tokenRepository)
|
||||
controller := controllers.NewCenterController(service, tokenService)
|
||||
|
||||
return ¢erRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *centerRouter) SetCenterRouter() {
|
||||
group := r.router.Group("/center")
|
||||
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)
|
||||
}
|
50
internal/routers/quiz.go
Normal file
50
internal/routers/quiz.go
Normal file
@ -0,0 +1,50 @@
|
||||
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 InitQuizRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewQuizRouter(db, router)
|
||||
r.SetQuizRouter()
|
||||
}
|
||||
|
||||
type QuizRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type quizRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.QuizRepository
|
||||
service services.QuizService
|
||||
controller controllers.QuizController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewQuizRouter(db *gorm.DB, router *gin.Engine) *quizRouter {
|
||||
repository := repositories.NewQuizRepository(db)
|
||||
service := services.NewQuizService(repository)
|
||||
controller := controllers.NewQuizController(service)
|
||||
|
||||
return &quizRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *quizRouter) SetQuizRouter() {
|
||||
group := r.router.Group("/quiz")
|
||||
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)
|
||||
}
|
57
internal/routers/quizpaper.go
Normal file
57
internal/routers/quizpaper.go
Normal file
@ -0,0 +1,57 @@
|
||||
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 InitQuizPaperRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewQuizPaperRouter(db, router)
|
||||
r.SetQuizPaperRouter()
|
||||
}
|
||||
|
||||
type QuizPaperRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type quizPaperRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.QuizPaperRepository
|
||||
quizRepository repositories.QuizRepository
|
||||
service services.QuizPaperService
|
||||
quizService services.QuizService
|
||||
controller controllers.QuizPaperController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewQuizPaperRouter(db *gorm.DB, router *gin.Engine) *quizPaperRouter {
|
||||
repository := repositories.NewQuizPaperRepository(db)
|
||||
quizRepository := repositories.NewQuizRepository(db)
|
||||
service := services.NewQuizPaperService(repository)
|
||||
quizService := services.NewQuizService(quizRepository)
|
||||
controller := controllers.NewQuizPaperController(service, quizService)
|
||||
|
||||
return &quizPaperRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
quizRepository: quizRepository,
|
||||
service: service,
|
||||
quizService: quizService,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *quizPaperRouter) SetQuizPaperRouter() {
|
||||
group := r.router.Group("/quizpaper")
|
||||
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.POST("/:id/copy", middleware.Auth("admin"), r.controller.Copy)
|
||||
}
|
33
internal/routers/router.go
Normal file
33
internal/routers/router.go
Normal file
@ -0,0 +1,33 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"learnsteam/cslms-api/internal/database"
|
||||
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
var Router *gin.Engine
|
||||
|
||||
func Init() {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
Router = gin.Default()
|
||||
config := cors.DefaultConfig()
|
||||
config.AllowOrigins = []string{"http://127.0.0.1:3000", "http://localhost:3000", "http://localhost:3030", "https://learnsteam-quiz.jongyeob.com"}
|
||||
config.AllowMethods = []string{"GET", "POST", "PUT", "DELETE", "PATCH"}
|
||||
config.AllowHeaders = []string{"Origin", "Content-Length", "Content-Type"}
|
||||
Router.Use(cors.New(config))
|
||||
|
||||
maindb := database.GetDB()
|
||||
|
||||
InitAuthRouter(maindb, Router)
|
||||
InitCenterRouter(maindb, Router)
|
||||
InitQuizPaperRouter(maindb, Router)
|
||||
InitQuizRouter(maindb, Router)
|
||||
InitTokenRouter(maindb, Router)
|
||||
InitUserQuizPaperRouter(maindb, Router)
|
||||
InitUserQuizRouter(maindb, Router)
|
||||
InitUserRouter(maindb, Router)
|
||||
|
||||
InitSwaggerRouter(Router)
|
||||
}
|
37
internal/routers/swagger.go
Normal file
37
internal/routers/swagger.go
Normal file
@ -0,0 +1,37 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"learnsteam/cslms-api/internal/controllers"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
swaggerFiles "github.com/swaggo/files"
|
||||
ginSwagger "github.com/swaggo/gin-swagger"
|
||||
)
|
||||
|
||||
func InitSwaggerRouter(router *gin.Engine) {
|
||||
r := NewSwaggerRouter(router)
|
||||
r.SetSwaggerRouter()
|
||||
}
|
||||
|
||||
type SwaggerRouter interface {
|
||||
SetRouter(router *gin.Engine)
|
||||
}
|
||||
|
||||
type swaggerRouter struct {
|
||||
router *gin.Engine
|
||||
controller controllers.SwaggerController
|
||||
}
|
||||
|
||||
func NewSwaggerRouter(router *gin.Engine) *swaggerRouter {
|
||||
controller := controllers.NewSwaggerController()
|
||||
return &swaggerRouter{
|
||||
router: router,
|
||||
controller: controller,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *swaggerRouter) SetSwaggerRouter() {
|
||||
group := r.router.Group("/swagger")
|
||||
group.GET("*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
}
|
46
internal/routers/token.go
Normal file
46
internal/routers/token.go
Normal file
@ -0,0 +1,46 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"learnsteam/cslms-api/internal/controllers"
|
||||
"learnsteam/cslms-api/internal/repositories"
|
||||
"learnsteam/cslms-api/internal/services"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func InitTokenRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewTokenRouter(db, router)
|
||||
r.SetTokenRouter()
|
||||
}
|
||||
|
||||
type TokenRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type tokenRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.TokenRepository
|
||||
service services.TokenService
|
||||
controller controllers.TokenController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewTokenRouter(db *gorm.DB, router *gin.Engine) *tokenRouter {
|
||||
repository := repositories.NewTokenRepository(db)
|
||||
service := services.NewTokenService(repository)
|
||||
controller := controllers.NewTokenController(service)
|
||||
|
||||
return &tokenRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *tokenRouter) SetTokenRouter() {
|
||||
group := r.router.Group("/token")
|
||||
group.POST("refresh", r.controller.Refresh)
|
||||
}
|
51
internal/routers/user.go
Normal file
51
internal/routers/user.go
Normal file
@ -0,0 +1,51 @@
|
||||
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 InitUserRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewUserRouter(db, router)
|
||||
r.SetUserRouter()
|
||||
}
|
||||
|
||||
type UserRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type userRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.UserRepository
|
||||
service services.UserService
|
||||
controller controllers.UserController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewUserRouter(db *gorm.DB, router *gin.Engine) *userRouter {
|
||||
repository := repositories.NewUserRepository(db)
|
||||
tokenRepository := repositories.NewTokenRepository(db)
|
||||
service := services.NewUserService(repository, tokenRepository)
|
||||
|
||||
tokenService := services.NewTokenService(tokenRepository)
|
||||
controller := controllers.NewUserController(service, tokenService)
|
||||
|
||||
return &userRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *userRouter) SetUserRouter() {
|
||||
group := r.router.Group("/user")
|
||||
group.GET("", middleware.Auth("admin"), r.controller.List)
|
||||
group.GET("/:id", middleware.Auth("admin"), r.controller.Find)
|
||||
}
|
53
internal/routers/userquiz.go
Normal file
53
internal/routers/userquiz.go
Normal file
@ -0,0 +1,53 @@
|
||||
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 InitUserQuizRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewUserQuizRouter(db, router)
|
||||
r.SetUserQuizRouter()
|
||||
}
|
||||
|
||||
type UserQuizRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type userQuizRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.UserQuizRepository
|
||||
quizRepository repositories.QuizRepository
|
||||
service services.UserQuizService
|
||||
controller controllers.UserQuizController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewUserQuizRouter(db *gorm.DB, router *gin.Engine) *userQuizRouter {
|
||||
repository := repositories.NewUserQuizRepository(db)
|
||||
quizRepostory := repositories.NewQuizRepository(db)
|
||||
service := services.NewUserQuizService(repository, quizRepostory)
|
||||
controller := controllers.NewUserQuizController(service)
|
||||
|
||||
return &userQuizRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
quizRepository: quizRepostory,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *userQuizRouter) SetUserQuizRouter() {
|
||||
group := r.router.Group("/userquiz")
|
||||
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)
|
||||
}
|
67
internal/routers/userquizpaper.go
Normal file
67
internal/routers/userquizpaper.go
Normal file
@ -0,0 +1,67 @@
|
||||
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
|
||||
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)
|
||||
quizPaperService := services.NewQuizPaperService(quizPaperRepository)
|
||||
userService := services.NewUserService(userRepository, tokenRepository)
|
||||
userQuizService := services.NewUserQuizService(userQuizRepository, quizRepository)
|
||||
|
||||
controller := controllers.NewUserQuizPaperController(service, userService, quizPaperService, userQuizService)
|
||||
|
||||
return &userQuizPaperRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
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)
|
||||
}
|
Reference in New Issue
Block a user