Validate, Saved hooks

This commit is contained in:
Sebastian Frank
2019-09-16 11:53:02 +02:00
parent 0c9eb1c6fb
commit 35bfaa7aa4
3 changed files with 125 additions and 54 deletions

View File

@@ -241,7 +241,11 @@ func (api *API) collectionPostHandler(m mgocrud.ModelInterface) gin.HandlerFunc
defer session.Close()
db := session.DB(api.DBName)
if err := mgocrud.ValidateObject(db, newM, nil); err != nil {
if err := validateObject(&Context{
API: api,
Context: c,
DB: db,
}, newM, nil); err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
@@ -256,6 +260,25 @@ func (api *API) collectionPostHandler(m mgocrud.ModelInterface) gin.HandlerFunc
return
}
newM, err = getDocument(c, db, newM, nil)
if err != nil {
c.JSON(500, gin.H{
"error": err.Error(),
})
return
}
if err := savedObject(&Context{
API: api,
Context: c,
DB: db,
}, newM, nil); err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
return
}
c.JSON(200, newM)
}
}
@@ -350,7 +373,11 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
//spew.Dump(changes)
//spew.Dump(orgM)
if err := mgocrud.ValidateObject(db, orgM, changes); err != nil {
if err := validateObject(&Context{
API: api,
Context: c,
DB: db,
}, orgM, changes); err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
@@ -375,6 +402,17 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
return
}
if err := savedObject(&Context{
API: api,
Context: c,
DB: db,
}, newM, changes); err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
return
}
c.JSON(200, newM)
}