Swag Docs
This commit is contained in:
@ -1,14 +1,19 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"studioj/boilerplate_go/internal/controllers"
|
||||
"studioj/boilerplate_go/internal/repositories"
|
||||
"studioj/boilerplate_go/internal/services"
|
||||
"learnsteam/learsteam-quiz-api/internal/controllers"
|
||||
"learnsteam/learsteam-quiz-api/internal/repositories"
|
||||
"learnsteam/learsteam-quiz-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(db, router)
|
||||
}
|
||||
|
||||
type AuthRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
@ -23,17 +28,12 @@ type authRouter struct {
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func InitAuthRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewAuthRouter(db, router)
|
||||
r.SetAuthRouter(db, router)
|
||||
}
|
||||
|
||||
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)
|
||||
controller := controllers.NewAuthController(service, tokenService)
|
||||
|
||||
return &authRouter{
|
||||
db: db,
|
||||
|
50
internal/routers/program.go
Normal file
50
internal/routers/program.go
Normal file
@ -0,0 +1,50 @@
|
||||
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 InitProgramRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewProgramRouter(db, router)
|
||||
r.SetProgramRouter(db, router)
|
||||
}
|
||||
|
||||
type ProgramRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
|
||||
type programRouter struct {
|
||||
db *gorm.DB
|
||||
repository repositories.ProgramRepository
|
||||
service services.ProgramService
|
||||
controller controllers.ProgramController
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewProgramRouter(db *gorm.DB, router *gin.Engine) *programRouter {
|
||||
repository := repositories.NewProgramRepository(db)
|
||||
service := services.NewProgramService(repository)
|
||||
controller := controllers.NewProgramController(service)
|
||||
|
||||
return &programRouter{
|
||||
db: db,
|
||||
repository: repository,
|
||||
service: service,
|
||||
controller: controller,
|
||||
router: router,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *programRouter) SetProgramRouter(db *gorm.DB, router *gin.Engine) {
|
||||
group := router.Group("/program")
|
||||
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)
|
||||
}
|
50
internal/routers/quiz.go
Normal file
50
internal/routers/quiz.go
Normal file
@ -0,0 +1,50 @@
|
||||
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 InitQuizRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewQuizRouter(db, router)
|
||||
r.SetQuizRouter(db, router)
|
||||
}
|
||||
|
||||
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(db *gorm.DB, router *gin.Engine) {
|
||||
group := router.Group("/quiz")
|
||||
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)
|
||||
}
|
@ -1,9 +1,10 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"learnsteam/learsteam-quiz-api/internal/database"
|
||||
|
||||
"studioj/boilerplate_go/internal/database"
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
var Router *gin.Engine
|
||||
@ -11,9 +12,19 @@ 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)
|
||||
InitTokenRouter(maindb, Router)
|
||||
InitUserRouter(maindb, Router)
|
||||
InitProgramRouter(maindb, Router)
|
||||
InitQuizRouter(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/learsteam-quiz-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(router)
|
||||
}
|
||||
|
||||
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(router *gin.Engine) {
|
||||
group := router.Group("/swagger")
|
||||
group.GET("*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
}
|
@ -1,14 +1,19 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"studioj/boilerplate_go/internal/controllers"
|
||||
"studioj/boilerplate_go/internal/repositories"
|
||||
"studioj/boilerplate_go/internal/services"
|
||||
"learnsteam/learsteam-quiz-api/internal/controllers"
|
||||
"learnsteam/learsteam-quiz-api/internal/repositories"
|
||||
"learnsteam/learsteam-quiz-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(db, router)
|
||||
}
|
||||
|
||||
type TokenRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
@ -21,11 +26,6 @@ type tokenRouter struct {
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func InitTokenRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewTokenRouter(db, router)
|
||||
r.SetTokenRouter(db, router)
|
||||
}
|
||||
|
||||
func NewTokenRouter(db *gorm.DB, router *gin.Engine) *tokenRouter {
|
||||
repository := repositories.NewTokenRepository(db)
|
||||
service := services.NewTokenService(repository)
|
||||
@ -41,6 +41,6 @@ func NewTokenRouter(db *gorm.DB, router *gin.Engine) *tokenRouter {
|
||||
}
|
||||
|
||||
func (r *tokenRouter) SetTokenRouter(db *gorm.DB, router *gin.Engine) {
|
||||
// group := router.Group("/token")
|
||||
// group.GET("refresh", middleware.Auth(), r.controller.Refresh)
|
||||
group := router.Group("/token")
|
||||
group.POST("refresh", r.controller.Refresh)
|
||||
}
|
||||
|
@ -1,15 +1,20 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"studioj/boilerplate_go/internal/controllers"
|
||||
"studioj/boilerplate_go/internal/middleware"
|
||||
"studioj/boilerplate_go/internal/repositories"
|
||||
"studioj/boilerplate_go/internal/services"
|
||||
"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 InitUserRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewUserRouter(db, router)
|
||||
r.SetUserRouter(db, router)
|
||||
}
|
||||
|
||||
type UserRouter interface {
|
||||
SetRouter(db *gorm.DB, router *gin.Engine)
|
||||
}
|
||||
@ -22,11 +27,6 @@ type userRouter struct {
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func InitUserRouter(db *gorm.DB, router *gin.Engine) {
|
||||
r := NewUserRouter(db, router)
|
||||
r.SetUserRouter(db, router)
|
||||
}
|
||||
|
||||
func NewUserRouter(db *gorm.DB, router *gin.Engine) *userRouter {
|
||||
repository := repositories.NewUserRepository(db)
|
||||
tokenRepository := repositories.NewTokenRepository(db)
|
||||
@ -46,5 +46,6 @@ func NewUserRouter(db *gorm.DB, router *gin.Engine) *userRouter {
|
||||
|
||||
func (r *userRouter) SetUserRouter(db *gorm.DB, router *gin.Engine) {
|
||||
group := router.Group("/user")
|
||||
group.GET("", middleware.Auth(), r.controller.List)
|
||||
group.GET("/:id", middleware.Auth(), r.controller.Find)
|
||||
}
|
||||
|
Reference in New Issue
Block a user