lib/circlex/emulator/api/payments/payments_api.ex
defmodule Circlex.Emulator.Api.Payments.PaymentsApi do
@moduledoc """
Mounted under `/v1/payments`.
"""
use Circlex.Emulator.Api
alias Circlex.Emulator.State.PaymentState
alias Circlex.Struct.Payment
# https://developers.circle.com/reference/payments-payments-get
@route "/"
def list_payments(%{}) do
{:ok, Enum.map(PaymentState.all_payments(), &Payment.serialize/1)}
end
# https://developers.circle.com/reference/payments-payments-get-id
@route "/:payment_id"
def get_payment(%{payment_id: payment_id}) do
with {:ok, payment} <- PaymentState.get_payment(payment_id) do
{:ok, Payment.serialize(payment)}
end
end
end