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()}]}.
Specs
post_request(State :: nova:state(), Options :: map()) -> {ok, State0 :: nova:state()} | {break, State0 :: nova:state()} | {stop, State0 :: nova:state()} | {error, Reason :: term()}.
Specs
pre_request(State :: nova:state(), Options :: map()) -> {ok, State0 :: nova:state()} | {break, State0 :: nova:state()} | {stop, State0 :: nova:state()} | {error, Reason :: term()}.