cover/Elixir.WalletIntegrations.Events.PaymentFailed.html

1 defmodule WalletIntegrations.Events.PaymentFailed do
2 @moduledoc "Emitted when a payment definitively fails at the provider."
3 @behaviour WalletEvents.DomainEvent
4
5 @impl true
6 3 def event_name, do: "PaymentFailed.v1"
7 @impl true
8 3 def event_version, do: 1
9
10
:-(
def build(request_id, opts \\ []) do
11 3 %{
12 event_id: WalletSharedKernel.Correlation.new_request_id(),
13 event_name: event_name(),
14 event_version: event_version(),
15 aggregate_id: request_id,
16 correlation_id: Keyword.get(opts, :correlation_id, WalletSharedKernel.Correlation.new_correlation_id()),
17 occurred_at: DateTime.utc_now(),
18 payload: %{
19 request_id: request_id,
20 transfer_id: Keyword.get(opts, :transfer_id),
21 provider_reference: Keyword.get(opts, :provider_reference),
22 failure_reason: Keyword.get(opts, :failure_reason),
23 retryable: Keyword.get(opts, :retryable, false)
24 }
25 }
26 end
27 end
Line Hits Source