@oneblink/sdk-core
Advanced tools
Comparing version 7.2.0 to 7.3.0-beta.1
import { FormTypes, SubmissionEventTypes, SubmissionTypes } from '@oneblink/types'; | ||
import { ReplaceInjectablesFormatters } from './submissionService'; | ||
/** | ||
@@ -20,1 +21,35 @@ * Examine a submission and its form definition to validate whether a payment | ||
} | undefined; | ||
type PaymentDisplayDetail = { | ||
label: string; | ||
value: string; | ||
/** A key to identify the detail */ | ||
key: string; | ||
}; | ||
/** | ||
* Retrieve an array of detail items from a form submission payment. | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* const detailItems = | ||
* paymentService.getDisplayDetailsFromFormSubmissionPayment({ | ||
* formSubmissionPayment, | ||
* formatCurrency, | ||
* }) | ||
* ``` | ||
* | ||
* @param options | ||
* @returns | ||
*/ | ||
export declare const getDisplayDetailsFromFormSubmissionPayment: ({ formSubmissionPayment, formatCurrency, formatDateTime, }: { | ||
/** The form submission payment to get the details from */ | ||
formSubmissionPayment: SubmissionTypes.FormSubmissionPayment; | ||
/** A function to format any curreny values */ | ||
formatCurrency: ReplaceInjectablesFormatters['formatCurrency']; | ||
/** | ||
* A function to format any dates. If this is not passed, datetimes will be | ||
* returned as iso strings. | ||
*/ | ||
formatDateTime: ReplaceInjectablesFormatters['formatDateTime']; | ||
}) => PaymentDisplayDetail[]; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.checkForPaymentEvent = void 0; | ||
exports.getDisplayDetailsFromFormSubmissionPayment = exports.checkForPaymentEvent = void 0; | ||
const _1 = require("."); | ||
@@ -58,2 +58,277 @@ const submissionService_1 = require("./submissionService"); | ||
exports.checkForPaymentEvent = checkForPaymentEvent; | ||
/** | ||
* Retrieve an array of detail items from a form submission payment. | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* const detailItems = | ||
* paymentService.getDisplayDetailsFromFormSubmissionPayment({ | ||
* formSubmissionPayment, | ||
* formatCurrency, | ||
* }) | ||
* ``` | ||
* | ||
* @param options | ||
* @returns | ||
*/ | ||
const getDisplayDetailsFromFormSubmissionPayment = ({ formSubmissionPayment, formatCurrency, formatDateTime, }) => { | ||
var _a, _b; | ||
switch (formSubmissionPayment.type) { | ||
case 'NSW_GOV_PAY': { | ||
const { paymentTransaction } = formSubmissionPayment; | ||
if (!paymentTransaction || !paymentTransaction.agencyCompletionPayment) { | ||
return []; | ||
} | ||
return [ | ||
{ | ||
key: 'completionReference', | ||
label: 'Completion Reference', | ||
value: paymentTransaction.agencyCompletionPayment | ||
.paymentCompletionReference, | ||
}, | ||
{ | ||
key: 'paymentReference', | ||
label: 'Payment Reference', | ||
value: paymentTransaction.agencyCompletionPayment.paymentReference, | ||
}, | ||
{ | ||
key: 'bankReference', | ||
label: 'Bank Reference', | ||
value: paymentTransaction.agencyCompletionPayment.bankReference, | ||
}, | ||
{ | ||
key: 'paymentMethod', | ||
label: 'Payment Method', | ||
value: paymentTransaction.agencyCompletionPayment.paymentMethod, | ||
}, | ||
...(paymentTransaction.agencyCompletionPayment.paymentMethod === | ||
'BPAY' && ((_a = paymentTransaction.agencyCompletionPayment.bPay) === null || _a === void 0 ? void 0 : _a.billerCode) | ||
? [ | ||
{ | ||
key: 'billerCode', | ||
label: 'BPay Biller Code', | ||
value: paymentTransaction.agencyCompletionPayment.bPay.billerCode, | ||
}, | ||
] | ||
: []), | ||
...(paymentTransaction.agencyCompletionPayment.paymentMethod === 'CARD' | ||
? [ | ||
{ | ||
key: 'creditCardMask', | ||
label: 'Card Number', | ||
value: `xxxx xxxx xxxx ${(_b = paymentTransaction.agencyCompletionPayment.card) === null || _b === void 0 ? void 0 : _b.last4Digits}`, | ||
}, | ||
] | ||
: []), | ||
{ | ||
key: 'amount', | ||
label: 'Amount', | ||
value: formatCurrency(paymentTransaction.agencyCompletionPayment.amount), | ||
}, | ||
{ | ||
key: 'surchargeAmount', | ||
label: 'Surcharge Amount', | ||
value: formatCurrency(paymentTransaction.agencyCompletionPayment.surcharge), | ||
}, | ||
{ | ||
key: 'surchargeGST', | ||
label: 'Surcharge GST', | ||
value: formatCurrency(paymentTransaction.agencyCompletionPayment.surchargeGst), | ||
}, | ||
{ | ||
key: 'createdDateTime', | ||
label: 'Created Date Time', | ||
value: formatDateTime(formSubmissionPayment.createdAt), | ||
}, | ||
]; | ||
} | ||
case 'BPOINT': { | ||
const { paymentTransaction } = formSubmissionPayment; | ||
if (!paymentTransaction) { | ||
return []; | ||
} | ||
return [ | ||
{ | ||
key: 'receiptNumber', | ||
label: 'Receipt Number', | ||
value: paymentTransaction.ReceiptNumber, | ||
}, | ||
{ | ||
key: 'crn1', | ||
label: 'CRN 1', | ||
value: paymentTransaction.Crn1, | ||
}, | ||
{ | ||
key: 'crn2', | ||
label: 'CRN 2', | ||
value: paymentTransaction.Crn2, | ||
}, | ||
{ | ||
key: 'crn3', | ||
label: 'CRN 3', | ||
value: paymentTransaction.Crn3, | ||
}, | ||
{ | ||
key: 'billerCode', | ||
label: 'Biller Code', | ||
value: paymentTransaction.BillerCode, | ||
}, | ||
{ | ||
key: 'creditCardMask', | ||
label: 'Card Number', | ||
value: paymentTransaction.CardDetails.MaskedCardNumber, | ||
}, | ||
{ | ||
key: 'amount', | ||
label: 'Amount', | ||
value: formatCurrency(paymentTransaction.Amount / 100), | ||
}, | ||
{ | ||
key: 'surchargeAmount', | ||
label: 'Surcharge Amount', | ||
value: formatCurrency(paymentTransaction.AmountSurcharge / 100), | ||
}, | ||
{ | ||
key: 'processedDateTime', | ||
label: 'Processed Date Time', | ||
value: formatDateTime(paymentTransaction.ProcessedDateTime), | ||
}, | ||
]; | ||
} | ||
case 'CP_PAY': { | ||
const { paymentTransaction } = formSubmissionPayment; | ||
if (!paymentTransaction) { | ||
return []; | ||
} | ||
const determineDetails = () => { | ||
var _a, _b; | ||
switch (paymentTransaction.cpPayVersion) { | ||
case 'v2': { | ||
return { | ||
transactionId: paymentTransaction.result.id, | ||
orderNumber: (_a = paymentTransaction.result.externalReferenceId) !== null && _a !== void 0 ? _a : undefined, | ||
paymentType: paymentTransaction.result.paymentType, | ||
creditCardMask: paymentTransaction.result.lastFour | ||
? `xxxx xxxx xxxx ${paymentTransaction.result.lastFour}` | ||
: undefined, | ||
amount: paymentTransaction.result.amount !== undefined | ||
? formatCurrency(paymentTransaction.result.amount) | ||
: 'Unknown', | ||
createdDateTime: paymentTransaction.result.createdOnUtc, | ||
}; | ||
} | ||
default: { | ||
return { | ||
transactionId: paymentTransaction.transactionId, | ||
orderNumber: (_b = paymentTransaction.orderNumber) !== null && _b !== void 0 ? _b : undefined, | ||
paymentType: paymentTransaction.paymentTypeId === 1 | ||
? 'Credit/Debit Card' | ||
: paymentTransaction.paymentTypeId === 2 | ||
? 'ACH' | ||
: undefined, | ||
creditCardMask: paymentTransaction.lastFour | ||
? `xxxx xxxx xxxx ${paymentTransaction.lastFour}` | ||
: undefined, | ||
amount: formatCurrency(paymentTransaction.amount), | ||
createdDateTime: paymentTransaction.createdAt, | ||
}; | ||
} | ||
} | ||
}; | ||
const { transactionId, orderNumber, paymentType, creditCardMask, amount, createdDateTime, } = determineDetails(); | ||
const result = []; | ||
if (transactionId) { | ||
result.push({ | ||
key: 'transactionId', | ||
label: 'Transaction Id', | ||
value: transactionId, | ||
}); | ||
} | ||
if (orderNumber) { | ||
result.push({ | ||
key: 'orderNumber', | ||
label: 'Order Number', | ||
value: orderNumber, | ||
}); | ||
} | ||
if (paymentType) { | ||
result.push({ | ||
key: 'paymentType', | ||
label: 'Payment Type', | ||
value: paymentType, | ||
}); | ||
} | ||
if (creditCardMask) { | ||
result.push({ | ||
key: 'creditCardMask', | ||
label: 'Card Number', | ||
value: creditCardMask, | ||
}); | ||
} | ||
if (amount) { | ||
result.push({ | ||
key: 'amount', | ||
label: 'Amount', | ||
value: amount, | ||
}); | ||
} | ||
if (createdDateTime) { | ||
result.push({ | ||
key: 'createdDateTime', | ||
label: 'Created At', | ||
value: formatDateTime(createdDateTime), | ||
}); | ||
} | ||
return result; | ||
} | ||
case 'WESTPAC_QUICK_STREAM': { | ||
const { paymentTransaction } = formSubmissionPayment; | ||
if (!paymentTransaction) { | ||
return []; | ||
} | ||
return [ | ||
{ | ||
key: 'receiptNumber', | ||
label: 'Receipt Number', | ||
value: paymentTransaction.receiptNumber, | ||
}, | ||
{ | ||
key: 'paymentReferenceNumber', | ||
label: 'Payment Reference', | ||
value: paymentTransaction.paymentReferenceNumber, | ||
}, | ||
{ | ||
key: 'customerReferenceNumber', | ||
label: 'Customer Reference Number', | ||
value: paymentTransaction.customerReferenceNumber, | ||
}, | ||
...(paymentTransaction.totalAmount | ||
? [ | ||
{ | ||
key: 'amount', | ||
label: 'Amount', | ||
value: formatCurrency(parseFloat(paymentTransaction.totalAmount.amount.toString())), | ||
}, | ||
] | ||
: []), | ||
...(paymentTransaction.surchargeAmount.amount | ||
? [ | ||
{ | ||
key: 'surchargeAmount', | ||
label: 'Surcharge Amount', | ||
value: formatCurrency(parseFloat(paymentTransaction.surchargeAmount.amount.toString())), | ||
}, | ||
] | ||
: []), | ||
{ | ||
key: 'settlementDate', | ||
label: 'Settlement Date', | ||
value: formatDateTime(paymentTransaction.settlementDate), | ||
}, | ||
]; | ||
} | ||
} | ||
}; | ||
exports.getDisplayDetailsFromFormSubmissionPayment = getDisplayDetailsFromFormSubmissionPayment; | ||
//# sourceMappingURL=paymentService.js.map |
{ | ||
"name": "@oneblink/sdk-core", | ||
"description": "OneBlink SDK for JavaScript (works in Browsers and NodeJS)", | ||
"version": "7.2.0", | ||
"version": "7.3.0-beta.1", | ||
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)", | ||
@@ -6,0 +6,0 @@ "bugs": { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
343100
3901
1