diff options
author | Ollie Phillips <oliver@eantics.co.uk> | 2019-05-09 11:24:09 +0100 |
---|---|---|
committer | Ollie Phillips <oliver@eantics.co.uk> | 2019-05-09 11:24:09 +0100 |
commit | 7b26b49f616e7581a274a7344ba376353a6bd6a5 (patch) | |
tree | 2c8f75c59a1516b8017c989a7b904063014cc4da | |
parent | 878d593ef5da1435c83bf7bb229f8619c1cab9ff (diff) |
amending repo docs for addition of BeforeAPIResponse and AfterAPIResponse event hooks
-rw-r--r-- | docs/src/Interfaces/Item.md | 29 |
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. |