@final-commerce/command-frame 0.12.0-staging.4 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -19,11 +19,16 @@ export const mockRecordExternalPayment = async (params) => {
|
|
|
19
19
|
if (amount > balanceDue) {
|
|
20
20
|
throw new Error(`recordExternalPayment: amount ${amount} exceeds the balance due ${balanceDue}`);
|
|
21
21
|
}
|
|
22
|
+
const tip = params.tip?.amount ?? 0;
|
|
23
|
+
if (params.tip !== undefined && (!Number.isInteger(tip) || tip <= 0)) {
|
|
24
|
+
throw new Error('recordExternalPayment: tip.amount must be a positive integer (minor units)');
|
|
25
|
+
}
|
|
22
26
|
const order = applyMockPayment(amount, 'external', label);
|
|
23
27
|
const remainingBalance = MOCK_CART.remainingBalance ?? 0;
|
|
24
28
|
return {
|
|
25
29
|
success: true,
|
|
26
30
|
amount,
|
|
31
|
+
tip,
|
|
27
32
|
label,
|
|
28
33
|
paymentType: 'external',
|
|
29
34
|
change: 0,
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { CFOrder } from '../../CommonTypes';
|
|
2
|
+
/** A tip the customer already paid wherever the money was taken (the website, a delivery app). */
|
|
3
|
+
export interface RecordExternalPaymentTip {
|
|
4
|
+
/** Tip in integer MINOR currency units. Must be positive. */
|
|
5
|
+
amount: number;
|
|
6
|
+
/** User id the tip belongs to. Defaults to the cashier recording the payment. */
|
|
7
|
+
tipTo?: string;
|
|
8
|
+
}
|
|
2
9
|
export interface RecordExternalPaymentParams {
|
|
3
10
|
/**
|
|
4
11
|
* What the payment was — shown on the order and in reports, e.g. 'Paid online',
|
|
@@ -12,13 +19,21 @@ export interface RecordExternalPaymentParams {
|
|
|
12
19
|
* the rest can be taken with any other tender. Above the balance due is an error.
|
|
13
20
|
*/
|
|
14
21
|
amount?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Tip paid along with it. Recorded ON TOP of `amount` — it never counts toward the
|
|
24
|
+
* balance due — and stored on the payment like a card tip, so reports and tip-outs
|
|
25
|
+
* see it. Omit for no tip.
|
|
26
|
+
*/
|
|
27
|
+
tip?: RecordExternalPaymentTip;
|
|
15
28
|
/** Fulfillment state to land on after full payment, e.g. 'pending' to keep the order going to the kitchen. */
|
|
16
29
|
checkoutFulfillmentTarget?: string;
|
|
17
30
|
}
|
|
18
31
|
export interface RecordExternalPaymentResponse {
|
|
19
32
|
success: boolean;
|
|
20
|
-
/** The amount recorded, in integer MINOR currency units. */
|
|
33
|
+
/** The amount recorded against the balance, in integer MINOR currency units. Excludes the tip. */
|
|
21
34
|
amount: number;
|
|
35
|
+
/** The tip recorded on top of `amount`, in integer MINOR currency units; 0 when none. */
|
|
36
|
+
tip: number;
|
|
22
37
|
/** The label, as recorded. */
|
|
23
38
|
label: string;
|
|
24
39
|
paymentType: 'external';
|
package/dist/index.d.ts
CHANGED
|
@@ -214,7 +214,7 @@ export type { GetOrderStatuses, GetOrderStatusesResponse } from './actions/get-o
|
|
|
214
214
|
export type { DeleteParkedOrder, DeleteParkedOrderParams, DeleteParkedOrderResponse, } from './actions/delete-parked-order/types';
|
|
215
215
|
export type { VoidOrder, VoidOrderParams, VoidOrderResponse, VoidOrderOutcome } from './actions/void-order/types';
|
|
216
216
|
export type { CashPayment, CashPaymentParams, CashPaymentResponse } from './actions/cash-payment/types';
|
|
217
|
-
export type { RecordExternalPayment, RecordExternalPaymentParams, RecordExternalPaymentResponse, } from './actions/record-external-payment/types';
|
|
217
|
+
export type { RecordExternalPayment, RecordExternalPaymentParams, RecordExternalPaymentResponse, RecordExternalPaymentTip, } from './actions/record-external-payment/types';
|
|
218
218
|
export type { GetCashRoundingAmount, GetCashRoundingAmountParams, GetCashRoundingAmountResponse, } from './actions/get-cash-rounding-amount/types';
|
|
219
219
|
export type { TapToPayPayment, TapToPayPaymentParams, TapToPayPaymentResponse, } from './actions/tap-to-pay-payment/types';
|
|
220
220
|
export type { TerminalPayment, TerminalPaymentParams, TerminalPaymentResponse } from './actions/terminal-payment/types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@final-commerce/command-frame",
|
|
3
|
-
"version": "0.12.0
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Commands Frame library",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"ignoreBranchesMissingTickets": true
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@final-commerce/common": "2.9.0
|
|
60
|
+
"@final-commerce/common": "2.9.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@commitlint/cli": "^19.0.0",
|