AttestoPhoenix.Callback (AttestoPhoenix v0.9.3)

Copy Markdown View Source

Invocation of configured callbacks in the forms accepted throughout the library.

A callback supplied to AttestoPhoenix.Config (and to the plugs and controllers built on it) may be expressed as a bare anonymous/captured function, a {module, function} pair, or a {module, function, extra_args} tuple whose trailing arguments follow the per-call arguments. This module is the single place that resolves those forms; it carries no policy of its own.

Summary

Functions

Read a configured callback off the config struct by key.

Read a boolean policy flag off the config struct by key.

Invoke callback with args.

Invoke callback with args, returning default when callback is nil.

Types

callback()

@type callback() :: function() | {module(), atom()} | {module(), atom(), [any()]}

Functions

config_callback(config, key)

@spec config_callback(map(), atom()) :: callback() | nil

Read a configured callback off the config struct by key.

This is the single reader the controllers, plugs, and core modules share for pulling a host callback out of %AttestoPhoenix.Config{} (or any struct/map carrying it). An absent key reads as nil, matching the fail-closed resolution used throughout the library; the value is otherwise returned unchanged for an invoke/2,3 caller to run. It carries no policy.

config_flag(config, key)

@spec config_flag(map(), atom()) :: boolean()

Read a boolean policy flag off the config struct by key.

An absent or non-boolean value reads as false (fail closed: a flag the host did not set never turns a control on).

invoke(fun, args)

@spec invoke(callback(), [any()]) :: any()

Invoke callback with args.

For the {module, function, extra_args} form the extra_args are appended after args, matching AttestoPhoenix.Config's callback type.

invoke(callback, args, default)

@spec invoke(callback() | nil, [any()], any()) :: any()

Invoke callback with args, returning default when callback is nil.