Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"extends": ["../../../../.eslintrc.json"],
|
||||
"ignorePatterns": ["!**/*"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.ts", "*.tsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-square
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Running lint
|
||||
|
||||
Run `nx lint pieces-square` to execute the lint via [ESLint](https://eslint.org/).
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@activepieces/piece-square",
|
||||
"version": "0.3.12"
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"name": "pieces-square",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/square/src",
|
||||
"projectType": "library",
|
||||
"implicitDependencies": [
|
||||
"pieces-common",
|
||||
"pieces-framework",
|
||||
"shared"
|
||||
],
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/square",
|
||||
"tsConfig": "packages/pieces/community/square/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/square/package.json",
|
||||
"main": "packages/pieces/community/square/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/square/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/square/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"prebuild",
|
||||
"^build"
|
||||
]
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
],
|
||||
"options": {
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
}
|
||||
},
|
||||
"prebuild": {
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
],
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/square",
|
||||
"command": "bun install --no-save --silent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Zahlungslösungen für jedes Unternehmen",
|
||||
"Authentication": "Authentifizierung",
|
||||
"New Order": "Neue Bestellung",
|
||||
"Order Updated": "Bestellung aktualisiert",
|
||||
"New Customer": "Neuer Kunde",
|
||||
"Customer Updated": "Kunde aktualisiert",
|
||||
"New Appointment": "Neuer Termin",
|
||||
"New Payment": "Neue Zahlung",
|
||||
"New Invoice": "Neue Rechnung",
|
||||
"Triggered when a new order is created": "Wird ausgelöst, wenn eine neue Bestellung erstellt wird",
|
||||
"Triggered when an order is updated": "Wird ausgelöst, wenn eine Bestellung aktualisiert wird",
|
||||
"Triggered when a customer is created": "Wird ausgelöst, wenn ein Kunde erstellt wird",
|
||||
"Triggered when a customer is updated": "Wird ausgelöst, wenn ein Kunde aktualisiert wird",
|
||||
"Triggered when a new appointment is created": "Wird ausgelöst, wenn ein neuer Termin erstellt wird",
|
||||
"Triggered when a new payment is created": "Wird ausgelöst, wenn eine neue Zahlung erstellt wird",
|
||||
"Triggered when a new invoice is created": "Wird ausgelöst, wenn eine neue Rechnung erstellt wird"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Soluciones de pago para cada negocio",
|
||||
"Authentication": "Autenticación",
|
||||
"New Order": "Nuevo pedido",
|
||||
"Order Updated": "Pedido actualizado",
|
||||
"New Customer": "Nuevo cliente",
|
||||
"Customer Updated": "Cliente actualizado",
|
||||
"New Appointment": "Nueva cita",
|
||||
"New Payment": "Nuevo pago",
|
||||
"New Invoice": "Nueva factura",
|
||||
"Triggered when a new order is created": "Activado cuando se crea un nuevo pedido",
|
||||
"Triggered when an order is updated": "Activado cuando se actualiza un pedido",
|
||||
"Triggered when a customer is created": "Se activa cuando se crea un cliente",
|
||||
"Triggered when a customer is updated": "Se activa cuando un cliente es actualizado",
|
||||
"Triggered when a new appointment is created": "Se activa cuando se crea una nueva cita",
|
||||
"Triggered when a new payment is created": "Se activa cuando se crea un nuevo pago",
|
||||
"Triggered when a new invoice is created": "Activado cuando se crea una nueva factura"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Solutions de paiement pour chaque entreprise",
|
||||
"Authentication": "Authentification",
|
||||
"New Order": "Nouvelle commande",
|
||||
"Order Updated": "Commande mise à jour",
|
||||
"New Customer": "Nouveau client",
|
||||
"Customer Updated": "Client mis à jour",
|
||||
"New Appointment": "Nouveau Rendez-vous",
|
||||
"New Payment": "Nouveau paiement",
|
||||
"New Invoice": "Nouvelle facture",
|
||||
"Triggered when a new order is created": "Déclenché lorsqu'une nouvelle commande est créée",
|
||||
"Triggered when an order is updated": "Déclenché lorsqu'une commande est mise à jour",
|
||||
"Triggered when a customer is created": "Déclenché lorsqu'un client est créé",
|
||||
"Triggered when a customer is updated": "Déclenché lorsqu'un client est mis à jour",
|
||||
"Triggered when a new appointment is created": "Déclenché lorsqu'un nouveau rendez-vous est créé",
|
||||
"Triggered when a new payment is created": "Déclenché lorsqu'un nouveau paiement est créé",
|
||||
"Triggered when a new invoice is created": "Déclenché lorsqu'une nouvelle facture est créée"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "すべての企業に対する支払いソリューション",
|
||||
"Authentication": "認証",
|
||||
"New Order": "新規注文",
|
||||
"Order Updated": "注文が更新されました",
|
||||
"New Customer": "新規顧客",
|
||||
"Customer Updated": "顧客の更新",
|
||||
"New Appointment": "新しい予約",
|
||||
"New Payment": "新しい支払い",
|
||||
"New Invoice": "新しい請求書",
|
||||
"Triggered when a new order is created": "新しい注文が作成されたときにトリガーされます",
|
||||
"Triggered when an order is updated": "注文が更新されたときにトリガーされます",
|
||||
"Triggered when a customer is created": "顧客が作成されたときにトリガーされます",
|
||||
"Triggered when a customer is updated": "顧客が更新されたときにトリガーされます",
|
||||
"Triggered when a new appointment is created": "新しい予定が作成されたときにトリガーされます",
|
||||
"Triggered when a new payment is created": "新しい支払いが作成されたときにトリガーされます",
|
||||
"Triggered when a new invoice is created": "新しい請求書が作成されたときにトリガーされます"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Betalingsoplossingen voor elk bedrijf",
|
||||
"Authentication": "Authenticatie",
|
||||
"New Order": "Nieuwe bestelling",
|
||||
"Order Updated": "Order bijgewerkt",
|
||||
"New Customer": "Nieuwe klant",
|
||||
"Customer Updated": "Klant bijgewerkt",
|
||||
"New Appointment": "Nieuwe afspraak",
|
||||
"New Payment": "Nieuwe betaling",
|
||||
"New Invoice": "Nieuwe factuur",
|
||||
"Triggered when a new order is created": "Uitgelokt wanneer een nieuwe order wordt aangemaakt",
|
||||
"Triggered when an order is updated": "Uitgelokt wanneer een bestelling wordt bijgewerkt",
|
||||
"Triggered when a customer is created": "Uitgelokt wanneer een klant wordt aangemaakt",
|
||||
"Triggered when a customer is updated": "Uitgelokt wanneer een klant wordt bijgewerkt",
|
||||
"Triggered when a new appointment is created": "Uitgelokt wanneer een nieuwe afspraak wordt gemaakt",
|
||||
"Triggered when a new payment is created": "Uitgelokt wanneer een nieuwe betaling wordt aangemaakt",
|
||||
"Triggered when a new invoice is created": "Uitgelokt wanneer een nieuwe factuur is aangemaakt"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Soluções de pagamento para cada empresa",
|
||||
"Authentication": "Autenticação",
|
||||
"New Order": "Novo Pedido",
|
||||
"Order Updated": "Pedido atualizado",
|
||||
"New Customer": "Novo Cliente",
|
||||
"Customer Updated": "Cliente atualizado",
|
||||
"New Appointment": "Novo Compromisso",
|
||||
"New Payment": "Novo pagamento",
|
||||
"New Invoice": "Nova fatura",
|
||||
"Triggered when a new order is created": "Acionada quando uma nova ordem é criada",
|
||||
"Triggered when an order is updated": "Acionada quando uma ordem é atualizada",
|
||||
"Triggered when a customer is created": "Acionada quando um cliente é criado",
|
||||
"Triggered when a customer is updated": "Acionada quando um cliente é atualizado",
|
||||
"Triggered when a new appointment is created": "Acionada quando uma nova nomeação é criada",
|
||||
"Triggered when a new payment is created": "Acionada quando um novo pagamento é criado",
|
||||
"Triggered when a new invoice is created": "Acionada quando uma nova fatura é criada"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Square": "Квадрат",
|
||||
"Payment solutions for every business": "Платежные решения для каждого бизнеса",
|
||||
"Authentication": "Проверка подлинности",
|
||||
"New Order": "Новый заказ",
|
||||
"Order Updated": "Заказ обновлен",
|
||||
"New Customer": "Новый клиент",
|
||||
"Customer Updated": "Клиент обновлен",
|
||||
"New Appointment": "Новая встреча",
|
||||
"New Payment": "Новый платеж",
|
||||
"New Invoice": "Новый счет",
|
||||
"Triggered when a new order is created": "Срабатывает при создании нового заказа",
|
||||
"Triggered when an order is updated": "Срабатывает при обновлении заказа",
|
||||
"Triggered when a customer is created": "Срабатывает при создании клиента",
|
||||
"Triggered when a customer is updated": "Срабатывает при обновлении клиента",
|
||||
"Triggered when a new appointment is created": "Срабатывает при создании новой записи",
|
||||
"Triggered when a new payment is created": "Срабатывает при создании нового платежа",
|
||||
"Triggered when a new invoice is created": "Срабатывает при создании новой счета"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Payment solutions for every business",
|
||||
"Authentication": "Authentication",
|
||||
"New Order": "New Order",
|
||||
"Order Updated": "Order Updated",
|
||||
"New Customer": "New Customer",
|
||||
"Customer Updated": "Customer Updated",
|
||||
"New Appointment": "New Appointment",
|
||||
"New Payment": "New Payment",
|
||||
"New Invoice": "New Invoice",
|
||||
"Triggered when a new order is created": "Triggered when a new order is created",
|
||||
"Triggered when an order is updated": "Triggered when an order is updated",
|
||||
"Triggered when a customer is created": "Triggered when a customer is created",
|
||||
"Triggered when a customer is updated": "Triggered when a customer is updated",
|
||||
"Triggered when a new appointment is created": "Triggered when a new appointment is created",
|
||||
"Triggered when a new payment is created": "Triggered when a new payment is created",
|
||||
"Triggered when a new invoice is created": "Triggered when a new invoice is created"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Square": "Square",
|
||||
"Payment solutions for every business": "Payment solutions for every business",
|
||||
"Authentication": "Authentication",
|
||||
"New Order": "New Order",
|
||||
"Order Updated": "Order Updated",
|
||||
"New Customer": "New Customer",
|
||||
"Customer Updated": "Customer Updated",
|
||||
"New Appointment": "New Appointment",
|
||||
"New Payment": "New Payment",
|
||||
"New Invoice": "New Invoice",
|
||||
"Triggered when a new order is created": "Triggered when a new order is created",
|
||||
"Triggered when an order is updated": "Triggered when an order is updated",
|
||||
"Triggered when a customer is created": "Triggered when a customer is created",
|
||||
"Triggered when a customer is updated": "Triggered when a customer is updated",
|
||||
"Triggered when a new appointment is created": "Triggered when a new appointment is created",
|
||||
"Triggered when a new payment is created": "Triggered when a new payment is created",
|
||||
"Triggered when a new invoice is created": "Triggered when a new invoice is created"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Payment solutions for every business": "Payment solutions for every business",
|
||||
"Authentication": "认证",
|
||||
"New Order": "New Order",
|
||||
"Order Updated": "Order Updated",
|
||||
"New Customer": "New Customer",
|
||||
"Customer Updated": "Customer Updated",
|
||||
"New Appointment": "New Appointment",
|
||||
"New Payment": "New Payment",
|
||||
"New Invoice": "New Invoice",
|
||||
"Triggered when a new order is created": "Triggered when a new order is created",
|
||||
"Triggered when an order is updated": "Triggered when an order is updated",
|
||||
"Triggered when a customer is created": "Triggered when a customer is created",
|
||||
"Triggered when a customer is updated": "Triggered when a customer is updated",
|
||||
"Triggered when a new appointment is created": "Triggered when a new appointment is created",
|
||||
"Triggered when a new payment is created": "Triggered when a new payment is created",
|
||||
"Triggered when a new invoice is created": "Triggered when a new invoice is created"
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
import { PieceAuth, createPiece } from '@activepieces/pieces-framework';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import crypto from 'crypto';
|
||||
import { triggers } from './lib/triggers';
|
||||
|
||||
export const squareAuth = PieceAuth.OAuth2({
|
||||
description: 'Authentication',
|
||||
authUrl: 'https://connect.squareup.com/oauth2/authorize',
|
||||
tokenUrl: 'https://connect.squareup.com/oauth2/token',
|
||||
required: true,
|
||||
scope: [
|
||||
'MERCHANT_PROFILE_READ',
|
||||
'CUSTOMERS_READ',
|
||||
'CUSTOMERS_WRITE',
|
||||
'ITEMS_READ',
|
||||
'ITEMS_WRITE',
|
||||
'ORDERS_READ',
|
||||
'ORDERS_WRITE',
|
||||
'PAYMENTS_READ',
|
||||
'INVOICES_READ',
|
||||
'APPOINTMENTS_READ',
|
||||
'APPOINTMENTS_WRITE',
|
||||
],
|
||||
});
|
||||
|
||||
export const square = createPiece({
|
||||
displayName: 'Square',
|
||||
description: 'Payment solutions for every business',
|
||||
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/square.png',
|
||||
categories: [PieceCategory.COMMERCE],
|
||||
authors: ["kishanprmr","MoShizzle","khaledmashaly","abuaboud"],
|
||||
auth: squareAuth,
|
||||
events: {
|
||||
verify: ({ webhookSecret, payload, appWebhookUrl }) => {
|
||||
const signature = payload.headers['x-square-hmacsha256-signature'];
|
||||
const hmac = crypto.createHmac('sha256', webhookSecret as string);
|
||||
hmac.update(appWebhookUrl + payload.rawBody);
|
||||
const hash = hmac.digest('base64');
|
||||
return hash === signature;
|
||||
},
|
||||
parseAndReply: ({ payload }) => {
|
||||
const payloadBody = payload.body as Payload | undefined;
|
||||
return {
|
||||
event: payloadBody?.type,
|
||||
identifierValue: payloadBody?.merchant_id,
|
||||
};
|
||||
},
|
||||
},
|
||||
actions: [],
|
||||
triggers,
|
||||
});
|
||||
|
||||
type Payload = {
|
||||
type: string;
|
||||
merchant_id: string;
|
||||
};
|
||||
@@ -0,0 +1,401 @@
|
||||
import { squareAuth } from '../../';
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
|
||||
const triggerData = [
|
||||
{
|
||||
name: 'new_order',
|
||||
displayName: 'New Order',
|
||||
description: 'Triggered when a new order is created',
|
||||
event: 'order.created',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
type: 'order.created',
|
||||
event_id: '03441e3a-47f1-49a7-a64c-55ab26703f8d',
|
||||
created_at: '2023-03-14T01:42:54.984089903Z',
|
||||
data: {
|
||||
type: 'order',
|
||||
id: 'eA3vssLHKJrv9H0IdJCM3gNqfdcZY',
|
||||
object: {
|
||||
order_created: {
|
||||
created_at: '2020-04-16T23:14:26.129Z',
|
||||
location_id: 'FPYCBCHYMXFK1',
|
||||
order_id: 'eA3vssLHKJrv9H0IdJCM3gNqfdcZY',
|
||||
state: 'OPEN',
|
||||
version: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'order_updated',
|
||||
displayName: 'Order Updated',
|
||||
description: 'Triggered when an order is updated',
|
||||
event: 'order.updated',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
type: 'order.updated',
|
||||
event_id: '7e1d596e-ebf1-443d-87aa-a5f397bce1e5',
|
||||
created_at: '2023-03-14T01:56:10.454184371Z',
|
||||
data: {
|
||||
type: 'order',
|
||||
id: 'eA3vssLHKJrv9H0IdJCM3gNqfdcZY',
|
||||
object: {
|
||||
order_updated: {
|
||||
created_at: '2020-04-16T23:14:26.129Z',
|
||||
location_id: 'FPYCBCHYMXFK1',
|
||||
order_id: 'eA3vssLHKJrv9H0IdJCM3gNqfdcZY',
|
||||
state: 'OPEN',
|
||||
updated_at: '2020-04-16T23:14:26.359Z',
|
||||
version: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'new_customer',
|
||||
displayName: 'New Customer',
|
||||
description: 'Triggered when a customer is created',
|
||||
event: 'customer.created',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
type: 'customer.created',
|
||||
event_id: '2985c7c7-2ccc-409e-8aba-998684732cab',
|
||||
created_at: '2023-03-14T01:57:28.679389163Z',
|
||||
data: {
|
||||
type: 'customer',
|
||||
id: 'QPTXM8PQNX3Q726ZYHPMNP46XC',
|
||||
object: {
|
||||
customer: {
|
||||
address: {
|
||||
address_line_1: '1018 40th Street',
|
||||
administrative_district_level_1: 'CA',
|
||||
locality: 'Oakland',
|
||||
postal_code: '94608',
|
||||
},
|
||||
birthday: '1962-03-04',
|
||||
created_at: '2022-11-09T21:23:25.519Z',
|
||||
creation_source: 'DIRECTORY',
|
||||
email_address: 'jenkins+smorly@squareup.com',
|
||||
family_name: 'Smorly',
|
||||
given_name: 'Jenkins',
|
||||
group_ids: ['JGJCW9S0G68NE.APPOINTMENTS'],
|
||||
id: 'QPTXM8PQNX3Q726ZYHPMNP46XC',
|
||||
phone_number: '+12126668929',
|
||||
preferences: {
|
||||
email_unsubscribed: false,
|
||||
},
|
||||
updated_at: '2022-11-09T21:23:25Z',
|
||||
version: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'customer_updated',
|
||||
displayName: 'Customer Updated',
|
||||
description: 'Triggered when a customer is updated',
|
||||
event: 'customer.updated',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
type: 'customer.updated',
|
||||
event_id: 'f6e89469-de2f-4ae4-84c7-83a95681759a',
|
||||
created_at: '2023-03-14T01:58:22.076902762Z',
|
||||
data: {
|
||||
type: 'customer',
|
||||
id: 'A0AP25A6SCVTH8JES9BX01GXM4',
|
||||
object: {
|
||||
customer: {
|
||||
created_at: '2022-07-09T18:23:01.795Z',
|
||||
creation_source: 'THIRD_PARTY',
|
||||
email_address: 'jenkins+smorly@squareup.com',
|
||||
family_name: 'Smorly',
|
||||
given_name: 'Jenkins',
|
||||
id: 'A0AP25A6SCVTH8JES9BX01GXM4',
|
||||
phone_number: '+13477947111',
|
||||
preferences: {
|
||||
email_unsubscribed: false,
|
||||
},
|
||||
updated_at: '2022-11-09T21:38:30Z',
|
||||
version: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'new_appointment',
|
||||
displayName: 'New Appointment',
|
||||
description: 'Triggered when a new appointment is created',
|
||||
event: 'booking.created',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
location_id: 'ES0RJRZYEC39A',
|
||||
type: 'invoice.created',
|
||||
event_id: 'ee17dc22-5e38-4aba-ad15-af8e25adcc93',
|
||||
created_at: '2023-03-14T02:01:46.497709569Z',
|
||||
data: {
|
||||
type: 'invoice',
|
||||
id: 'inv:0-ChCHu2mZEabLeeHahQnXDjZQECY',
|
||||
object: {
|
||||
invoice: {
|
||||
accepted_payment_methods: {
|
||||
bank_account: false,
|
||||
buy_now_pay_later: false,
|
||||
card: true,
|
||||
square_gift_card: false,
|
||||
},
|
||||
created_at: '2020-06-18T17:45:13Z',
|
||||
custom_fields: [
|
||||
{
|
||||
label: 'Event Reference Number',
|
||||
placement: 'ABOVE_LINE_ITEMS',
|
||||
value: 'Ref. #1234',
|
||||
},
|
||||
{
|
||||
label: 'Terms of Service',
|
||||
placement: 'BELOW_LINE_ITEMS',
|
||||
value: 'The terms of service are...',
|
||||
},
|
||||
],
|
||||
delivery_method: 'EMAIL',
|
||||
description: 'We appreciate your business!',
|
||||
id: 'inv:0-ChCHu2mZEabLeeHahQnXDjZQECY',
|
||||
invoice_number: 'inv-100',
|
||||
location_id: 'ES0RJRZYEC39A',
|
||||
order_id: 'CAISENgvlJ6jLWAzERDzjyHVybY',
|
||||
payment_requests: [
|
||||
{
|
||||
automatic_payment_source: 'NONE',
|
||||
computed_amount_money: {
|
||||
amount: 10000,
|
||||
currency: 'USD',
|
||||
},
|
||||
due_date: '2030-01-24',
|
||||
reminders: [
|
||||
{
|
||||
message: 'Your invoice is due tomorrow',
|
||||
relative_scheduled_days: -1,
|
||||
status: 'PENDING',
|
||||
uid: 'beebd363-e47f-4075-8785-c235aaa7df11',
|
||||
},
|
||||
],
|
||||
request_type: 'BALANCE',
|
||||
tipping_enabled: true,
|
||||
total_completed_amount_money: {
|
||||
amount: 0,
|
||||
currency: 'USD',
|
||||
},
|
||||
uid: '2da7964f-f3d2-4f43-81e8-5aa220bf3355',
|
||||
},
|
||||
],
|
||||
primary_recipient: {
|
||||
customer_id: 'JDKYHBWT1D4F8MFH63DBMEN8Y4',
|
||||
email_address: 'Amelia.Earhart@example.com',
|
||||
family_name: 'Earhart',
|
||||
given_name: 'Amelia',
|
||||
phone_number: '1-212-555-4240',
|
||||
},
|
||||
sale_or_service_date: '2030-01-24',
|
||||
scheduled_at: '2030-01-13T10:00:00Z',
|
||||
status: 'DRAFT',
|
||||
store_payment_method_enabled: false,
|
||||
timezone: 'America/Los_Angeles',
|
||||
title: 'Event Planning Services',
|
||||
updated_at: '2020-06-18T17:45:13Z',
|
||||
version: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'new_payment',
|
||||
displayName: 'New Payment',
|
||||
description: 'Triggered when a new payment is created',
|
||||
event: 'payment.created',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
type: 'payment.created',
|
||||
event_id: '11fb274d-6882-417a-879c-faec367e0665',
|
||||
created_at: '2023-03-14T02:00:56.000119371Z',
|
||||
data: {
|
||||
type: 'payment',
|
||||
id: 'KkAkhdMsgzn59SM8A89WgKwekxLZY',
|
||||
object: {
|
||||
payment: {
|
||||
amount_money: {
|
||||
amount: 100,
|
||||
currency: 'USD',
|
||||
},
|
||||
approved_money: {
|
||||
amount: 100,
|
||||
currency: 'USD',
|
||||
},
|
||||
capabilities: [
|
||||
'EDIT_TIP_AMOUNT',
|
||||
'EDIT_TIP_AMOUNT_UP',
|
||||
'EDIT_TIP_AMOUNT_DOWN',
|
||||
],
|
||||
card_details: {
|
||||
avs_status: 'AVS_ACCEPTED',
|
||||
card: {
|
||||
bin: '540988',
|
||||
card_brand: 'MASTERCARD',
|
||||
card_type: 'CREDIT',
|
||||
exp_month: 11,
|
||||
exp_year: 2022,
|
||||
fingerprint:
|
||||
'sq-1-Tvruf3vPQxlvI6n0IcKYfBukrcv6IqWr8UyBdViWXU2yzGn5VMJvrsHMKpINMhPmVg',
|
||||
last_4: '9029',
|
||||
prepaid_type: 'NOT_PREPAID',
|
||||
},
|
||||
card_payment_timeline: {
|
||||
authorized_at: '2020-11-22T21:16:51.198Z',
|
||||
},
|
||||
cvv_status: 'CVV_ACCEPTED',
|
||||
entry_method: 'KEYED',
|
||||
statement_description: 'SQ *DEFAULT TEST ACCOUNT',
|
||||
status: 'AUTHORIZED',
|
||||
},
|
||||
created_at: '2020-11-22T21:16:51.086Z',
|
||||
delay_action: 'CANCEL',
|
||||
delay_duration: 'PT168H',
|
||||
delayed_until: '2020-11-29T21:16:51.086Z',
|
||||
id: 'hYy9pRFVxpDsO1FB05SunFWUe9JZY',
|
||||
location_id: 'S8GWD5R9QB376',
|
||||
order_id: '03O3USaPaAaFnI6kkwB1JxGgBsUZY',
|
||||
receipt_number: 'hYy9',
|
||||
risk_evaluation: {
|
||||
created_at: '2020-11-22T21:16:51.198Z',
|
||||
risk_level: 'NORMAL',
|
||||
},
|
||||
source_type: 'CARD',
|
||||
status: 'APPROVED',
|
||||
total_money: {
|
||||
amount: 100,
|
||||
currency: 'USD',
|
||||
},
|
||||
updated_at: '2020-11-22T21:16:51.198Z',
|
||||
version_token: 'FfQhQJf9r3VSQIgyWBk1oqhIwiznLwVwJbVVA0bdyEv6o',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'new_invoice',
|
||||
displayName: 'New Invoice',
|
||||
description: 'Triggered when a new invoice is created',
|
||||
event: 'invoice.created',
|
||||
sampleData: {
|
||||
merchant_id: 'MLTZ79VE64YTN',
|
||||
location_id: 'ES0RJRZYEC39A',
|
||||
type: 'invoice.created',
|
||||
event_id: 'ee17dc22-5e38-4aba-ad15-af8e25adcc93',
|
||||
created_at: '2023-03-14T02:01:46.497709569Z',
|
||||
data: {
|
||||
type: 'invoice',
|
||||
id: 'inv:0-ChCHu2mZEabLeeHahQnXDjZQECY',
|
||||
object: {
|
||||
invoice: {
|
||||
accepted_payment_methods: {
|
||||
bank_account: false,
|
||||
buy_now_pay_later: false,
|
||||
card: true,
|
||||
square_gift_card: false,
|
||||
},
|
||||
created_at: '2020-06-18T17:45:13Z',
|
||||
custom_fields: [
|
||||
{
|
||||
label: 'Event Reference Number',
|
||||
placement: 'ABOVE_LINE_ITEMS',
|
||||
value: 'Ref. #1234',
|
||||
},
|
||||
{
|
||||
label: 'Terms of Service',
|
||||
placement: 'BELOW_LINE_ITEMS',
|
||||
value: 'The terms of service are...',
|
||||
},
|
||||
],
|
||||
delivery_method: 'EMAIL',
|
||||
description: 'We appreciate your business!',
|
||||
id: 'inv:0-ChCHu2mZEabLeeHahQnXDjZQECY',
|
||||
invoice_number: 'inv-100',
|
||||
location_id: 'ES0RJRZYEC39A',
|
||||
order_id: 'CAISENgvlJ6jLWAzERDzjyHVybY',
|
||||
payment_requests: [
|
||||
{
|
||||
automatic_payment_source: 'NONE',
|
||||
computed_amount_money: {
|
||||
amount: 10000,
|
||||
currency: 'USD',
|
||||
},
|
||||
due_date: '2030-01-24',
|
||||
reminders: [
|
||||
{
|
||||
message: 'Your invoice is due tomorrow',
|
||||
relative_scheduled_days: -1,
|
||||
status: 'PENDING',
|
||||
uid: 'beebd363-e47f-4075-8785-c235aaa7df11',
|
||||
},
|
||||
],
|
||||
request_type: 'BALANCE',
|
||||
tipping_enabled: true,
|
||||
total_completed_amount_money: {
|
||||
amount: 0,
|
||||
currency: 'USD',
|
||||
},
|
||||
uid: '2da7964f-f3d2-4f43-81e8-5aa220bf3355',
|
||||
},
|
||||
],
|
||||
primary_recipient: {
|
||||
customer_id: 'JDKYHBWT1D4F8MFH63DBMEN8Y4',
|
||||
email_address: 'Amelia.Earhart@example.com',
|
||||
family_name: 'Earhart',
|
||||
given_name: 'Amelia',
|
||||
phone_number: '1-212-555-4240',
|
||||
},
|
||||
sale_or_service_date: '2030-01-24',
|
||||
scheduled_at: '2030-01-13T10:00:00Z',
|
||||
status: 'DRAFT',
|
||||
store_payment_method_enabled: false,
|
||||
timezone: 'America/Los_Angeles',
|
||||
title: 'Event Planning Services',
|
||||
updated_at: '2020-06-18T17:45:13Z',
|
||||
version: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
export const triggers = triggerData.map((trigger) =>
|
||||
createTrigger({
|
||||
auth: squareAuth,
|
||||
name: trigger.name,
|
||||
displayName: trigger.displayName,
|
||||
description: trigger.description,
|
||||
props: {},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: trigger.sampleData,
|
||||
onEnable: async (context) => {
|
||||
context.app.createListeners({
|
||||
events: [trigger.event],
|
||||
identifierValue: context.auth.data['merchant_id'],
|
||||
});
|
||||
},
|
||||
onDisable: async () => {
|
||||
// Ignored
|
||||
},
|
||||
test: async () => {
|
||||
return [trigger.sampleData];
|
||||
},
|
||||
run: async (context) => {
|
||||
return [context.payload.body];
|
||||
},
|
||||
})
|
||||
);
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
],
|
||||
"compilerOptions": {
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user