lib/scf/api.ex
defmodule SCF.API do
defmacro __using__(opts) do
for action <- opts[:actions] do
quote do
def unquote(action)() do
%{"Action" => SCF.Utils.atom_to_action(unquote(action))}
|> SCF.HTTP.auth_post()
end
def unquote(action)(params) do
params
|> Map.put("Action", SCF.Utils.atom_to_action(unquote(action)))
|> SCF.HTTP.auth_post()
end
def unquote(action)(params, opts) do
params
|> Map.put("Action", SCF.Utils.atom_to_action(unquote(action)))
|> SCF.HTTP.auth_post(opts)
end
end
end
end
end