proccessResults also for put/post
This commit is contained in:
46
handler.go
46
handler.go
@@ -5,8 +5,6 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/davecgh/go-spew/spew"
|
|
||||||
|
|
||||||
"gitbase.de/gopackage/mgocrud"
|
"gitbase.de/gopackage/mgocrud"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
mgo "gopkg.in/mgo.v2"
|
mgo "gopkg.in/mgo.v2"
|
||||||
@@ -55,22 +53,17 @@ func (api *API) collectionGetOneHandler(m mgocrud.ModelInterface) gin.HandlerFun
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if i, ok := m.(interface {
|
err = processResults(&Context{
|
||||||
ProcessResults(*Context, interface{}) error
|
|
||||||
}); ok {
|
|
||||||
// custom select manipulation
|
|
||||||
err := i.ProcessResults(&Context{
|
|
||||||
API: api,
|
API: api,
|
||||||
Context: c,
|
Context: c,
|
||||||
DB: db,
|
DB: db,
|
||||||
}, newM)
|
}, m, newM)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(500, gin.H{
|
c.JSON(500, gin.H{
|
||||||
"error": err.Error(),
|
"error": err.Error(),
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
c.JSON(200, newM)
|
c.JSON(200, newM)
|
||||||
}
|
}
|
||||||
@@ -200,22 +193,17 @@ func (api *API) collectionGetHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if i, ok := m.(interface {
|
err = processResults(&Context{
|
||||||
ProcessResults(*Context, interface{}) error
|
|
||||||
}); ok {
|
|
||||||
// custom select manipulation
|
|
||||||
err := i.ProcessResults(&Context{
|
|
||||||
API: api,
|
API: api,
|
||||||
Context: c,
|
Context: c,
|
||||||
DB: db,
|
DB: db,
|
||||||
}, results)
|
}, m, results)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(500, gin.H{
|
c.JSON(500, gin.H{
|
||||||
"error": err.Error(),
|
"error": err.Error(),
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if setIdent {
|
if setIdent {
|
||||||
xE := x.Elem() // results slice (of pointer to slice)
|
xE := x.Elem() // results slice (of pointer to slice)
|
||||||
@@ -287,6 +275,18 @@ func (api *API) collectionPostHandler(m mgocrud.ModelInterface) gin.HandlerFunc
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = processResults(&Context{
|
||||||
|
API: api,
|
||||||
|
Context: c,
|
||||||
|
DB: db,
|
||||||
|
}, m, readM)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(500, gin.H{
|
||||||
|
"error": err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
c.JSON(200, readM)
|
c.JSON(200, readM)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -384,7 +384,7 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
|
|||||||
orgMStruct.Field(i).Set(field)
|
orgMStruct.Field(i).Set(field)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spew.Dump(changes)
|
//spew.Dump(changes)
|
||||||
//spew.Dump(orgM)
|
//spew.Dump(orgM)
|
||||||
|
|
||||||
if err := validateObject(&Context{
|
if err := validateObject(&Context{
|
||||||
@@ -427,6 +427,18 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = processResults(&Context{
|
||||||
|
API: api,
|
||||||
|
Context: c,
|
||||||
|
DB: db,
|
||||||
|
}, m, newM)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(500, gin.H{
|
||||||
|
"error": err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
c.JSON(200, newM)
|
c.JSON(200, newM)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
11
hooks.go
11
hooks.go
@@ -83,3 +83,14 @@ func savedObject(c *Context, m mgocrud.ModelInterface, changes bson.M) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func processResults(c *Context, m mgocrud.ModelInterface, results interface{}) error {
|
||||||
|
if i, ok := m.(interface {
|
||||||
|
ProcessResults(*Context, interface{}) error
|
||||||
|
}); ok {
|
||||||
|
// custom select manipulation
|
||||||
|
err := i.ProcessResults(c, results)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user