Polyjuice Util v0.2.2 Polyjuice.Util.ClientError View Source
Matrix Client API error mapping to Elixir
Link to this section Summary
Functions
deferror
macro is used to define error mappings.
Link to this section Functions
Link to this macro
deferror(error_name, macro_error \\ nil, macro_additional_fields \\ nil)
View Source (macro)deferror
macro is used to define error mappings.
example:
Defining a mapping to M_FORBIDDEN:
> import Polyjuice.Util.ClientError
> deferror(MForbidden)
> e = MForbidden.new
%MForbidden{additional_fields: nil, errcode: "M_FORBIDDEN", error: nil}
> json_encode(e)
{:ok, "{"errcode":"M_FORBIDDEN"}"}
Defining a mapping to M_LIMIT_EXCEEDED with default message:
> import Polyjuice.Util.ClientError
> deferror(MLimitExceeded, "Too many requests")
> e = MLimitExceeded.new
%MLimitExceeded{
additional_fields: nil,
errcode: "M_LIMIT_EXCEEDED",
error: "Too many requests"
}
> json_encode(e)
{:ok, "{"errcode":"M_LIMIT_EXCEEDED","error":"Too many requests"}"}
Defining a mapping to M_LIMIT_EXCEEDED with additional fields:
> import Polyjuice.Util.ClientError
> deferror(MLimitExceeded, "Too many requests")
> e = MLimitExceeded.new(nil, retry_after_ms: 2000)
%MLimitExceeded{
additional_fields: [retry_after_ms: 2000],
errcode: "M_LIMIT_EXCEEDED",
error: "Too many requests"
}
> json_encode(e)
{:ok,
"{"errcode":"M_LIMIT_EXCEEDED","error":"Too many requests","retry_after_ms":2000}"}
Link to this function
json_encode(entity)
View Sourcejson_encode(Polyjuice.Util.ClientError.ErrorSpec.t()) :: {:ok, String.t()} | {:error, any()}
Link to this function
json_encode!(entity)
View Sourcejson_encode!(Polyjuice.Util.ClientError.ErrorSpec.t()) :: String.t()
Link to this function
json_encode_to_iodata(entity)
View Sourcejson_encode_to_iodata(Polyjuice.Util.ClientError.ErrorSpec.t()) :: {:ok, iodata()} | {:error, any()}
Link to this function
json_encode_to_iodata!(entity)
View Sourcejson_encode_to_iodata!(Polyjuice.Util.ClientError.ErrorSpec.t()) :: iodata()