Current section
Files
Jump to
Current section
Files
lib/responser.ex
defmodule Agala.Provider.Vk.Responser do
use Agala.Bot.Responser
defp create_body(%Agala.Conn{response: %{payload: %{body: body}}}, bot_params) when is_map(body) do
{
:form,
body
|> Map.put(:v, Agala.Provider.Vk.api_version())
|> Map.put(:access_token, bot_params.provider_params.token)
|> Enum.into(Keyword.new)
}
end
defp create_body(_, _bot_params) do
Logger.debug(fn ->
"""
Your Agala.Conn doesn't have response body value in a propriate form.
Please, check your response.
"""
end)
end
defp create_url(%Agala.Conn{response: %{payload: %{endpoint: endpoint}}}) do
Agala.Provider.Vk.base_url(endpoint)
end
@doc """
Main entry point method. Process the response
"""
def response(conn, bot_params) do
HTTPoison.request(
conn.response.method,
create_url(conn),
create_body(conn, bot_params),
get_in(conn, [:response, :payload, :headers]) || [],
get_in(conn, [:response, :payload, :http_opts]) || get_in(bot_params, [:private, :http_opts]) || []
)
end
end