12345678910111213141516171819202122232425262728293031323334353637 |
- package fire
- import (
- "net/http"
- "git.mokkon.com/sainw/server_helper.git/util"
- )
- func ApiHandler(ep *EndPoint) http.Handler {
- fn := func(w http.ResponseWriter, r *http.Request) util.Return {
- ctx := r.Context()
- err := ep.Load(ctx, r)
- if err != nil {
- return util.NewErrorStatus().SetMessage(err.Error())
- }
- var doc map[string]interface{}
- switch r.Method {
- case "POST":
- if doc, err = ep.Post(ctx); err != nil {
- return util.NewErrorStatus().SetMessage(err.Error())
- }
- case "PUT":
- if doc, err = ep.Put(ctx); err != nil {
- return util.NewErrorStatus().SetMessage(err.Error())
- }
- case "DELETE":
- if doc, err = ep.Delete(ctx); err != nil {
- return util.NewErrorStatus().SetMessage(err.Error())
- }
- default:
- return util.NewErrorStatus().SetMessage("invalid method")
- }
- return util.NewOkStatus().SetData(doc)
- }
- return util.NoCache(util.Cors(Auth(ep.app, util.Json(fn))))
- }
|