Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,17 @@ data PaymentIntent = PaymentIntent
deriving stock (Show)

--- Charge Object ---
data CardDetails = CardDetails
{ brand :: Text,
country :: Maybe Text,
expMonth :: Int,
expYear :: Int,
fingerprint :: Maybe Text,
funding :: Maybe Text,
last4 :: Text
}
deriving stock (Show)

data Charge = Charge
{ chargeId :: Stripe.ChargeId,
paymentIntentId :: Maybe Stripe.PaymentIntentId,
Expand All @@ -159,6 +170,7 @@ data Charge = Charge
balanceTransaction :: Maybe Text,
calculatedStatementDescriptor :: Maybe Text,
captured :: Bool,
cardDetails :: Maybe CardDetails,
createdAt :: UTCTime,
currency :: Currency,
customer :: Maybe Stripe.CustomerId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -701,6 +701,7 @@ mkChargeObject Stripe.Charge {..} =
applicationFeeAmount = centsToUsd <$> application_fee_amount,
balanceTransaction = balance_transaction,
calculatedStatementDescriptor = calculated_statement_descriptor,
cardDetails = payment_method_details >>= (.card) <&> mkCardDetails,
createdAt = posixSecondsToUTCTime created,
failureCode = failure_code,
failureMessage = failure_message,
Expand All @@ -712,6 +713,14 @@ mkChargeObject Stripe.Charge {..} =
..
}

mkCardDetails :: Stripe.ChargeCardDetails -> Events.CardDetails
mkCardDetails Stripe.ChargeCardDetails {..} =
Events.CardDetails
{ expMonth = exp_month,
expYear = exp_year,
..
}

createRefund ::
( Metrics.CoreMetrics m,
EncFlow m r,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,25 @@ data MandateOptions = MandateOptions
deriving stock (Show, Generic)
deriving anyclass (FromJSON, ToJSON, ToSchema)

--- Card Payment Method Details (embedded in Charge) ---
data PaymentMethodDetails = PaymentMethodDetails
{ card :: Maybe ChargeCardDetails
}
deriving stock (Show, Generic)
deriving anyclass (FromJSON, ToJSON, ToSchema)

data ChargeCardDetails = ChargeCardDetails
{ brand :: Text,
country :: Maybe Text,
exp_month :: Int,
exp_year :: Int,
fingerprint :: Maybe Text,
funding :: Maybe Text,
last4 :: Text
}
deriving stock (Show, Generic)
deriving anyclass (FromJSON, ToJSON, ToSchema)

--- PaymentIntent Object ---
data PaymentIntent = PaymentIntent
{ id :: Text,
Expand Down Expand Up @@ -505,6 +524,7 @@ data Charge = Charge
paid :: Bool,
payment_intent :: Maybe Text,
payment_method :: Maybe PaymentMethodId,
payment_method_details :: Maybe PaymentMethodDetails,
receipt_email :: Maybe Text,
receipt_url :: Maybe Text,
refunded :: Bool,
Expand Down
Loading