41 lines
833 B
Elixir
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
|