Răsfoiți Sursa

feat(core): Support filtering orders by transactionId

Relates to #1520
Michael Bromley 3 ani în urmă
părinte
comite
7806bc436e

+ 2 - 2
packages/core/e2e/fixtures/test-payment-methods.ts

@@ -31,7 +31,7 @@ export const twoStagePaymentMethod = new PaymentMethodHandler({
         return {
             amount,
             state: 'Authorized',
-            transactionId: '12345',
+            transactionId: '12345-' + order.code,
             metadata: { public: metadata },
         };
     },
@@ -143,7 +143,7 @@ export const failsToSettlePaymentMethod = new PaymentMethodHandler({
         return {
             amount,
             state: 'Authorized',
-            transactionId: '12345',
+            transactionId: '12345-' + order.code,
             metadata: {
                 privateCreatePaymentData: 'secret',
                 public: {

+ 17 - 0
packages/core/e2e/order.e2e-spec.ts

@@ -572,6 +572,23 @@ describe('Orders resolver', () => {
                 },
             ]);
         });
+
+        it('filter by transactionId', async () => {
+            const result = await adminClient.query<GetOrderList.Query, GetOrderList.Variables>(
+                GET_ORDERS_LIST,
+                {
+                    options: {
+                        filter: {
+                            transactionId: {
+                                eq: '12345-' + firstOrderCode,
+                            },
+                        },
+                    },
+                },
+            );
+            expect(result.orders.totalItems).toEqual(1);
+            expect(result.orders.items[0].code).toBe(firstOrderCode);
+        });
     });
 
     describe('fulfillment', () => {

+ 2 - 0
packages/core/src/api/schema/admin-api/order.api.graphql

@@ -39,10 +39,12 @@ type Order {
 
 input OrderFilterParameter {
     customerLastName: StringOperators
+    transactionId: StringOperators
 }
 
 input OrderSortParameter {
     customerLastName: SortOrder
+    transactionId: SortOrder
 }
 
 # generated by generateListOptions function

+ 2 - 0
packages/core/src/service/services/order.service.ts

@@ -193,10 +193,12 @@ export class OrderService {
                     'lines.items',
                     'channels',
                     'shippingLines',
+                    'payments',
                 ],
                 channelId: ctx.channelId,
                 customPropertyMap: {
                     customerLastName: 'customer.lastName',
+                    transactionId: 'payment.transactionId',
                 },
             })
             .getManyAndCount()