View Source NostrBasics.Event.Parser (NostrBasics v0.0.14)

Turns raw events from JSON websocket messages into elixir structs

Link to this section Summary

Functions

Converts a NIP-01 JSON string decoded as a map by Jason into an %Event{}

Converts a NIP-01 JSON string into a %Event{}

Link to this section Functions

@spec decode(map()) :: NostrBasics.Event.t()

Converts a NIP-01 JSON string decoded as a map by Jason into an %Event{}

examples

Examples

iex> %{
...>    "content" => "this is the content",
...>    "created_at" => 1675794272,
...>    "id" => "0f017fc299f6351efe9d5bfbfb36c0c7a1399627f9bec02c49b00d0ec98a5f34",
...>    "kind" => 1,
...>    "pubkey" => "5ab9f2efb1fda6bc32696f6f3fd715e156346175b93b6382099d23627693c3f2",
...>    "tags" => []
...>  }
...> |> NostrBasics.Event.Parser.decode()
%NostrBasics.Event{
  id: "0f017fc299f6351efe9d5bfbfb36c0c7a1399627f9bec02c49b00d0ec98a5f34",
  pubkey: <<0x5ab9f2efb1fda6bc32696f6f3fd715e156346175b93b6382099d23627693c3f2::256>>,
  created_at: ~U[2023-02-07 18:24:32Z],
  kind: 1,
  tags: [],
  content: "this is the content"
}
@spec parse(String.t()) :: {:ok, NostrBasics.Event.t()} | {:error, String.t()}

Converts a NIP-01 JSON string into a %Event{}

examples

Examples

iex> ~s({"id":"0f017fc299f6351efe9d5bfbfb36c0c7a1399627f9bec02c49b00d0ec98a5f34","pubkey":"5ab9f2efb1fda6bc32696f6f3fd715e156346175b93b6382099d23627693c3f2","created_at":1675794272,"kind":1,"tags":[],"content":"this is the content"})
...> |> NostrBasics.Event.Parser.parse()
{
  :ok,
  %NostrBasics.Event{
    id: "0f017fc299f6351efe9d5bfbfb36c0c7a1399627f9bec02c49b00d0ec98a5f34",
    pubkey: <<0x5ab9f2efb1fda6bc32696f6f3fd715e156346175b93b6382099d23627693c3f2::256>>,
    created_at: ~U[2023-02-07 18:24:32Z],
    kind: 1,
    tags: [],
    content: "this is the content"
  }
}