Current section
Files
Jump to
Current section
Files
lib/mpgs/request.ex
defmodule Mpgs.Request do
alias Mpgs.Parameter
@api_url "https://ap-gateway.mastercard.com/api/rest/version"
@api_version "74"
def start_request(options, method, path, payload) do
url = build_url(options, path)
headers = build_headers(options)
payload = Jason.encode!(payload)
case method do
:get -> Finch.build(method, url, headers)
m -> Finch.build(m, url, headers, payload)
end
|> Finch.request(MpgsFinch)
|> Mpgs.Response.parse_response()
end
defp build_url(options, path) do
base = Parameter.get_var(options, :api_base, "MPGS_API_BASE", @api_url)
version = Parameter.get_var(options, :api_version, "MPGS_API_VERSION", @api_version)
merchant = Parameter.get_var(options, :api_merchant, "MGPS_API_MERCHANT")
"#{base}/#{version}/merchant/#{merchant}/#{path}" |> IO.inspect(label: "build_url")
end
defp build_headers(options) do
username = Parameter.get_var(options, :api_username, "MPGS_API_USERNAME")
password = Parameter.get_var(options, :api_password, "MPGS_API_PASSWORD")
IO.inspect(username, label: "username")
IO.inspect(password, label: "password")
encoded_credentials = Base.encode64("#{username}:#{password}")
[
{"Authorization", "Basic #{encoded_credentials}"},
{"Content-Type", "application/json"},
{"Accept", "application/json"}
]
end
end