summaryrefslogtreecommitdiff
path: root/system/api
diff options
context:
space:
mode:
Diffstat (limited to 'system/api')
-rw-r--r--system/api/create.go13
-rw-r--r--system/api/delete.go12
-rw-r--r--system/api/update.go13
3 files changed, 38 insertions, 0 deletions
diff --git a/system/api/create.go b/system/api/create.go
index 3328bd6..3b748cc 100644
--- a/system/api/create.go
+++ b/system/api/create.go
@@ -12,6 +12,8 @@ import (
"github.com/ponzu-cms/ponzu/system/admin/upload"
"github.com/ponzu-cms/ponzu/system/db"
"github.com/ponzu-cms/ponzu/system/item"
+
+ "github.com/gorilla/schema"
)
// Createable accepts or rejects external POST requests to endpoints such as:
@@ -131,6 +133,17 @@ func createContentHandler(res http.ResponseWriter, req *http.Request) {
return
}
+ // Let's be nice and make a proper item for the Hookable methods
+ dec := schema.NewDecoder()
+ dec.IgnoreUnknownKeys(true)
+ dec.SetAliasTag("json")
+ err = dec.Decode(post, req.PostForm)
+ if err != nil {
+ log.Println("Error decoding post form for edit handler:", t, err)
+ res.WriteHeader(http.StatusBadRequest)
+ return
+ }
+
err = hook.BeforeAPICreate(res, req)
if err != nil {
log.Println("[Create] error calling BeforeAccept:", err)
diff --git a/system/api/delete.go b/system/api/delete.go
index 36f2b1b..37328e4 100644
--- a/system/api/delete.go
+++ b/system/api/delete.go
@@ -65,6 +65,18 @@ func deleteContentHandler(res http.ResponseWriter, req *http.Request) {
return
}
+ b, err := db.Content(t + ":" + id)
+ if err != nil {
+ log.Println("Error in db.Content ", t+":"+id, err)
+ res.WriteHeader(http.StatusBadRequest)
+ return
+ }
+
+ err = json.Unmarshal(b, post)
+ if err != nil {
+ log.Println("Error unmarshalling ", t, "=", id, err, " Hooks will be called on a zero-value.")
+ }
+
err = hook.BeforeAPIDelete(res, req)
if err != nil {
log.Println("[Delete] error calling BeforeAPIDelete:", err)
diff --git a/system/api/update.go b/system/api/update.go
index 9414ab4..36ffaeb 100644
--- a/system/api/update.go
+++ b/system/api/update.go
@@ -12,6 +12,8 @@ import (
"github.com/ponzu-cms/ponzu/system/admin/upload"
"github.com/ponzu-cms/ponzu/system/db"
"github.com/ponzu-cms/ponzu/system/item"
+
+ "github.com/gorilla/schema"
)
// Updateable accepts or rejects update POST requests to endpoints such as:
@@ -132,6 +134,17 @@ func updateContentHandler(res http.ResponseWriter, req *http.Request) {
return
}
+ // Let's be nice and make a proper item for the Hookable methods
+ dec := schema.NewDecoder()
+ dec.IgnoreUnknownKeys(true)
+ dec.SetAliasTag("json")
+ err = dec.Decode(post, req.PostForm)
+ if err != nil {
+ log.Println("Error decoding post form for edit handler:", t, err)
+ res.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
err = hook.BeforeAPIUpdate(res, req)
if err != nil {
log.Println("[Update] error calling BeforeAPIUpdate:", err)