nova_plugin behaviour (nova v0.8.1) View Source

Plugins can be run at two different times; either in the beginning or at the end of a request. They can modify both the actual request or the nova-state. A plugin is implemented with the nova_plugin behaviour and needs to implement three different functions: pre_request/2, post_request/2 and plugin_info/0.

To register the plugin above you have to call nova_plugin:register_plugin(RequestType, http, example_plugin). in order to run it. RequestType can either be pre_request or post_request.

Link to this section Summary

Link to this section Types

Specs

request_type() :: pre_request | post_request.

Link to this section Callbacks

Specs

plugin_info() ->
               {Title :: binary(),
                Version :: binary(),
                Author :: binary(),
                Description :: binary(),
                Options :: [{Key :: atom(), OptionDescription :: binary()}]}.
Link to this callback

post_request/2

View Source (optional)

Specs

post_request(State :: nova:state(), Options :: map()) ->
                {ok, State0 :: nova:state()} |
                {break, State0 :: nova:state()} |
                {stop, State0 :: nova:state()} |
                {error, Reason :: term()}.
Link to this callback

pre_request/2

View Source (optional)

Specs

pre_request(State :: nova:state(), Options :: map()) ->
               {ok, State0 :: nova:state()} |
               {break, State0 :: nova:state()} |
               {stop, State0 :: nova:state()} |
               {error, Reason :: term()}.