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.
37 lines
784 B
37 lines
784 B
package api
|
|
|
|
import (
|
|
"git.aiterp.net/lucifer/new-server/app/config"
|
|
"git.aiterp.net/lucifer/new-server/models"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func Scenes(r gin.IRoutes) {
|
|
r.GET("", handler(func(c *gin.Context) (interface{}, error) {
|
|
return config.SceneRepository().FetchAll(ctxOf(c))
|
|
}))
|
|
|
|
r.GET("/:id", handler(func(c *gin.Context) (interface{}, error) {
|
|
return config.SceneRepository().Find(ctxOf(c), intParam(c, "id"))
|
|
}))
|
|
|
|
r.POST("", handler(func(c *gin.Context) (interface{}, error) {
|
|
var body models.Scene
|
|
err := parseBody(c, &body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = body.Validate()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = config.SceneRepository().Save(ctxOf(c), &body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return body, nil
|
|
}))
|
|
}
|