Z.Preferences (Portico/Z v0.1.0)

Context module for getting + setting entries from a ZSchemas.Preference

Preferences are key/value information that's stored relative to a module name. There's no defined structure for most preferences, because each module will have different needs for the shape of that data. Nothing's keeping us from defining schemas for preference data, however, and this is encouraged for larger and more mission-critical modules so that we can do pre-validation etc.

Link to this section Summary

Functions

Retrieve all preferences for a ZSchemas.Account/ module combination

Retrieve a preference value for a given ZSchemas.Account, module, and key

Set a preference or series of preferences for a ZSchemas.Account in a module.

Link to this section Functions

Link to this function

get(account, module)

Retrieve all preferences for a ZSchemas.Account/ module combination

Will return %{} if no preferences are found.

Link to this function

get(account, module, key, default \\ nil)

Retrieve a preference value for a given ZSchemas.Account, module, and key

Note that String and Atom key values will be treated equivalently. All atom keys are converted to strings in the database.

You can set a default which will be used if no preference is found. The standard default is nil.

Examples

Z.Preferences.get(account, __MODULE__, :cheese)
"brie"

Z.Preferences.get(account, __MODULE__, :does_not_exist, 123)
123
Link to this function

set(account, module, args \\ [])

Set a preference or series of preferences for a ZSchemas.Account in a module.

Examples

Z.Preferences.set(account, __MODULE__, debug: true, cheese: "brie")
%ZSchemas.Preference{preferences: %{"debug" => true, "cheese" => "brie"}}