Elixir ATProtocol firehose & subscription listener
at v0.1.0 596 B view raw
1defmodule Drinkup.Event.Sync do 2 @moduledoc """ 3 Struct for sync events from the ATProto Firehose. 4 """ 5 6 use TypedStruct 7 8 typedstruct enforce: true do 9 field :seq, integer() 10 field :did, String.t() 11 field :blocks, binary() 12 field :rev, String.t() 13 field :time, NaiveDateTime.t() 14 end 15 16 @spec from(map()) :: t() 17 def from(%{"seq" => seq, "did" => did, "blocks" => blocks, "rev" => rev, "time" => time}) do 18 time = NaiveDateTime.from_iso8601!(time) 19 20 %__MODULE__{ 21 seq: seq, 22 did: did, 23 blocks: blocks, 24 rev: rev, 25 time: time 26 } 27 end 28end