Current section

Files

Jump to
json_rpc_toolkit lib json_rpc response.ex
Raw

lib/json_rpc/response.ex

defmodule JSONRPC.Response do
alias __MODULE__
alias JSONRPC.Error
defstruct jsonrpc: "2.0",
result: nil,
error: nil,
id: nil
@type t :: %Response{}
@spec new(map()) :: Response.t()
def new(%{"jsonrpc" => "2.0", "result" => result, "id" => id}) do
%Response{result: result, id: id}
end
def new(%{"jsonrpc" => "2.0", "error" => error, "id" => id}) do
%Response{error: Error.new(error), id: id}
end
def new(%{"jsonrpc" => "2.0", "error" => error}) do
%Response{error: Error.new(error)}
end
def new(_) do
%Response{error: Error.internal_error()}
end
end