FreePad/src/routes/routes_api.go

76 lines
1.6 KiB
Go
Raw Normal View History

2022-05-15 12:43:42 +03:00
package routes
import (
"fmt"
"net/url"
2022-05-15 12:43:42 +03:00
"github.com/JustKato/FreePad/controllers/post"
"github.com/JustKato/FreePad/helper"
"github.com/JustKato/FreePad/models/database"
2022-05-15 12:43:42 +03:00
"github.com/JustKato/FreePad/types"
"github.com/gin-gonic/gin"
)
func ApiRoutes(route *gin.RouterGroup) {
2022-05-15 20:59:46 +03:00
// Bind the rate limiter
helper.BindRateLimiter(route)
2022-05-15 12:43:42 +03:00
route.POST("/post", func(ctx *gin.Context) {
// Get the name of the post
postName := ctx.PostForm("name")
// Get the content of the post
postContent := ctx.PostForm("content")
// Create my post
myPost, err := post.Create(postName, postContent)
if err != nil {
ctx.JSON(400, types.FreeError{
Error: err.Error(),
Message: "There has been an error processing your request",
})
}
ctx.JSON(200, gin.H{
"message": "Post succesfully created",
"post": myPost,
"link": fmt.Sprintf("%s/%s", helper.GetDomainBase(), url.QueryEscape(myPost.Name)),
})
2022-05-15 12:43:42 +03:00
})
2022-05-15 19:01:29 +03:00
route.GET("/post", func(ctx *gin.Context) {
// Get the name of the post
postName := ctx.PostForm("name")
myPost, err := post.Retrieve(postName)
if err != nil {
ctx.JSON(400, types.FreeError{
Error: err.Error(),
Message: "There has been an error processing your request",
})
}
// Return the post list
ctx.JSON(200, myPost)
})
2022-05-15 12:43:42 +03:00
route.GET("/posts", func(ctx *gin.Context) {
// Return the post list
ctx.JSON(200, post.GetPostList())
})
2022-05-15 19:01:29 +03:00
// Add in health checks
route.GET("/health", healthCheck)
route.POST("/test", func(ctx *gin.Context) {
ctx.JSON(200, database.MigrationUpdate())
})
2022-05-15 19:01:29 +03:00
}
func healthCheck(ctx *gin.Context) {
ctx.JSON(200, gin.H{
"message": "Healthy",
})
2022-05-15 12:43:42 +03:00
}