JSONRPC2Plug.Request (jsonrpc2_plug v0.1.0)

Link to this section Summary

Functions

Build request struct from input data

Link to this section Types

Specs

id() :: String.t() | number() | nil

Specs

method() :: String.t()

Specs

params() :: list() | map()

Specs

t() :: %JSONRPC2Plug.Request{id: id(), method: method(), params: params()}

Link to this section Functions

Specs

parse(map()) :: {:ok, t()} | {:invalid, id()}

Build request struct from input data

Example:

iex> Request.parse(%{"id" => 123, "method" => "add", "params" => %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"})
{:ok, %Request{id: 123, method: "add", params: %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"}}

iex> Request.parse(%{"id" => nil, "method" => "add", "params" => %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"})
{:ok, %Request{id: nil, method: "add", params: %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"}}

iex> Request.parse(%{"id" => 123, "method" => "add", "params" => %{"x" => 15, "y" => 51}})
{:invalid, 123}

iex> Request.parse(%{"method" => "add", "params" => %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"})
{:invalid, nil}
Link to this function

valid?(request)

Specs

valid?(t()) :: :ok | :invalid