You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
633 B
31 lines
633 B
package api
|
|
|
|
import (
|
|
"git.aiterp.net/stufflog3/stufflog3-api/internal/slerrors"
|
|
"github.com/gin-gonic/gin"
|
|
"strconv"
|
|
)
|
|
|
|
func handler(key string, callback func(c *gin.Context) (interface{}, error)) gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
res, err := callback(c)
|
|
if err != nil {
|
|
slerrors.Respond(c, err)
|
|
return
|
|
}
|
|
|
|
resJson := make(map[string]interface{}, 1)
|
|
resJson[key] = res
|
|
|
|
c.JSON(200, resJson)
|
|
}
|
|
}
|
|
|
|
func reqInt(c *gin.Context, key string) (int, error) {
|
|
v, err := strconv.Atoi(c.Param(key))
|
|
if err != nil {
|
|
return 0, slerrors.BadRequest(key + " parameter must be a number")
|
|
}
|
|
|
|
return v, nil
|
|
}
|