Current section
Files
Jump to
Current section
Files
lib/square_up/resources/v2/payment.ex
defmodule SquareUp.V2.Payment do
import Norm
import SquareUp.Client, only: [call: 2]
@spec refund(SquareUp.Client.t(), %{}, SquareUp.TypeSpecs.refund_payment_request()) ::
SquareUp.Client.response(SquareUp.TypeSpecs.refund_payment_response())
def refund(client, path_params \\ %{}, params \\ %{}) do
path_params_spec = schema(%{})
params_spec = Norm.Delegate.delegate(&SquareUp.NormSchema.refund_payment_request/0)
response_spec = {:delegate, &SquareUp.ResponseSchema.refund_payment_response/0}
call(client, %{
method: :post,
path_params: path_params,
params: params,
path_params_spec: path_params_spec,
params_spec: params_spec,
response_spec: response_spec,
path: "/v2/refunds"
})
end
@spec cancel_by_idempotency_key(
SquareUp.Client.t(),
%{},
SquareUp.TypeSpecs.cancel_payment_by_idempotency_key_request()
) ::
SquareUp.Client.response(
SquareUp.TypeSpecs.cancel_payment_by_idempotency_key_response()
)
def cancel_by_idempotency_key(client, path_params \\ %{}, params \\ %{}) do
path_params_spec = schema(%{})
params_spec =
Norm.Delegate.delegate(&SquareUp.NormSchema.cancel_payment_by_idempotency_key_request/0)
response_spec =
{:delegate, &SquareUp.ResponseSchema.cancel_payment_by_idempotency_key_response/0}
call(client, %{
method: :post,
path_params: path_params,
params: params,
path_params_spec: path_params_spec,
params_spec: params_spec,
response_spec: response_spec,
path: "/v2/payments/cancel"
})
end
@spec complete(SquareUp.Client.t(), %{required(:payment_id) => binary()}, %{}) ::
SquareUp.Client.response(SquareUp.TypeSpecs.complete_payment_response())
def complete(client, path_params \\ %{}, params \\ %{}) do
path_params_spec = schema(%{payment_id: spec(is_binary())})
params_spec = schema(%{})
response_spec = {:delegate, &SquareUp.ResponseSchema.complete_payment_response/0}
call(client, %{
method: :post,
path_params: path_params,
params: params,
path_params_spec: path_params_spec,
params_spec: params_spec,
response_spec: response_spec,
path: "/v2/payments/{payment_id}/complete"
})
end
@spec get(SquareUp.Client.t(), %{required(:payment_id) => binary()}, %{}) ::
SquareUp.Client.response(SquareUp.TypeSpecs.get_payment_response())
def get(client, path_params \\ %{}, params \\ %{}) do
path_params_spec = schema(%{payment_id: spec(is_binary())})
params_spec = schema(%{})
response_spec = {:delegate, &SquareUp.ResponseSchema.get_payment_response/0}
call(client, %{
method: :get,
path_params: path_params,
params: params,
path_params_spec: path_params_spec,
params_spec: params_spec,
response_spec: response_spec,
path: "/v2/payments/{payment_id}"
})
end
@spec cancel(SquareUp.Client.t(), %{required(:payment_id) => binary()}, %{}) ::
SquareUp.Client.response(SquareUp.TypeSpecs.cancel_payment_response())
def cancel(client, path_params \\ %{}, params \\ %{}) do
path_params_spec = schema(%{payment_id: spec(is_binary())})
params_spec = schema(%{})
response_spec = {:delegate, &SquareUp.ResponseSchema.cancel_payment_response/0}
call(client, %{
method: :post,
path_params: path_params,
params: params,
path_params_spec: path_params_spec,
params_spec: params_spec,
response_spec: response_spec,
path: "/v2/payments/{payment_id}/cancel"
})
end
@spec create(SquareUp.Client.t(), %{}, SquareUp.TypeSpecs.create_payment_request()) ::
SquareUp.Client.response(SquareUp.TypeSpecs.create_payment_response())
def create(client, path_params \\ %{}, params \\ %{}) do
path_params_spec = schema(%{})
params_spec = Norm.Delegate.delegate(&SquareUp.NormSchema.create_payment_request/0)
response_spec = {:delegate, &SquareUp.ResponseSchema.create_payment_response/0}
call(client, %{
method: :post,
path_params: path_params,
params: params,
path_params_spec: path_params_spec,
params_spec: params_spec,
response_spec: response_spec,
path: "/v2/payments"
})
end
end