summaryrefslogtreecommitdiff
path: root/system/api/external.go
diff options
context:
space:
mode:
Diffstat (limited to 'system/api/external.go')
-rw-r--r--system/api/external.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/system/api/external.go b/system/api/external.go
index c9fb2a7..7eade92 100644
--- a/system/api/external.go
+++ b/system/api/external.go
@@ -99,11 +99,32 @@ func externalPostHandler(res http.ResponseWriter, req *http.Request) {
req.PostForm.Del(discardKey)
}
+ hook, ok := post.(content.Hookable)
+ if !ok {
+ log.Println("[External] error: Type", t, "does not implement content.Hookable or embed content.Item.")
+ res.WriteHeader(http.StatusBadRequest)
+ return
+ }
+
+ err = hook.BeforeSave(req)
+ if err != nil {
+ log.Println("[External] error:", err)
+ res.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
_, err = db.SetContent(t+"_pending:-1", req.PostForm)
if err != nil {
log.Println("[External] error:", err)
res.WriteHeader(http.StatusInternalServerError)
return
}
+
+ err = hook.AfterSave(req)
+ if err != nil {
+ log.Println("[External] error:", err)
+ res.WriteHeader(http.StatusInternalServerError)
+ return
+ }
}
}