JSONRPC2.Spec.Request (jsonrpc2_spec v0.2.0)

Copy Markdown

Struct which represents JSONRPC request.

Summary

Functions

Instantiate a request struct

Build a request struct from input data

Validate a request struct

Types

t()

@type t() :: %JSONRPC2.Spec.Request{
  id: JSONRPC2.Spec.id(),
  jsonrpc: String.t(),
  method: JSONRPC2.Spec.method(),
  params: JSONRPC2.Spec.params()
}

Functions

is_id(value)

(macro)

is_params(value)

(macro)

new(method, params, id)

Instantiate a request struct

parse(arg1)

Build a 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}

valid?(request)

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

Validate a request struct