Current section

Files

Jump to
x3m_system lib response.ex
Raw

lib/response.ex

defmodule X3m.System.Response do
@type t ::
:ok
| {:ok, any}
| {:created, any}
| {:service_unavailable, atom}
| {:service_timeout, atom, String.t(), non_neg_integer}
| {:validation_error, map}
| {:missing_id, atom | String.t()}
| {:error, any}
@spec ok() :: :ok
def ok, do: :ok
@spec ok(any) :: {:ok, any}
def ok(payload), do: {:ok, payload}
@spec created(any) :: {:created, any}
def created(id), do: {:created, id}
@spec service_unavailable(atom) :: {:service_unavailable, atom}
def service_unavailable(msg_name), do: {:service_unavailable, msg_name}
@spec service_timeout(atom, String.t(), non_neg_integer) ::
{:service_timeout, atom, String.t(), non_neg_integer}
def service_timeout(msg_name, req_id, timeout),
do: {:service_timeout, msg_name, req_id, timeout}
@spec unauthorized(String.t()) :: {:unauthorized, String.t()}
def unauthorized(msg), do: {:unauthorized, msg}
@spec validation_error(map) :: {:validation_error, map}
def validation_error(request),
do: {:validation_error, request}
@spec missing_id(atom | String.t()) :: {:missing_id, atom | String.t()}
def missing_id(id_field),
do: {:missing_id, id_field}
@spec error(any) :: {:error, any}
def error(any),
do: {:error, any}
end