add tysc handlers to kontor-gin
This commit is contained in:
@@ -3,6 +3,7 @@ package router
|
||||
import (
|
||||
"html/template"
|
||||
"kontor-api-gin/assets"
|
||||
"kontor-api-gin/internal/globals"
|
||||
"kontor-api-gin/internal/handlers"
|
||||
"kontor-api-gin/internal/middleware"
|
||||
"kontor-api-gin/templates"
|
||||
@@ -11,11 +12,13 @@ import (
|
||||
"log/slog"
|
||||
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-contrib/sessions"
|
||||
"github.com/gin-contrib/sessions/cookie"
|
||||
gin_slog "github.com/gin-contrib/slog"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func New(comics *handlers.ComicHandler, auth *handlers.AuthHandler, secret []byte) *gin.Engine {
|
||||
func New(admin *handlers.AdminHandler, comics *handlers.ComicsHandler, media *handlers.MediaHandler, tysc *handlers.TyscHandler, webApp *handlers.WebAppHandler) *gin.Engine {
|
||||
router := gin.New()
|
||||
router.Use(gin.Recovery())
|
||||
router.Use(gin_slog.SetLogger(
|
||||
@@ -25,25 +28,70 @@ func New(comics *handlers.ComicHandler, auth *handlers.AuthHandler, secret []byt
|
||||
gin_slog.WithServerErrorLevel(slog.LevelInfo),
|
||||
))
|
||||
router.Use(cors.New(cors.Config{
|
||||
AllowOrigins: []string{"https://app.example.com"},
|
||||
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE"},
|
||||
AllowHeaders: []string{"Authorization", "Content-Type"},
|
||||
AllowOrigins: []string{"https://app.example.com"},
|
||||
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE"},
|
||||
AllowHeaders: []string{"Authorization", "Content-Type"},
|
||||
AllowCredentials: true,
|
||||
}))
|
||||
|
||||
// router.LoadHTMLGlob("templates/**/*.html")
|
||||
// router.Static("/public", "./assets")
|
||||
|
||||
templ := template.Must(template.New("").ParseFS(templates.TemplateFiles, "layouts/*.html", "pages/*.html"))
|
||||
router.SetHTMLTemplate(templ)
|
||||
|
||||
router.StaticFS("/public", http.FS(assets.StaticFiles))
|
||||
|
||||
router.GET("/health", func(c *gin.Context) { c.JSON(200, gin.H{"ok": true}) })
|
||||
router.Use(sessions.Sessions("session", cookie.NewStore(globals.Secret)))
|
||||
router.Use(middleware.RequestID([]string{"/health"}))
|
||||
|
||||
router.GET("/health", handlers.Health)
|
||||
router.GET("/", handlers.Index)
|
||||
router.GET("/login", admin.AuthHandler.LoginPage)
|
||||
router.POST("/login", admin.AuthHandler.LoginPost)
|
||||
router.GET("/logout", admin.AuthHandler.LogoutPage)
|
||||
|
||||
comic := router.Group("/comics")
|
||||
comic.GET("/comics", webApp.ComicHandler.ListPage)
|
||||
|
||||
m := router.Group("/web")
|
||||
m.Use(middleware.AuthRequired())
|
||||
m.GET("/actors", media.MediaActorHandler.ListPage)
|
||||
m.GET("/articles", media.MediaFileHandler.ListPage)
|
||||
m.GET("/media-files", media.MediaFileHandler.ListPage)
|
||||
m.GET("/files", media.MediaFileHandler.ListPage)
|
||||
m.GET("/media-lofis", media.MediaLoFiHandler.ListPage)
|
||||
m.GET("/lofis", media.MediaLoFiHandler.ListPage)
|
||||
|
||||
api := router.Group("/api")
|
||||
api.POST("/login", auth.Login)
|
||||
api.POST("/login", admin.AuthHandler.Login)
|
||||
|
||||
v1 := api.Group("/v1")
|
||||
{
|
||||
secured := v1.Group("")
|
||||
secured.Use(middleware.JWT(secret))
|
||||
secured.GET("comics/comics", comics.List)
|
||||
secured.Use(middleware.JWT(admin.Secret))
|
||||
secured.GET("admin/permissions", admin.PermissionHandler.List)
|
||||
secured.GET("tysc/sports", tysc.SportHandler.List)
|
||||
secured.GET("tysc/sports/:id", tysc.SportHandler.Get)
|
||||
secured.GET("tysc/players", tysc.PlayerHandler.List)
|
||||
secured.GET("tysc/teams", tysc.TeamHandler.List)
|
||||
secured.GET("tysc/positions", tysc.PositionHandler.List)
|
||||
// secured.GET("tysc/roosters", tysc.RoosterHandler.List)
|
||||
// secured.GET("tysc/vendors", tysc.VendorHandler.List)
|
||||
// secured.GET("tysc/cardsets", tysc.CardSetHandler.List)
|
||||
// secured.GET("tysc/cards", tysc.CardHandler.List)
|
||||
secured.GET("/comics/comics", comics.ComicHandler.List)
|
||||
secured.GET("/comics/publishers", comics.PublisherHandler.List)
|
||||
// comic.GET("/artists", comics.ArtistHandler.List)
|
||||
// comic.GET("/issues", comics.IssueHandler.List)
|
||||
// comic.GET("/worktypes", comics.WorktypeHandler.List)
|
||||
// comic.GET("/volumes", comics.VolumeHandler.List)
|
||||
// comic.GET("/storyarcs", comics.StoryarcHandler.List)
|
||||
// comic.GET("/comicworks", comics.ComicworkHandler.List)
|
||||
// comic.GET("/issueworks", comics.IssueworkHandler.List)
|
||||
secured.GET("/media/files", media.MediaFileHandler.List)
|
||||
secured.GET("/media/lofis", media.MediaLoFiHandler.List)
|
||||
secured.GET("/media/actors", media.MediaActorHandler.List)
|
||||
}
|
||||
return router
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user