39 lines
1.4 KiB
Go
39 lines
1.4 KiB
Go
package server
|
|
|
|
import (
|
|
"CatsOfMastodonBotGo/internal/auth"
|
|
"CatsOfMastodonBotGo/internal/web/handlers"
|
|
|
|
"github.com/gin-contrib/cors"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func SetupRouter() *gin.Engine {
|
|
r := gin.Default()
|
|
|
|
r.Use(cors.New(cors.Config{
|
|
AllowOrigins: []string{"https://extra-mama-chiz.surge.sh"}, // Just for test
|
|
AllowMethods: []string{"POST", "GET", "OPTIONS"},
|
|
AllowHeaders: []string{"Origin", "Content-Type", "Authorization"},
|
|
AllowCredentials: true,
|
|
}))
|
|
|
|
auth.InitJwtTokenGenerator() // Must be befor initializing admin handler, otherwise 'panic: runtime error: invalid memory address or nil pointer dereference'
|
|
handlers.InitAdminDashboardHandler()
|
|
handlers.InitApiEndpointHandler()
|
|
|
|
admin := r.Group("/admin")
|
|
|
|
// My man, this is done way more efficient and fast in .NET, specially the authentication part
|
|
admin.POST("/login", handlers.AdminDashboardHandlerInstance.Login)
|
|
admin.GET("/getmedia", auth.JwtTokenGeneratorInstance.GinMiddleware(), handlers.AdminDashboardHandlerInstance.GetMedia)
|
|
admin.POST("/approve", auth.JwtTokenGeneratorInstance.GinMiddleware(), handlers.AdminDashboardHandlerInstance.ApproveMedia)
|
|
admin.POST("/reject", auth.JwtTokenGeneratorInstance.GinMiddleware(), handlers.AdminDashboardHandlerInstance.RejectMedia)
|
|
|
|
api := r.Group("/api")
|
|
|
|
api.GET("/post/random", handlers.ApiEndpointHandlerInstance.GetRandomPost)
|
|
|
|
return r
|
|
}
|