Current section
Files
Jump to
Current section
Files
lib/request.ex
defmodule Fcmex.Request do
@moduledoc ~S"
Perform request to FCM
"
use Retry
alias Fcmex.{Util, Config, Payload}
@fcm_endpoint "https://fcm.googleapis.com/fcm/send"
def perform(to, opts) do
with payload <- Payload.create(to, opts),
result <- post(payload)
do
Util.parse_result(result)
end
end
defp post(%Payload{} = payload) do
retry with: exp_backoff() |> randomize |> expiry(10_000) do
HTTPoison.post(@fcm_endpoint, payload |> Poison.encode!, Config.new)
end
end
end