Usher.Config (Usher v0.3.1)
View SourceConfiguration management for Usher.
Handles loading and validating configuration from the application environment.
Summary
Functions
Returns all Usher configuration as a keyword list.
Returns the configured default expiration duration.
Returns whether the name field is required for invitations.
Returns the configured Ecto repository.
Returns the configured token length.
Returns the configured valid actions for invitation usage tracking.
Returns the configured valid entity types for invitation usage tracking.
Returns validation configuration for all schemas.
Types
@type t() :: [ repo: Ecto.Repo.t(), token_length: non_neg_integer(), default_expires_in: duration_unit_pair(), validations: validations() ]
Functions
@spec all() :: t()
Returns all Usher configuration as a keyword list.
Useful for debugging or displaying current configuration.
Examples
iex> Usher.Config.all()
[
repo: MyApp.Repo,
token_length: 16,
default_expires_in: {7, :day},
validations: %{
invitation: %{name_required: true}
invitation_usage: %{
valid_usage_entity_types: [:user, :company],
valid_usage_actions: [:visited, :registered]
}
}
]
Returns the configured default expiration duration.
Accepts a Duration.unit_pair(), such as {30, :minute}.
See the docs for Duration.
Defaults to 7 days if not configured.
@spec name_required?() :: boolean()
Returns whether the name field is required for invitations.
This is a convenience function that extracts the name_required value from the validations configuration.
Returns the configured Ecto repository.
This is required for Usher to function and must be set in your application config:
config :usher, repo: MyApp.RepoRaises if not configured.
Returns the configured token length.
Defaults to 16 characters if not configured.
Returns the configured valid actions for invitation usage tracking.
This is required for usage tracking to function and must be set in your application config:
config :usher,
validations: %{
invitation_usage: %{
valid_usage_actions: [:visited, :registered, :activated]
}
}Raises if not configured.
Returns the configured valid entity types for invitation usage tracking.
This is required for usage tracking to function and must be set in your application config:
config :usher,
validations: %{
invitation_usage: %{
valid_usage_entity_types: [:user, :company, :device]
}
}Raises if not configured.
@spec validations() :: validations()
Returns validation configuration for all schemas.