Current section
Files
Jump to
Current section
Files
lib/ex_saferpay/request/transaction_authorize_direct.ex
defmodule ExSaferpay.Request.TransactionAuthorizeDirect do
@moduledoc """
Request Body for http://saferpay.github.io/jsonapi/#Payment_v1_Transaction_AuthorizeDirect
"""
use ExSaferpay.RequestNormalizer
alias ExSaferpay.Request
@type t :: %__MODULE__{
request_header: Request.RequestHeader,
terminal_id: String.t(),
payment: Request.Payment.t(),
payment_means: Request.PaymentMeans.t(),
register_alias: nil | Request.RegisterAlias.t(),
payer: nil | Request.Payer.t()
}
@enforce_keys [
:request_header,
:terminal_id,
:payment,
:payment_means
]
defstruct @enforce_keys ++
[
:register_alias,
:payer
]
def new(attrs), do: struct!(__MODULE__, attrs)
def generate(attrs) do
%{
request_header: Request.RequestHeader.generate(),
terminal_id: Application.fetch_env!(:ex_saferpay, :terminal_id)
}
|> Map.merge(attrs)
|> new
end
end