plug_mishka_auth v0.0.2 MishkaAuth.Client.Users.ClientUserLimiter View Source

Link to this section Summary

Link to this section Functions

Link to this function

add_to_redis(strategy, email, number, user_ip, time)

View Source

Specs

add_to_redis(atom(), String.t(), integer(), String.t(), integer()) ::
  {:ok, :insert_or_update_into_redis}
Link to this function

check_limiter_number_with_time(email, user_ip, atom, record)

View Source

Specs

check_limiter_number_with_time(
  String.t(),
  String.t(),
  :login_limiter
  | :register_limiter
  | :reset_password_limiter
  | :verify_email_limiter,
  nil | maybe_improper_list() | map()
) ::
  {:error, :is_data_limited?, [{:number, integer()}, ...]}
  | {:ok, :is_data_limited?, any(), any(), :reset_password_limiter}
Link to this function

convert_string_to_utc(time)

View Source

Specs

convert_string_to_utc(binary()) :: %{
  :__struct__ => DateTime | NaiveDateTime,
  :calendar => atom(),
  :day => pos_integer(),
  :hour => non_neg_integer(),
  :microsecond => {non_neg_integer(), non_neg_integer()},
  :minute => non_neg_integer(),
  :month => pos_integer(),
  :second => non_neg_integer(),
  :year => integer(),
  optional(:std_offset) => integer(),
  optional(:time_zone) => binary(),
  optional(:utc_offset) => integer(),
  optional(:zone_abbr) => binary()
}
Link to this function

is_data_limited?(strategy, email, user_ip)

View Source

Specs

is_data_limited?(any(), any(), any()) ::
  {:error, :is_data_limited? | :limiter,
   :inactive | [{:number, integer()}, ...]}
  | {:ok, :is_data_limited?, any(), any(), any()}
Link to this function

is_there_a_limiter_record?(arg, limiter_strategy, email, user_ip)

View Source

Specs

is_there_a_limiter_record?(
  {:error, atom(), any()} | {:ok, any(), any()},
  any(),
  any(),
  any()
) ::
  {:ok, :is_there_a_limiter_record?, any(), any(), atom()}
  | {:error, :is_there_a_limiter_record?, any(), any(), any(), any()}
Link to this function

limiter(strategy, last_email, user_ip)

View Source

Specs

limiter(atom(), any(), any()) ::
  {:error, :is_data_limited?, [{:number, integer()}, ...]}
  | {:ok, :is_data_limited?, any(), any(), any()}

Specs

limiter_condition(
  {:ok, :is_there_a_limiter_record?, String.t(), String.t(), any()}
  | {:error, :is_there_a_limiter_record?, String.t(), String.t(),
     :login_limiter
     | :register_limiter
     | :reset_password_limiter
     | :verify_email_limiter, nil | maybe_improper_list() | map()}
) ::
  {:error, :is_data_limited?, [{:number, integer()}, ...]}
  | {:ok, :is_data_limited?, any(), any(), any()}