initial commit

This commit is contained in:
Stian Fredrik Aune
2021-05-20 22:03:23 +02:00
commit 5a56763526
21 changed files with 661 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
package api
import (
"git.aiterp.net/lucifer/server3/app/config"
"git.aiterp.net/lucifer/server3/models"
"github.com/gin-gonic/gin"
)
func Events(r gin.IRoutes) {
r.POST("", handler(func(c *gin.Context) (interface{}, error) {
var event models.Event
err := parseBody(c, &event)
if err != nil {
return nil, err
}
config.EventChannel<-event
return event, nil
}))
}
+46
View File
@@ -0,0 +1,46 @@
package api
import (
"encoding/json"
"git.aiterp.net/lucifer/server3/models"
"github.com/gin-gonic/gin"
)
var errorMap = map[error]int{
models.ErrInvalidName: 400,
}
type response struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data"`
}
func handler(fun func(c *gin.Context) (interface{}, error)) gin.HandlerFunc {
return func(c *gin.Context) {
val, err := fun(c)
if err != nil {
errCode := errorMap[err]
if errCode == 0 {
errCode = 500
}
c.JSON(errCode, response{
Code: errCode,
Message: err.Error(),
})
return
}
c.JSON(200, val)
}
}
func parseBody(c *gin.Context, target interface{}) error {
err := json.NewDecoder(c.Request.Body).Decode(target)
if err != nil {
return models.ErrBadInput
}
return nil
}