Current section

Files

Jump to
craftgate lib craftgate adapter file_reporting_adapter.ex
Raw

lib/craftgate/adapter/file_reporting_adapter.ex

defmodule Craftgate.Adapter.FileReportingAdapter do
@moduledoc """
Provides capabilities to retrieve file-based reports such as daily transaction reports
"""
use Craftgate.Adapter
alias Craftgate.Request.RetrieveDailyTransactionReportRequest
@header_content_type :"content-type"
@spec retrieve_daily_transaction_report(RetrieveDailyTransactionReportRequest.t()) :: {:ok, iolist()} | {:error, any()}
def retrieve_daily_transaction_report(params) do
request_data = [
method: :get,
url: "/file-reporting/v1/transaction-reports",
headers: Keyword.put([], @header_content_type, "application/octet-stream"),
params: params,
]
case Craftgate.Config.get() do
{:ok, config} ->
request_data
|> Craftgate.HttpClient.execute(config)
|> Craftgate.Serializable.parse(:raw)
{:error, error} -> {:error, error}
end
end
@spec retrieve_daily_transaction_report!(RetrieveDailyTransactionReportRequest.t()) :: iolist() | no_return()
def retrieve_daily_transaction_report!(params), do: retrieve_daily_transaction_report(params) |> Craftgate.Utils.bangify!()
end