Parses Meta webhook JSON payloads into event structs.
Meta's webhook format is deeply nested:
body.entry[].changes[].value.messages[]
body.entry[].changes[].value.statuses[]This module extracts messages and statuses and converts them into
Anu.Event.Message and Anu.Event.Status structs.
Summary
Functions
Parses a decoded webhook payload into a list of event tuples.
Types
@type event() :: {:message_received, Anu.Event.Message.t()} | {:message_status, Anu.Event.Status.t()}
Functions
Parses a decoded webhook payload into a list of event tuples.
Returns a list of {event_type, event_struct} tuples.
Examples
iex> payload = %{"entry" => [%{"changes" => [%{"value" => %{"messages" => [%{"id" => "wamid.1", "from" => "5511999999999", "timestamp" => "1234567890", "type" => "text", "text" => %{"body" => "hi"}}]}}]}]}
iex> [{:message_received, event}] = Anu.Webhook.Parser.parse(payload)
iex> event.text
"hi"