From a4cf642ea3cef43ca1598bc4dc4bb9a90a615b5e Mon Sep 17 00:00:00 2001 From: Anush Ramani Date: Wed, 5 Nov 2025 11:40:16 -0800 Subject: [PATCH 1/3] Deprecated `order.*` sources and introduced `purchase.*` sources to replace them --- .../new-order-created-instant.mjs | 4 +- .../order-deleted-instant.mjs | 4 +- .../order-updated-instant.mjs | 4 +- .../purchase-canceled-instant.mjs | 28 + .../purchase-canceled-instant/test-event.mjs | 543 ++++++++++++++++++ .../purchase-created-instant.mjs | 28 + .../purchase-created-instant/test-event.mjs | 534 +++++++++++++++++ .../purchase-updated-instant.mjs | 29 + .../purchase-updated-instant/test-event.mjs | 543 ++++++++++++++++++ 9 files changed, 1711 insertions(+), 6 deletions(-) create mode 100644 components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs create mode 100644 components/xola/sources/purchase-canceled-instant/test-event.mjs create mode 100644 components/xola/sources/purchase-created-instant/purchase-created-instant.mjs create mode 100644 components/xola/sources/purchase-created-instant/test-event.mjs create mode 100644 components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs create mode 100644 components/xola/sources/purchase-updated-instant/test-event.mjs diff --git a/components/xola/sources/new-order-created-instant/new-order-created-instant.mjs b/components/xola/sources/new-order-created-instant/new-order-created-instant.mjs index d68e7e5ee1e8c..23743649605ae 100644 --- a/components/xola/sources/new-order-created-instant/new-order-created-instant.mjs +++ b/components/xola/sources/new-order-created-instant/new-order-created-instant.mjs @@ -5,8 +5,8 @@ export default { ...common, key: "xola-new-order-created-instant", name: "New Order Created (Instant)", - description: "Emit new event when a new order is created. [See the documentation](https://developers.xola.com/reference/webhook-introduction)", - version: "0.0.1", + description: "Emit new event when a new order is created. [See the documentation](https://developers.xola.com/reference/webhook-introduction). **This source has been deprecated. Please use the 'New Purchase Created (Instant)' source instead.**", + version: "0.0.2", type: "source", dedupe: "unique", methods: { diff --git a/components/xola/sources/order-deleted-instant/order-deleted-instant.mjs b/components/xola/sources/order-deleted-instant/order-deleted-instant.mjs index 8e7ba97a5987f..30e6e708695e7 100644 --- a/components/xola/sources/order-deleted-instant/order-deleted-instant.mjs +++ b/components/xola/sources/order-deleted-instant/order-deleted-instant.mjs @@ -5,8 +5,8 @@ export default { ...common, key: "xola-order-deleted-instant", name: "Order Deleted (Instant)", - description: "Emit new event when an order is deleted. [See the documentation](https://developers.xola.com/reference/webhook-introduction)", - version: "0.0.1", + description: "Emit new event when an order is deleted. [See the documentation](https://developers.xola.com/reference/webhook-introduction). **This source has been deprecated. Please use the 'Purchase Canceled (Instant)' source instead.**", + version: "0.0.2", type: "source", dedupe: "unique", methods: { diff --git a/components/xola/sources/order-updated-instant/order-updated-instant.mjs b/components/xola/sources/order-updated-instant/order-updated-instant.mjs index 770bd770851c4..17604db47a3a2 100644 --- a/components/xola/sources/order-updated-instant/order-updated-instant.mjs +++ b/components/xola/sources/order-updated-instant/order-updated-instant.mjs @@ -5,8 +5,8 @@ export default { ...common, key: "xola-order-updated-instant", name: "Order Updated (Instant)", - description: "Emit new event when an order is updated. [See the documentation](https://developers.xola.com/reference/webhook-introduction)", - version: "0.0.1", + description: "Emit new event when an order is updated. [See the documentation](https://developers.xola.com/reference/webhook-introduction). **This source has been deprecated. Please use the 'Purchase Updated (Instant)' source instead.**", + version: "0.0.2", type: "source", dedupe: "unique", methods: { diff --git a/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs b/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs new file mode 100644 index 0000000000000..7f9efffa5eb22 --- /dev/null +++ b/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs @@ -0,0 +1,28 @@ +import common from "../common/webhook.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "xola-purchase-canceled-instant", + name: "Purchase Canceled (Instant)", + description: "Emit new event when a purchase is canceled.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getEventName() { + return "purchase.cancel"; + }, + generateMeta(body) { + const { data } = body; + const ts = Date.now(); + return { + id: `${data.id}-${ts}`, + summary: `Purchase Canceled ${data.id}`, + ts, + }; + }, + }, + sampleEmit, +}; diff --git a/components/xola/sources/purchase-canceled-instant/test-event.mjs b/components/xola/sources/purchase-canceled-instant/test-event.mjs new file mode 100644 index 0000000000000..26f539fecce91 --- /dev/null +++ b/components/xola/sources/purchase-canceled-instant/test-event.mjs @@ -0,0 +1,543 @@ +export default { + eventName: "purchase.cancel", + data: { + "id": "68ee843389795bbf8d051801", + "object": "purchase", + "status": "committed", + "reminders": [], + "notes": [], + "source": "office", + "dueNow": 0, + "customerName": "Obrien Quarsh Panaka", + "customerEmail": "fagud@guerrillamail.info", + "currency": "USD", + "amount": 10, + "balance": 0, + "tags": [], + "customerLocale": "en_US", + "createdAt": "2025-10-14T17:11:15+00:00", + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "updatedAt": "2025-10-29T07:37:32+00:00", + "conversation": { + "id": "68ee843427790c08cb000d94" + }, + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "organizer": { + "id": "68ee843427790c08cb000d67" + }, + "splitPayment": { + "enabled": false + }, + "paymentReminders": [], + "travelers": [ + { + "id": "68ee843427790c08cb000d67" + } + ], + "items": [ + { + "id": "68ee843389795bbf8d051802", + "amount": 10, + "object": "scheduled_experience_purchase_item", + "name": "The Forbidden Tour", + "status": "canceled", + "source": "office", + "quantity": 1, + "product": { + "id": "68ee771119f95431a7038e33" + }, + "createdAt": "2025-10-14T17:11:15+00:00", + "updatedAt": "2025-10-29T07:37:32+00:00", + "ip": "76.132.193.240", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "purchase": { + "id": "68ee843389795bbf8d051801" + }, + "lineItems": [ + { + "id": "68ee843389795bbf8d0517d5", + "object": "line_item", + "type": "demographic", + "name": "Guests", + "lineItemObject": "line_item", + "code": "guest", + "destination": "seller", + "visibility": "all", + "visible": true, + "system": false, + "includeInAmount": true, + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": 10, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdbc" + }, + "sequence": 10000 + }, + { + "id": "68ee843389795bbf8d0517d9", + "object": "line_item", + "type": "sub_total", + "name": "Demographic Subtotal", + "lineItemObject": "line_item", + "code": "demographic_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdbf" + }, + "templateCode": "demographic_subtotal" + }, + { + "id": "68ee843389795bbf8d0517de", + "object": "line_item", + "type": "sub_total", + "name": "Merchandise Subtotal", + "lineItemObject": "line_item", + "code": "merchandise_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdca" + }, + "templateCode": "merchandise_subtotal" + }, + { + "id": "68ee843389795bbf8d0517e2", + "object": "line_item", + "type": "sub_total", + "name": "Pickup Subtotal", + "lineItemObject": "line_item", + "code": "pickup_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdd5" + }, + "templateCode": "pickup_subtotal" + }, + { + "id": "68ee843389795bbf8d0517e6", + "object": "line_item", + "type": "sub_total", + "name": "Unit Subtotal", + "lineItemObject": "line_item", + "code": "unit_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bde0" + }, + "templateCode": "unit_subtotal" + }, + { + "id": "68ee843389795bbf8d0517ea", + "object": "line_item", + "type": "sub_total", + "name": "Discount Subtotal", + "lineItemObject": "line_item", + "code": "discount_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdeb" + }, + "templateCode": "discount_subtotal" + }, + { + "id": "68ee843389795bbf8d0517ee", + "object": "line_item", + "type": "sub_total", + "name": "Pre-tax-fee Subtotal", + "lineItemObject": "line_item", + "code": "pre_tax_fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdf6" + }, + "templateCode": "pre_tax_fee_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f1", + "object": "line_item", + "type": "sub_total", + "name": "Fee Subtotal", + "lineItemObject": "line_item", + "code": "fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdff" + }, + "templateCode": "fee_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f5", + "object": "line_item", + "type": "sub_total", + "name": "Pre-tax Subtotal", + "lineItemObject": "line_item", + "code": "pre_tax_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be0c" + }, + "templateCode": "pre_tax_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f8", + "object": "line_item", + "type": "sub_total", + "name": "Tax Subtotal", + "lineItemObject": "line_item", + "code": "tax_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be15" + }, + "templateCode": "tax_subtotal" + }, + { + "id": "68ee843389795bbf8d0517fc", + "object": "line_item", + "type": "sub_total", + "name": "Pre Service Fee Item Subtotal", + "lineItemObject": "line_item", + "code": "pre_partner_fee_item_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be22" + }, + "templateCode": "pre_partner_fee_item_subtotal" + } + ], + "organizer": { + "name": "Obrien Quarsh Panaka updated", + "email": "fagud@guerrillamail.info", + "user": { + "id": "68ee843427790c08cb000d67" + } + }, + "updatedBy": { + "id": "4f293e17536e86bc66000000" + }, + "ticketCode": "3jcy73v74cu8", + "shortCode": "b6c9d0", + "deposit": { + "enabled": false + }, + "reminders": [ + { + "type": "purchase_trip_reminder_traveler", + "sendReminderAt": "2025-11-16T19:00:00+00:00", + "status": "active" + }, + { + "type": "purchase_review_reminder_traveler", + "sendReminderAt": "2025-11-18T19:59:59+00:00", + "status": "active" + } + ], + "waivers": [], + "guests": [ + { + "id": "68ee843389795bbf8d0517d6", + "name": "Owen Harvey", + "unit": { + "id": "68ee76c38d57715e1204bdbb" + }, + "template": { + "id": "68ee76c38d57715e1204bdbc" + }, + "ticketCode": "bdb9klupba8k", + "primary": false, + "guestStatus": "pending", + "checkInCount": 0, + "checkIns": [] + } + ], + "tickets": [ + { + "type": "xola", + "ticketCode": "3jcy73v74cu8" + } + ], + "guestStatus": "pending", + "firstCheckInAt": null, + "event": { + "id": "68ee7af91d3dd6518b19a53f" + }, + "arrivalDate": "2025-11-17", + "privacy": "public", + "duration": 60, + "arrivalTime": 1300, + "arrivalDateTime": "2025-11-17T13:00:00-06:00" + } + ], + "lineItems": [ + { + "id": "68ee843427790c08cb000d66", + "object": "payment_line_item", + "type": "payment", + "name": "Payment", + "visibility": "all", + "visible": true, + "system": false, + "includeInAmount": false, + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:18+00:00", + "amount": -10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "status": "complete", + "payment": { + "method": "cc", + "card": "68ee843427790c08cb000d95", + "meta": { + "cardSummary": { + "brand": "American Express", + "last4": "8431", + "expMonth": 10, + "funding": "credit", + "expYear": 2026, + "id": "68ee843427790c08cb000d95", + "default": true, + "name": null + } + }, + "transaction": { + "id": "68ee843527790c08cb000d97" + }, + "remoteId": "ch_2SIBknjhWC3jcChC0ZQNwR2P" + }, + "traveler": { + "id": "68ee843427790c08cb000d67", + "name": "Obrien Quarsh Panaka updated" + } + }, + { + "id": "68ee843427790c08cb000d90", + "object": "line_item", + "type": "sub_total", + "name": "Service Fee Subtotal", + "lineItemObject": "line_item", + "code": "pre_partner_fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c9738f2b9fd1078fc3" + }, + "templateCode": "pre_partner_fee_subtotal" + }, + { + "id": "68ee843427790c08cb000d92", + "object": "line_item", + "type": "processing_fee", + "name": "Processing Fees", + "lineItemObject": "line_item", + "code": "processing_fees", + "destination": "xola", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:18+00:00", + "amount": 0.54, + "price": null, + "quantity": null, + "due": 0, + "collected": 0.54, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be3b" + }, + "templateCode": "processing_fees" + } + ], + "updatedBy": { + "id": "4f293e17536e86bc66000000" + } + }, + audit: { + "items": { + "00": { + "id": "68ee843389795bbf8d051802", + "status": { + "new": "canceled", + "old": "confirmed" + } + } + } + }, +}; diff --git a/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs b/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs new file mode 100644 index 0000000000000..4597328ad7c73 --- /dev/null +++ b/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs @@ -0,0 +1,28 @@ +import common from "../common/webhook.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "xola-new-purchase-created-instant", + name: "New Purchase Created (Instant)", + description: "Emit new event when a new purchase is created.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getEventName() { + return "purchase.create"; + }, + generateMeta(body) { + const { data } = body; + return { + id: data.id, + summary: `New Purchase ${data.id}`, + ts: Date.now(), + }; + }, + }, + sampleEmit, +}; + diff --git a/components/xola/sources/purchase-created-instant/test-event.mjs b/components/xola/sources/purchase-created-instant/test-event.mjs new file mode 100644 index 0000000000000..e31487aa0e9ee --- /dev/null +++ b/components/xola/sources/purchase-created-instant/test-event.mjs @@ -0,0 +1,534 @@ +export default { + eventName: "purchase.create", + data: { + "id": "68ee843389795bbf8d051801", + "object": "purchase", + "status": "committed", + "reminders": [], + "notes": [], + "source": "office", + "dueNow": 0, + "customerName": "Obrien Quarsh Panaka", + "customerEmail": "fagud@guerrillamail.info", + "currency": "USD", + "amount": 10, + "balance": 0, + "tags": [], + "customerLocale": "en_US", + "createdAt": "2025-10-14T17:11:15+00:00", + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "updatedAt": "2025-10-29T07:37:32+00:00", + "conversation": { + "id": "68ee843427790c08cb000d94" + }, + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "organizer": { + "id": "68ee843427790c08cb000d67" + }, + "splitPayment": { + "enabled": false + }, + "paymentReminders": [], + "travelers": [ + { + "id": "68ee843427790c08cb000d67" + } + ], + "items": [ + { + "id": "68ee843389795bbf8d051802", + "amount": 10, + "object": "scheduled_experience_purchase_item", + "name": "The Forbidden Tour", + "status": "confirmed", + "source": "office", + "quantity": 1, + "product": { + "id": "68ee771119f95431a7038e33" + }, + "createdAt": "2025-10-14T17:11:15+00:00", + "updatedAt": "2025-10-29T07:37:32+00:00", + "ip": "76.132.193.240", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "purchase": { + "id": "68ee843389795bbf8d051801" + }, + "lineItems": [ + { + "id": "68ee843389795bbf8d0517d5", + "object": "line_item", + "type": "demographic", + "name": "Guests", + "lineItemObject": "line_item", + "code": "guest", + "destination": "seller", + "visibility": "all", + "visible": true, + "system": false, + "includeInAmount": true, + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": 10, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdbc" + }, + "sequence": 10000 + }, + { + "id": "68ee843389795bbf8d0517d9", + "object": "line_item", + "type": "sub_total", + "name": "Demographic Subtotal", + "lineItemObject": "line_item", + "code": "demographic_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdbf" + }, + "templateCode": "demographic_subtotal" + }, + { + "id": "68ee843389795bbf8d0517de", + "object": "line_item", + "type": "sub_total", + "name": "Merchandise Subtotal", + "lineItemObject": "line_item", + "code": "merchandise_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdca" + }, + "templateCode": "merchandise_subtotal" + }, + { + "id": "68ee843389795bbf8d0517e2", + "object": "line_item", + "type": "sub_total", + "name": "Pickup Subtotal", + "lineItemObject": "line_item", + "code": "pickup_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdd5" + }, + "templateCode": "pickup_subtotal" + }, + { + "id": "68ee843389795bbf8d0517e6", + "object": "line_item", + "type": "sub_total", + "name": "Unit Subtotal", + "lineItemObject": "line_item", + "code": "unit_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bde0" + }, + "templateCode": "unit_subtotal" + }, + { + "id": "68ee843389795bbf8d0517ea", + "object": "line_item", + "type": "sub_total", + "name": "Discount Subtotal", + "lineItemObject": "line_item", + "code": "discount_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdeb" + }, + "templateCode": "discount_subtotal" + }, + { + "id": "68ee843389795bbf8d0517ee", + "object": "line_item", + "type": "sub_total", + "name": "Pre-tax-fee Subtotal", + "lineItemObject": "line_item", + "code": "pre_tax_fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdf6" + }, + "templateCode": "pre_tax_fee_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f1", + "object": "line_item", + "type": "sub_total", + "name": "Fee Subtotal", + "lineItemObject": "line_item", + "code": "fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdff" + }, + "templateCode": "fee_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f5", + "object": "line_item", + "type": "sub_total", + "name": "Pre-tax Subtotal", + "lineItemObject": "line_item", + "code": "pre_tax_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be0c" + }, + "templateCode": "pre_tax_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f8", + "object": "line_item", + "type": "sub_total", + "name": "Tax Subtotal", + "lineItemObject": "line_item", + "code": "tax_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be15" + }, + "templateCode": "tax_subtotal" + }, + { + "id": "68ee843389795bbf8d0517fc", + "object": "line_item", + "type": "sub_total", + "name": "Pre Service Fee Item Subtotal", + "lineItemObject": "line_item", + "code": "pre_partner_fee_item_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be22" + }, + "templateCode": "pre_partner_fee_item_subtotal" + } + ], + "organizer": { + "name": "Obrien Quarsh Panaka updated", + "email": "fagud@guerrillamail.info", + "user": { + "id": "68ee843427790c08cb000d67" + } + }, + "updatedBy": { + "id": "4f293e17536e86bc66000000" + }, + "ticketCode": "3jcy73v74cu8", + "shortCode": "b6c9d0", + "deposit": { + "enabled": false + }, + "reminders": [ + { + "type": "purchase_trip_reminder_traveler", + "sendReminderAt": "2025-11-16T19:00:00+00:00", + "status": "active" + }, + { + "type": "purchase_review_reminder_traveler", + "sendReminderAt": "2025-11-18T19:59:59+00:00", + "status": "active" + } + ], + "waivers": [], + "guests": [ + { + "id": "68ee843389795bbf8d0517d6", + "name": "Owen Harvey", + "unit": { + "id": "68ee76c38d57715e1204bdbb" + }, + "template": { + "id": "68ee76c38d57715e1204bdbc" + }, + "ticketCode": "bdb9klupba8k", + "primary": false, + "guestStatus": "pending", + "checkInCount": 0, + "checkIns": [] + } + ], + "tickets": [ + { + "type": "xola", + "ticketCode": "3jcy73v74cu8" + } + ], + "guestStatus": "pending", + "firstCheckInAt": null, + "event": { + "id": "68ee7af91d3dd6518b19a53f" + }, + "arrivalDate": "2025-11-17", + "privacy": "public", + "duration": 60, + "arrivalTime": 1300, + "arrivalDateTime": "2025-11-17T13:00:00-06:00" + } + ], + "lineItems": [ + { + "id": "68ee843427790c08cb000d66", + "object": "payment_line_item", + "type": "payment", + "name": "Payment", + "visibility": "all", + "visible": true, + "system": false, + "includeInAmount": false, + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:18+00:00", + "amount": -10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "status": "complete", + "payment": { + "method": "cc", + "card": "68ee843427790c08cb000d95", + "meta": { + "cardSummary": { + "brand": "American Express", + "last4": "8431", + "expMonth": 10, + "funding": "credit", + "expYear": 2026, + "id": "68ee843427790c08cb000d95", + "default": true, + "name": null + } + }, + "transaction": { + "id": "68ee843527790c08cb000d97" + }, + "remoteId": "ch_2SIBknjhWC3jcChC0ZQNwR2P" + }, + "traveler": { + "id": "68ee843427790c08cb000d67", + "name": "Obrien Quarsh Panaka updated" + } + }, + { + "id": "68ee843427790c08cb000d90", + "object": "line_item", + "type": "sub_total", + "name": "Service Fee Subtotal", + "lineItemObject": "line_item", + "code": "pre_partner_fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c9738f2b9fd1078fc3" + }, + "templateCode": "pre_partner_fee_subtotal" + }, + { + "id": "68ee843427790c08cb000d92", + "object": "line_item", + "type": "processing_fee", + "name": "Processing Fees", + "lineItemObject": "line_item", + "code": "processing_fees", + "destination": "xola", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:18+00:00", + "amount": 0.54, + "price": null, + "quantity": null, + "due": 0, + "collected": 0.54, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be3b" + }, + "templateCode": "processing_fees" + } + ], + "updatedBy": { + "id": "4f293e17536e86bc66000000" + } + }, + audit: {}, +}; + diff --git a/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs b/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs new file mode 100644 index 0000000000000..d52e6747ce089 --- /dev/null +++ b/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs @@ -0,0 +1,29 @@ +import common from "../common/webhook.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "xola-purchase-updated-instant", + name: "Purchase Updated (Instant)", + description: "Emit new event when a purchase is updated.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getEventName() { + return "purchase.update"; + }, + generateMeta(body) { + const { data } = body; + const ts = Date.now(); + return { + id: `${data.id}-${ts}`, + summary: `Purchase Updated ${data.id}`, + ts, + }; + }, + }, + sampleEmit, +}; + diff --git a/components/xola/sources/purchase-updated-instant/test-event.mjs b/components/xola/sources/purchase-updated-instant/test-event.mjs new file mode 100644 index 0000000000000..43f7fa174ccad --- /dev/null +++ b/components/xola/sources/purchase-updated-instant/test-event.mjs @@ -0,0 +1,543 @@ +export default { + eventName: "purchase.update", + data: { + "id": "68ee843389795bbf8d051801", + "object": "purchase", + "status": "committed", + "reminders": [], + "notes": [], + "source": "office", + "dueNow": 0, + "customerName": "Obrien Quarsh Panaka", + "customerEmail": "fagud@guerrillamail.info", + "currency": "USD", + "amount": 10, + "balance": 0, + "tags": [], + "customerLocale": "en_US", + "createdAt": "2025-10-14T17:11:15+00:00", + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "updatedAt": "2025-10-29T07:37:32+00:00", + "conversation": { + "id": "68ee843427790c08cb000d94" + }, + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "organizer": { + "id": "68ee843427790c08cb000d67" + }, + "splitPayment": { + "enabled": false + }, + "paymentReminders": [], + "travelers": [ + { + "id": "68ee843427790c08cb000d67" + } + ], + "items": [ + { + "id": "68ee843389795bbf8d051802", + "amount": 10, + "object": "scheduled_experience_purchase_item", + "name": "The Forbidden Tour", + "status": "confirmed", + "source": "office", + "quantity": 1, + "product": { + "id": "68ee771119f95431a7038e33" + }, + "createdAt": "2025-10-14T17:11:15+00:00", + "updatedAt": "2025-10-29T07:37:32+00:00", + "ip": "76.132.193.240", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "purchase": { + "id": "68ee843389795bbf8d051801" + }, + "lineItems": [ + { + "id": "68ee843389795bbf8d0517d5", + "object": "line_item", + "type": "demographic", + "name": "Guests", + "lineItemObject": "line_item", + "code": "guest", + "destination": "seller", + "visibility": "all", + "visible": true, + "system": false, + "includeInAmount": true, + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": 10, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdbc" + }, + "sequence": 10000 + }, + { + "id": "68ee843389795bbf8d0517d9", + "object": "line_item", + "type": "sub_total", + "name": "Demographic Subtotal", + "lineItemObject": "line_item", + "code": "demographic_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdbf" + }, + "templateCode": "demographic_subtotal" + }, + { + "id": "68ee843389795bbf8d0517de", + "object": "line_item", + "type": "sub_total", + "name": "Merchandise Subtotal", + "lineItemObject": "line_item", + "code": "merchandise_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdca" + }, + "templateCode": "merchandise_subtotal" + }, + { + "id": "68ee843389795bbf8d0517e2", + "object": "line_item", + "type": "sub_total", + "name": "Pickup Subtotal", + "lineItemObject": "line_item", + "code": "pickup_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdd5" + }, + "templateCode": "pickup_subtotal" + }, + { + "id": "68ee843389795bbf8d0517e6", + "object": "line_item", + "type": "sub_total", + "name": "Unit Subtotal", + "lineItemObject": "line_item", + "code": "unit_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": 1, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bde0" + }, + "templateCode": "unit_subtotal" + }, + { + "id": "68ee843389795bbf8d0517ea", + "object": "line_item", + "type": "sub_total", + "name": "Discount Subtotal", + "lineItemObject": "line_item", + "code": "discount_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdeb" + }, + "templateCode": "discount_subtotal" + }, + { + "id": "68ee843389795bbf8d0517ee", + "object": "line_item", + "type": "sub_total", + "name": "Pre-tax-fee Subtotal", + "lineItemObject": "line_item", + "code": "pre_tax_fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdf6" + }, + "templateCode": "pre_tax_fee_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f1", + "object": "line_item", + "type": "sub_total", + "name": "Fee Subtotal", + "lineItemObject": "line_item", + "code": "fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204bdff" + }, + "templateCode": "fee_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f5", + "object": "line_item", + "type": "sub_total", + "name": "Pre-tax Subtotal", + "lineItemObject": "line_item", + "code": "pre_tax_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be0c" + }, + "templateCode": "pre_tax_subtotal" + }, + { + "id": "68ee843389795bbf8d0517f8", + "object": "line_item", + "type": "sub_total", + "name": "Tax Subtotal", + "lineItemObject": "line_item", + "code": "tax_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 0, + "price": null, + "quantity": 0, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be15" + }, + "templateCode": "tax_subtotal" + }, + { + "id": "68ee843389795bbf8d0517fc", + "object": "line_item", + "type": "sub_total", + "name": "Pre Service Fee Item Subtotal", + "lineItemObject": "line_item", + "code": "pre_partner_fee_item_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be22" + }, + "templateCode": "pre_partner_fee_item_subtotal" + } + ], + "organizer": { + "name": "Obrien Quarsh Panaka updated", + "email": "fagud@guerrillamail.info", + "user": { + "id": "68ee843427790c08cb000d67" + } + }, + "updatedBy": { + "id": "4f293e17536e86bc66000000" + }, + "ticketCode": "3jcy73v74cu8", + "shortCode": "b6c9d0", + "deposit": { + "enabled": false + }, + "reminders": [ + { + "type": "purchase_trip_reminder_traveler", + "sendReminderAt": "2025-11-16T19:00:00+00:00", + "status": "active" + }, + { + "type": "purchase_review_reminder_traveler", + "sendReminderAt": "2025-11-18T19:59:59+00:00", + "status": "active" + } + ], + "waivers": [], + "guests": [ + { + "id": "68ee843389795bbf8d0517d6", + "name": "Owen Harvey", + "unit": { + "id": "68ee76c38d57715e1204bdbb" + }, + "template": { + "id": "68ee76c38d57715e1204bdbc" + }, + "ticketCode": "bdb9klupba8k", + "primary": false, + "guestStatus": "pending", + "checkInCount": 0, + "checkIns": [] + } + ], + "tickets": [ + { + "type": "xola", + "ticketCode": "3jcy73v74cu8" + } + ], + "guestStatus": "pending", + "firstCheckInAt": null, + "event": { + "id": "68ee7af91d3dd6518b19a53f" + }, + "arrivalDate": "2025-11-17", + "privacy": "public", + "duration": 60, + "arrivalTime": 1300, + "arrivalDateTime": "2025-11-17T13:00:00-06:00" + } + ], + "lineItems": [ + { + "id": "68ee843427790c08cb000d66", + "object": "payment_line_item", + "type": "payment", + "name": "Payment", + "visibility": "all", + "visible": true, + "system": false, + "includeInAmount": false, + "createdBy": { + "id": "4f293e17536e86bc66000000" + }, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:18+00:00", + "amount": -10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "status": "complete", + "payment": { + "method": "cc", + "card": "68ee843427790c08cb000d95", + "meta": { + "cardSummary": { + "brand": "American Express", + "last4": "8431", + "expMonth": 10, + "funding": "credit", + "expYear": 2026, + "id": "68ee843427790c08cb000d95", + "default": true, + "name": null + } + }, + "transaction": { + "id": "68ee843527790c08cb000d97" + }, + "remoteId": "ch_2SIBknjhWC3jcChC0ZQNwR2P" + }, + "traveler": { + "id": "68ee843427790c08cb000d67", + "name": "Obrien Quarsh Panaka updated" + } + }, + { + "id": "68ee843427790c08cb000d90", + "object": "line_item", + "type": "sub_total", + "name": "Service Fee Subtotal", + "lineItemObject": "line_item", + "code": "pre_partner_fee_subtotal", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:16+00:00", + "amount": 10, + "price": null, + "quantity": null, + "due": 0, + "collected": 0, + "multiplier": 1, + "template": { + "id": "68ee76c9738f2b9fd1078fc3" + }, + "templateCode": "pre_partner_fee_subtotal" + }, + { + "id": "68ee843427790c08cb000d92", + "object": "line_item", + "type": "processing_fee", + "name": "Processing Fees", + "lineItemObject": "line_item", + "code": "processing_fees", + "destination": "xola", + "visibility": "none", + "seller": { + "id": "68ee76c38d57715e1204bdae" + }, + "visible": false, + "system": true, + "includeInAmount": false, + "createdAt": "2025-10-14T17:11:16+00:00", + "updatedAt": "2025-10-14T17:11:18+00:00", + "amount": 0.54, + "price": null, + "quantity": null, + "due": 0, + "collected": 0.54, + "multiplier": 1, + "template": { + "id": "68ee76c38d57715e1204be3b" + }, + "templateCode": "processing_fees" + } + ], + "updatedBy": { + "id": "4f293e17536e86bc66000000" + } + }, + audit: { + "items": { + "00": { + "arrivalDate": { + "new": "2025-11-17", + "old": "2025-11-16" + } + } + } + }, +}; + From b078d0eee9c078f51569291280b5e8d564492b44 Mon Sep 17 00:00:00 2001 From: Anush Ramani Date: Wed, 5 Nov 2025 13:09:44 -0800 Subject: [PATCH 2/3] Fixed indentation and removed `dedupe` since Xola webhooks do not support retries --- .../purchase-canceled-instant.mjs | 43 +++++++++---------- .../purchase-created-instant.mjs | 1 - .../purchase-updated-instant.mjs | 1 - 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs b/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs index 7f9efffa5eb22..05b86e3a2f773 100644 --- a/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs +++ b/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs @@ -2,27 +2,26 @@ import common from "../common/webhook.mjs"; import sampleEmit from "./test-event.mjs"; export default { - ...common, - key: "xola-purchase-canceled-instant", - name: "Purchase Canceled (Instant)", - description: "Emit new event when a purchase is canceled.", - version: "0.0.1", - type: "source", - dedupe: "unique", - methods: { - ...common.methods, - getEventName() { - return "purchase.cancel"; - }, - generateMeta(body) { - const { data } = body; - const ts = Date.now(); - return { - id: `${data.id}-${ts}`, - summary: `Purchase Canceled ${data.id}`, - ts, - }; - }, + ...common, + key: "xola-purchase-canceled-instant", + name: "Purchase Canceled (Instant)", + description: "Emit new event when a purchase is canceled.", + version: "0.0.1", + type: "source", + methods: { + ...common.methods, + getEventName() { + return "purchase.cancel"; }, - sampleEmit, + generateMeta(body) { + const { data } = body; + const ts = Date.now(); + return { + id: `${data.id}-${ts}`, + summary: `Purchase Canceled ${data.id}`, + ts, + }; + }, + }, + sampleEmit, }; diff --git a/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs b/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs index 4597328ad7c73..591503b537ae5 100644 --- a/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs +++ b/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs @@ -8,7 +8,6 @@ export default { description: "Emit new event when a new purchase is created.", version: "0.0.1", type: "source", - dedupe: "unique", methods: { ...common.methods, getEventName() { diff --git a/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs b/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs index d52e6747ce089..2984de79714cf 100644 --- a/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs +++ b/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs @@ -8,7 +8,6 @@ export default { description: "Emit new event when a purchase is updated.", version: "0.0.1", type: "source", - dedupe: "unique", methods: { ...common.methods, getEventName() { From e6ed2e94a3145c08de2c315ce3d3dd490fff13e4 Mon Sep 17 00:00:00 2001 From: Anush Ramani Date: Wed, 5 Nov 2025 13:16:22 -0800 Subject: [PATCH 3/3] Removed event id since Xola webhooks are not idempotent --- .../purchase-canceled-instant/purchase-canceled-instant.mjs | 4 +--- .../purchase-created-instant/purchase-created-instant.mjs | 1 - .../purchase-updated-instant/purchase-updated-instant.mjs | 4 +--- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs b/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs index 05b86e3a2f773..4eba84596f513 100644 --- a/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs +++ b/components/xola/sources/purchase-canceled-instant/purchase-canceled-instant.mjs @@ -15,11 +15,9 @@ export default { }, generateMeta(body) { const { data } = body; - const ts = Date.now(); return { - id: `${data.id}-${ts}`, summary: `Purchase Canceled ${data.id}`, - ts, + ts: Date.now(), }; }, }, diff --git a/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs b/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs index 591503b537ae5..a449e3e6d3957 100644 --- a/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs +++ b/components/xola/sources/purchase-created-instant/purchase-created-instant.mjs @@ -16,7 +16,6 @@ export default { generateMeta(body) { const { data } = body; return { - id: data.id, summary: `New Purchase ${data.id}`, ts: Date.now(), }; diff --git a/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs b/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs index 2984de79714cf..3fd729e49b5df 100644 --- a/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs +++ b/components/xola/sources/purchase-updated-instant/purchase-updated-instant.mjs @@ -15,11 +15,9 @@ export default { }, generateMeta(body) { const { data } = body; - const ts = Date.now(); return { - id: `${data.id}-${ts}`, summary: `Purchase Updated ${data.id}`, - ts, + ts: Date.now(), }; }, },