EpochtalkServer.Models.Ban (epochtalk_server v0.1.0)

Ban model, for performing actions relating to banning

Link to this section Summary

Functions

Used to ban a User permanently. Updates supplied User model to reflect ban and returns.

Used to ban a User until supplied expiration. Passing nil for expiration will permanently ban the User. Updates supplied User model to reflect ban and returns.

Used to ban a User by user_id until supplied expiration. Passing nil for expiration will permanently ban the User

Create ban changeset for Ban model, handles upsert of ban for banning

Fetches Ban associated with a specific User

Create generic changeset for Ban model

Used to unban a User. Updates supplied User model to reflect unbanning and returns.

Used to unban a User by user_id. Will return {:ok, nil} if user was never banned.

Create unban changeset for Ban model, handles update of ban for unbanning

Link to this section Types

@type t() :: %EpochtalkServer.Models.Ban{
  __meta__: term(),
  created_at: NaiveDateTime.t() | nil,
  expiration: NaiveDateTime.t() | nil,
  id: non_neg_integer() | nil,
  updated_at: NaiveDateTime.t() | nil,
  user: term(),
  user_id: non_neg_integer() | nil
}

Link to this section Functions

@spec ban(user :: EpochtalkServer.Models.User.t()) ::
  {:ok, user_changeset :: Ecto.Changeset.t()} | {:error, :ban_error}

Used to ban a User permanently. Updates supplied User model to reflect ban and returns.

Link to this function

ban(user, expiration)

@spec ban(
  user :: EpochtalkServer.Models.User.t(),
  expiration :: Calendar.naive_datetime() | nil
) :: {:ok, user_changeset :: Ecto.Changeset.t()} | {:error, :ban_error}

Used to ban a User until supplied expiration. Passing nil for expiration will permanently ban the User. Updates supplied User model to reflect ban and returns.

Link to this function

ban_by_user_id(user_id, expiration)

@spec ban_by_user_id(
  user_id :: integer(),
  expiration :: Calendar.naive_datetime() | nil
) :: {:ok, ban_changeset :: Ecto.Changeset.t()} | {:error, :ban_error}

Used to ban a User by user_id until supplied expiration. Passing nil for expiration will permanently ban the User

Link to this function

ban_changeset(ban, attrs \\ %{})

@spec ban_changeset(ban :: t(), attrs :: map() | nil) :: Ecto.Changeset.t()

Create ban changeset for Ban model, handles upsert of ban for banning

Link to this function

by_user_id(user_id)

@spec by_user_id(user_id :: integer()) ::
  {:ok, ban_changeset :: Ecto.Changeset.t()}
  | {:error, ban_changeset :: Ecto.Changeset.t()}

Fetches Ban associated with a specific User

Link to this function

changeset(ban, attrs \\ %{})

@spec changeset(ban :: t(), attrs :: map() | nil) :: Ecto.Changeset.t()

Create generic changeset for Ban model

@spec unban(user :: EpochtalkServer.Models.User.t()) ::
  {:ok, user :: EpochtalkServer.Models.User.t()} | {:error, :unban_error}

Used to unban a User. Updates supplied User model to reflect unbanning and returns.

Link to this function

unban_by_user_id(user_id)

@spec unban_by_user_id(user_id :: integer()) ::
  {:ok, ban_changeset :: Ecto.Changeset.t()}
  | {:ok, nil}
  | {:error, :unban_error}

Used to unban a User by user_id. Will return {:ok, nil} if user was never banned.

Link to this function

unban_changeset(ban, attrs \\ %{})

@spec unban_changeset(ban :: t(), attrs :: map() | nil) :: Ecto.Changeset.t()

Create unban changeset for Ban model, handles update of ban for unbanning