tusker_push/lib/tusker_push/forwarder.ex

41 lines
833 B
Elixir

defmodule TuskerPush.Forwarder do
alias TuskerPush.Apns
require Logger
@spec forward(
Apns.environment(),
String.t(),
binary(),
String.t(),
String.t(),
String.t() | nil
) ::
:ok | {:error, term()}
def forward(apns_env, apns_device_token, body, salt, key, context) do
payload = %{
"aps" => %{
"alert" => %{
"loc-key" => "apns_enc"
},
"mutable-content" => 1
},
"data" => Base.encode64(body),
"salt" => salt,
"pk" => key,
"v" => 1
}
payload =
unless is_nil(context) do
Map.put(payload, "ctx", context)
else
payload
end
Logger.debug("Sending #{inspect(payload)}")
Apns.send(apns_env, apns_device_token, payload)
end
end