Packages
pigeon
1.1.6
2.0.1
2.0.0
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.1.0-rc.1
1.1.0-rc.0
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
iOS (APNS), Android (FCM), and Amazon Android (ADM) push notifications for Elixir.
Current section
Files
Jump to
Current section
Files
lib/pigeon/adm/result_parser.ex
defmodule Pigeon.ADM.ResultParser do
@moduledoc false
@doc ~S"""
Parses response and updates notification.
## Examples
iex> parse(%Pigeon.ADM.Notification{}, %{}, fn(x) -> x end)
%Pigeon.ADM.Notification{response: :success}
iex> parse(%Pigeon.ADM.Notification{}, %{"registrationID" => "test"},
...> fn(x) -> x end)
%Pigeon.ADM.Notification{response: :update,
updated_registration_id: "test"}
iex> parse(%Pigeon.ADM.Notification{}, %{"reason" => "InvalidRegistration"},
...> fn(x) -> x end)
%Pigeon.ADM.Notification{response: :invalid_registration}
"""
# Handle RegID updates
def parse(notification, %{"registrationID" => new_regid}, on_response) do
n = %{notification | response: :update, updated_registration_id: new_regid}
on_response.(n)
end
def parse(notification, %{"reason" => error}, on_response) do
error = error |> Macro.underscore |> String.to_existing_atom
n = %{notification | response: error}
on_response.(n)
end
def parse(notification, %{}, on_response) do
n = %{notification | response: :success}
on_response.(n)
end
end