fin-check-api/cmd/http-server/main.go

79 lines
2.2 KiB
Go
Raw Normal View History

2024-08-01 23:03:51 +02:00
package main
import (
2024-08-06 13:32:10 +02:00
"time"
2024-08-02 17:14:06 +02:00
"github.com/swaggo/files"
"github.com/swaggo/gin-swagger"
2024-08-01 23:03:51 +02:00
2024-08-02 17:14:06 +02:00
docs "git.qowevisa.me/Qowevisa/gonuts/docs"
2024-08-02 22:37:16 +02:00
"git.qowevisa.me/Qowevisa/gonuts/handlers"
"git.qowevisa.me/Qowevisa/gonuts/middleware"
2024-08-02 22:37:16 +02:00
"git.qowevisa.me/Qowevisa/gonuts/tokens"
2024-08-06 13:32:10 +02:00
"github.com/gin-contrib/cors"
2024-08-02 17:14:06 +02:00
"github.com/gin-gonic/gin"
2024-08-01 23:03:51 +02:00
)
2024-08-02 17:14:06 +02:00
// @title Swagger Example API
// @version 1.0
// @description This is a sample server celler server.
// @termsOfService http://swagger.io/terms/
// @contact.name API Support
// @contact.url http://www.swagger.io/support
// @contact.email support@swagger.io
// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
2024-08-08 19:30:59 +02:00
// @host gonapi.qowevisa.click
2024-08-02 17:14:06 +02:00
// @BasePath /api
2024-08-01 23:03:51 +02:00
func main() {
2024-08-02 17:14:06 +02:00
r := gin.Default()
docs.SwaggerInfo.BasePath = "/api"
2024-08-06 13:32:10 +02:00
r.Use(cors.New(cors.Config{
2024-08-06 21:51:34 +02:00
AllowOrigins: []string{"*"},
AllowMethods: []string{"GET", "DELETE", "PUT", "PATCH", "OPTIONS"},
2024-08-06 13:32:10 +02:00
AllowHeaders: []string{"Origin"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
2024-08-06 21:51:34 +02:00
MaxAge: 12 * time.Hour,
2024-08-06 13:32:10 +02:00
}))
2024-08-02 17:14:06 +02:00
// Routes defined in the routes package
2024-08-02 23:07:14 +02:00
api := r.Group("/api")
2024-08-02 17:14:06 +02:00
{
2024-08-06 21:51:34 +02:00
api.GET("/ping", handlers.PingGet)
2024-08-02 23:07:14 +02:00
userRoutes := api.Group("/user")
2024-08-02 23:06:21 +02:00
{
userRoutes.POST("/register", handlers.UserRegister)
userRoutes.POST("/login", handlers.UserLogin)
}
cardsRoutes := api.Group("/card", middleware.AuthMiddleware())
2024-08-03 07:16:55 +02:00
{
cardsRoutes.POST("/add", handlers.CardAdd)
2024-08-03 08:53:50 +02:00
cardsRoutes.GET("/:id", handlers.CardGetId)
cardsRoutes.PUT("/edit/:id", handlers.CardPutId)
cardsRoutes.DELETE("/delete/:id", handlers.CardDeleteId)
2024-08-03 07:16:55 +02:00
}
2024-08-03 12:40:17 +02:00
categoriesRoutes := api.Group("/category", middleware.AuthMiddleware())
{
categoriesRoutes.POST("/add", handlers.CategoryAdd)
categoriesRoutes.GET("/:id", handlers.CategoryGetId)
categoriesRoutes.PUT("/edit/:id", handlers.CategoryPutId)
categoriesRoutes.DELETE("/delete/:id", handlers.CategoryDeleteId)
}
2024-08-02 17:14:06 +02:00
}
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
2024-08-03 12:43:58 +02:00
r.GET("/swagger", func(c *gin.Context) {
c.Redirect(301, "/swagger/index.html")
})
r.GET("/docs", func(c *gin.Context) {
c.Redirect(301, "/swagger/index.html")
})
2024-08-02 17:14:06 +02:00
2024-08-02 22:37:16 +02:00
go tokens.StartTokens()
2024-08-06 22:59:05 +02:00
r.Run(":3000")
2024-08-02 17:14:06 +02:00
}