Packages

Wrapper for erlang-oauth

Current section

Files

Jump to
exauth lib exauth.ex
Raw

lib/exauth.ex

defmodule Exauth do
use Application
@doc """
Signs a url with a preconfigured oauth consumer, key, token and secret
## Examples
"""
@spec sign(String.t, String.t) :: String.t
def sign(method, url), do: sign(method, url, [])
@spec sign(String.t, String.t, []) :: String.t
def sign(method, url, params \\ []) do
:oauth.sign(
normalize_method(method),
String.to_char_list(url),
normalize_params(params),
Exauth.Config.get_consumer_tuple,
Exauth.Config.get(:token),
Exauth.Config.get(:token_secret)
)
|> :oauth.header_params_encode
|> IO.chardata_to_string
end
def sign_header(method, url), do: sign_header(method, url, [])
def sign_header(method, url, params) do
"OAuth " <> sign(method, url, params)
end
def start(_type, _args) do
children = [
]
opts = [strategy: :one_for_one, name: Exauth.Supervisor]
Supervisor.start_link(children, opts)
end
defp normalize_method(method) do
method |> to_string |> String.upcase |> String.to_char_list
end
defp normalize_params(params) do
params
|> Enum.map(fn({key, value}) -> {key, String.to_char_list(value)} end)
end
end