SystemOneClient.Answer (SystemOneClient v0.3.0)

Copy Markdown View Source

Typed answers returned by TypeSafe System One questions.

Summary

Functions

Parses one raw API answer into its struct.

Types

Functions

parse(a)

@spec parse(map()) :: {:ok, t()} | {:error, term()}

Parses one raw API answer into its struct.

iex> SystemOneClient.Answer.parse(%{"type" => "noul", "noul" => 0.93})
{:ok, %SystemOneClient.Answer.Noul{noul: 0.93}}

iex> SystemOneClient.Answer.parse(%{"type" => "refusal"})
{:ok, %SystemOneClient.Answer.Refusal{}}

iex> SystemOneClient.Answer.parse(%{"type" => "choice"})
{:error, {:malformed_answer, "choice"}}

parse_all(answers)

@spec parse_all(%{required(String.t()) => map()}) ::
  {:ok, %{required(String.t()) => t()}}
  | {:error, {String.t(), term()} | :answers_not_a_map}