summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOllie Phillips <oliver@eantics.co.uk>2019-05-09 11:24:09 +0100
committerOllie Phillips <oliver@eantics.co.uk>2019-05-09 11:24:09 +0100
commit7b26b49f616e7581a274a7344ba376353a6bd6a5 (patch)
tree2c8f75c59a1516b8017c989a7b904063014cc4da
parent878d593ef5da1435c83bf7bb229f8619c1cab9ff (diff)
amending repo docs for addition of BeforeAPIResponse and AfterAPIResponse event hooks
-rw-r--r--docs/src/Interfaces/Item.md29
1 files changed, 27 insertions, 2 deletions
diff --git a/docs/src/Interfaces/Item.md b/docs/src/Interfaces/Item.md
index 00971aa..9b06cc6 100644
--- a/docs/src/Interfaces/Item.md
+++ b/docs/src/Interfaces/Item.md
@@ -107,13 +107,16 @@ func (p *Post) Omit(res http.ResponseWriter, req *http.Request) ([]string, error
### [item.Hookable](https://godoc.org/github.com/ponzu-cms/ponzu/system/item#Hookable)
Hookable provides lifecycle hooks into the http handlers which manage Save, Delete,
-Approve, and Reject routines. All methods in its set take an
-`http.ResponseWriter, *http.Request` and return an `error`.
+Approve, Reject routines, and API response routines. All methods in its set take an
+`http.ResponseWriter, *http.Request` and return an `error`. Hooks which relate to the API response, additionally take data of type `[]byte`, and may provide a return of the same type.
##### Method Set
```go
type Hookable interface {
+ BeforeAPIResponse(http.ResponseWriter, *http.Request, []byte) ([]byte, error)
+ AfterAPIResponse(http.ResponseWriter, *http.Request, []byte) error
+
BeforeAPICreate(http.ResponseWriter, *http.Request) error
AfterAPICreate(http.ResponseWriter, *http.Request) error
@@ -155,6 +158,28 @@ type Hookable interface {
##### Implementations
+#### BeforeAPIResponse
+BeforeAPIResponse is called before content is sent over the Ponzu API, and
+provides an opportunity to modify the response data. If a non-nil `error` value
+is returned, a 500 Internal Server Error is sent instead of the response.
+
+```go
+func (p *Post) BeforeAPIResponse(res http.ResponseWriter, req *http.Request, data []byte) ([]byte, error) {
+ return data, nil
+}
+```
+
+#### AfterAPIResponse
+AfterAPIResponse is called after content is sent over the Ponzu API, whether
+modified or not. The sent response data is available to the hook. A non-nil
+`error` return will simply generate a log message.
+
+```go
+func (p *Post) AfterAPIResponse(res http.ResponseWriter, req *http.Request, data []byte) error {
+ return nil
+}
+```
+
#### BeforeAPICreate
BeforeAPICreate is called before an item is created via a 3rd-party client. If a
non-nil `error` value is returned, the item will not be created/saved.