Current section

Files

Jump to
ex_messagebird lib ex_messagebird.ex
Raw

lib/ex_messagebird.ex

defmodule ExMessagebird do
@moduledoc """
Documentation for ExMessagebird.
"""
@doc """
Returns the url of the MessageBird API server
"""
def base_url do
Application.get_env(:ex_messagebird, :url, "https://rest.messagebird.com/")
end
@doc """
Returns the configured originator string used for sending SMS messages
"""
def originator do
originator = Application.get_env(:ex_messagebird, :originator)
if is_nil(originator) do
raise "Invalid config: `:ex_messagebird` > `:originator` is nil"
end
originator
end
@doc """
Makes a POST request to the messagebird API and uses the configured token as means of authentication
"""
def post(endpoint, data) do
HTTPoison.post("#{base_url()}#{endpoint}", URI.encode_query(data),
Authorization: auth_header(),
Accept: "application/json",
"Content-Type": "application/x-www-form-urlencoded"
)
end
defp token do
token = Application.get_env(:ex_messagebird, :token)
if is_nil(token) do
raise "Invalid config: `:ex_messagebird` > `:token` is nil"
end
token
end
defp auth_header do
"AccessKey #{token()}"
end
end