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-kizeo-forms
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Running lint
|
||||
|
||||
Run `nx lint pieces-kizeo-forms` to execute the lint via [ESLint](https://eslint.org/).
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@activepieces/piece-kizeo-forms",
|
||||
"version": "0.3.17"
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "pieces-kizeo-forms",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/kizeo-forms/src",
|
||||
"projectType": "library",
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/kizeo-forms",
|
||||
"tsConfig": "packages/pieces/community/kizeo-forms/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/kizeo-forms/package.json",
|
||||
"main": "packages/pieces/community/kizeo-forms/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/kizeo-forms/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/kizeo-forms/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/kizeo-forms",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Eigene mobile Formulare erstellen",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nUm sich mit Kizeo-Formularen zu verbinden, benötigst du ein API-Token vom Support-Team.\n",
|
||||
"Get Data Definition": "Datendefinition erhalten",
|
||||
"Push Data": "Push-Daten",
|
||||
"Download Standard PDF": "Standard PDF herunterladen",
|
||||
"Download custom export in its original format": "Eigenen Export im Originalformat herunterladen",
|
||||
"Get List Definition": "Liste Definition abrufen",
|
||||
"Get List Item": "Listenelement abrufen",
|
||||
"Get All List Items": "Alle Listenelemente abrufen",
|
||||
"Create List Item": "Listenelement erstellen",
|
||||
"Edit List Item": "Listenelement bearbeiten",
|
||||
"Delete List Item": "Listenelement löschen",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Get the definition of a data": "Datendefinition abrufen",
|
||||
"Push a data to a form": "Daten in ein Formular schieben",
|
||||
"Get PDF data of a form": "PDF-Daten eines Formulars abrufen",
|
||||
"Download a custom export in its original format": "Eigenen Export im Originalformat herunterladen",
|
||||
"Get the definition of a list": "Erhalten Sie die Definition einer Liste",
|
||||
"Get a specific item from a list": "Erhalte ein bestimmtes Element aus einer Liste",
|
||||
"Get all items from a specific list": "Alle Elemente aus einer bestimmten Liste holen",
|
||||
"Create a new list item in Kizeo Forms": "Neues Listenelement in Kizeo-Formularen erstellen",
|
||||
"Edit a specific item in a list": "Ein bestimmtes Element in einer Liste bearbeiten",
|
||||
"Delete a specific item from a list": "Ein bestimmtes Element aus einer Liste löschen",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"Form": "Formular",
|
||||
"Data Id": "Daten-Id",
|
||||
"User": "Benutzer",
|
||||
"Export": "Export",
|
||||
"Export in PDF": "Als PDF exportieren",
|
||||
"List": "Liste",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Suche",
|
||||
"Offset": "Versatz",
|
||||
"Limit": "Limit",
|
||||
"Sort": "Sortieren",
|
||||
"Direction": "Richtung",
|
||||
"Item Label": "Artikelbezeichnung",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopfzeilen",
|
||||
"Query Parameters": "Abfrageparameter",
|
||||
"Body": "Körper",
|
||||
"Response is Binary ?": "Antwort ist binär?",
|
||||
"No Error on Failure": "Kein Fehler bei Fehler",
|
||||
"Timeout (in seconds)": "Timeout (in Sekunden)",
|
||||
"The ID of the item you want to retrieve from the list": "Die ID des Artikels, das Sie von der Liste abrufen möchten",
|
||||
"Pattern to search": "Muster zum Suchen",
|
||||
"Max number of results to return": "Maximale Anzahl der zurückzugebenden Ergebnisse",
|
||||
"Target for sorting": "Sortierungsziel",
|
||||
"Sorting: asc or desc": "Sortierung: asc oder desc",
|
||||
"Label for the new list item": "Beschriftung für das neue Listenelement",
|
||||
"The ID of the item to edit": "Die ID des zu bearbeitenden Elements",
|
||||
"The ID of the item to delete": "Die ID des zu löschenden Elements",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
|
||||
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
|
||||
"GET": "ERHALTEN",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "LÖSCHEN",
|
||||
"HEAD": "HEAD",
|
||||
"Event On Data": "Ereignis auf Daten",
|
||||
"Event On Data Deleted": "Ereignis auf Daten gelöscht",
|
||||
"Event On Data Finished": "Ereignis am Datenabschluss",
|
||||
"Event On Data Pushed": "Ereignis auf Daten übertragen",
|
||||
"Event On Data Received": "Ereignis auf Daten empfangen",
|
||||
"Event On Data Updated": "Ereignis auf Daten aktualisiert",
|
||||
"Handle EventOnData events via webhooks": "EventOnData Events über Webhooks bearbeiten",
|
||||
"Handle EventOnData delete event via webhooks": "Ereignis-OnData löschen Ereignis via Webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Ereignis-OnData speichern über Webhooks",
|
||||
"Handle EventOnData push event via webhooks": "EventOnData Push-Event über Webhooks bearbeiten",
|
||||
"Handle EventOnData receive event via webhooks": "Event-OnData über Webhooks erhalten",
|
||||
"Handle EventOnData update event via webhooks": "EventOnData Update-Ereignis über Webhooks bearbeiten",
|
||||
"Output Format": "Ausgabeformat",
|
||||
"Events": "Ereignisse",
|
||||
"Select the output format": "Ausgabeformat auswählen",
|
||||
"Which events will trigger this hook": "Welche Ereignisse diesen Hook auslösen",
|
||||
"Simple format": "Einfaches Format",
|
||||
"Advanced format": "Erweitertes Format",
|
||||
"Data Deleted": "Daten gelöscht",
|
||||
"Data Saved": "Daten gespeichert",
|
||||
"Data Updated": "Daten aktualisiert",
|
||||
"Push Received": "Push empfangen",
|
||||
"Push Send": "Senden push"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Crear formularios móviles personalizados",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n",
|
||||
"Get Data Definition": "Obtener definición de datos",
|
||||
"Push Data": "Enviar datos",
|
||||
"Download Standard PDF": "Descargar PDF estándar",
|
||||
"Download custom export in its original format": "Descargar exportación personalizada en su formato original",
|
||||
"Get List Definition": "Obtener definición de lista",
|
||||
"Get List Item": "Obtener elemento de lista",
|
||||
"Get All List Items": "Obtener todos los artículos de lista",
|
||||
"Create List Item": "Crear elemento de lista",
|
||||
"Edit List Item": "Editar elemento de lista",
|
||||
"Delete List Item": "Eliminar elemento de lista",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Get the definition of a data": "Obtener la definición de datos",
|
||||
"Push a data to a form": "Enviar datos a un formulario",
|
||||
"Get PDF data of a form": "Obtener datos PDF de un formulario",
|
||||
"Download a custom export in its original format": "Descargar una exportación personalizada en su formato original",
|
||||
"Get the definition of a list": "Obtener la definición de una lista",
|
||||
"Get a specific item from a list": "Obtener un elemento específico de una lista",
|
||||
"Get all items from a specific list": "Obtener todos los elementos de una lista específica",
|
||||
"Create a new list item in Kizeo Forms": "Crear un nuevo elemento de lista en formularios Kizeo",
|
||||
"Edit a specific item in a list": "Editar un elemento específico en una lista",
|
||||
"Delete a specific item from a list": "Eliminar un elemento específico de una lista",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"Form": "Forma",
|
||||
"Data Id": "Id de datos",
|
||||
"User": "Usuario",
|
||||
"Export": "Exportar",
|
||||
"Export in PDF": "Exportar en PDF",
|
||||
"List": "Lista",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Buscar",
|
||||
"Offset": "Desplazamiento",
|
||||
"Limit": "Límite",
|
||||
"Sort": "Ordenar",
|
||||
"Direction": "Dirección",
|
||||
"Item Label": "Etiqueta del objeto",
|
||||
"Method": "Método",
|
||||
"Headers": "Encabezados",
|
||||
"Query Parameters": "Parámetros de consulta",
|
||||
"Body": "Cuerpo",
|
||||
"Response is Binary ?": "¿Respuesta es binaria?",
|
||||
"No Error on Failure": "No hay ningún error en fallo",
|
||||
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
|
||||
"The ID of the item you want to retrieve from the list": "El ID del elemento que desea recuperar de la lista",
|
||||
"Pattern to search": "Patrón a buscar",
|
||||
"Max number of results to return": "Número máximo de resultados a devolver",
|
||||
"Target for sorting": "Objetivo para ordenar",
|
||||
"Sorting: asc or desc": "Ordenando: asc o desc",
|
||||
"Label for the new list item": "Etiqueta para el nuevo elemento de la lista",
|
||||
"The ID of the item to edit": "El ID del elemento a editar",
|
||||
"The ID of the item to delete": "El ID del elemento a eliminar",
|
||||
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
|
||||
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
|
||||
"GET": "RECOGER",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "BORRAR",
|
||||
"HEAD": "LIMPIO",
|
||||
"Event On Data": "Evento en datos",
|
||||
"Event On Data Deleted": "Evento al eliminar datos",
|
||||
"Event On Data Finished": "Evento al terminar los datos",
|
||||
"Event On Data Pushed": "Evento al enviar datos",
|
||||
"Event On Data Received": "Evento en Datos Recibidos",
|
||||
"Event On Data Updated": "Evento en datos actualizado",
|
||||
"Handle EventOnData events via webhooks": "Manejar eventos de EventOnData a través de webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Manejar evento EventOnData borrar a través de webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Manejar evento de EventOnData a través de webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Manejar evento push de EventOnData a través de webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Manejar EventOnData recibir evento a través de webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Manejar evento de actualización de EventOnData a través de webhooks",
|
||||
"Output Format": "Formato de salida",
|
||||
"Events": "Eventos",
|
||||
"Select the output format": "Seleccione el formato de salida",
|
||||
"Which events will trigger this hook": "Qué eventos activarán este gancho",
|
||||
"Simple format": "Formato simple",
|
||||
"Advanced format": "Formato avanzado",
|
||||
"Data Deleted": "Datos eliminados",
|
||||
"Data Saved": "Datos guardados",
|
||||
"Data Updated": "Datos Actualizados",
|
||||
"Push Received": "Recibido",
|
||||
"Push Send": "Enviar push"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Créer des formulaires mobiles personnalisés",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nPour vous connecter à Kizeo Forms, vous avez besoin d'un jeton d'API fourni par leur équipe d'assistance.\n",
|
||||
"Get Data Definition": "Obtenir la définition des données",
|
||||
"Push Data": "Données Push",
|
||||
"Download Standard PDF": "Télécharger le PDF standard",
|
||||
"Download custom export in its original format": "Télécharger l'exportation personnalisée dans son format original",
|
||||
"Get List Definition": "Obtenir la définition de la liste",
|
||||
"Get List Item": "Obtenir l'élément de la liste",
|
||||
"Get All List Items": "Obtenir tous les éléments de la liste",
|
||||
"Create List Item": "Créer un élément de liste",
|
||||
"Edit List Item": "Modifier l'élément de la liste",
|
||||
"Delete List Item": "Supprimer l'élément de la liste",
|
||||
"Custom API Call": "Appel API personnalisé",
|
||||
"Get the definition of a data": "Obtenir la définition d'une donnée",
|
||||
"Push a data to a form": "Envoyer une donnée vers un formulaire",
|
||||
"Get PDF data of a form": "Obtenir les données PDF d'un formulaire",
|
||||
"Download a custom export in its original format": "Télécharger un export personnalisé dans son format original",
|
||||
"Get the definition of a list": "Obtenir la définition d'une liste",
|
||||
"Get a specific item from a list": "Récupérer un élément spécifique dans une liste",
|
||||
"Get all items from a specific list": "Récupérer tous les éléments d'une liste spécifique",
|
||||
"Create a new list item in Kizeo Forms": "Créer un nouvel élément de liste dans les formulaires Kizeo",
|
||||
"Edit a specific item in a list": "Modifier un élément spécifique dans une liste",
|
||||
"Delete a specific item from a list": "Supprimer un élément spécifique d'une liste",
|
||||
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
|
||||
"Form": "Forme",
|
||||
"Data Id": "Id des données",
|
||||
"User": "Utilisateur",
|
||||
"Export": "Exporter",
|
||||
"Export in PDF": "Exporter en PDF",
|
||||
"List": "Liste",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Rechercher",
|
||||
"Offset": "Décalage",
|
||||
"Limit": "Limite",
|
||||
"Sort": "Trier",
|
||||
"Direction": "Orientation",
|
||||
"Item Label": "Étiquette de l'élément",
|
||||
"Method": "Méthode",
|
||||
"Headers": "En-têtes",
|
||||
"Query Parameters": "Paramètres de requête",
|
||||
"Body": "Corps",
|
||||
"Response is Binary ?": "La réponse est Binaire ?",
|
||||
"No Error on Failure": "Aucune erreur en cas d'échec",
|
||||
"Timeout (in seconds)": "Délai d'attente (en secondes)",
|
||||
"The ID of the item you want to retrieve from the list": "L'ID de l'élément que vous voulez récupérer de la liste",
|
||||
"Pattern to search": "Schéma à rechercher",
|
||||
"Max number of results to return": "Nombre maximum de résultats à retourner",
|
||||
"Target for sorting": "Cible pour le tri",
|
||||
"Sorting: asc or desc": "Tri : asc ou desc",
|
||||
"Label for the new list item": "Étiquette pour le nouvel élément de la liste",
|
||||
"The ID of the item to edit": "L'ID de l'élément à modifier",
|
||||
"The ID of the item to delete": "L'ID de l'élément à supprimer",
|
||||
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
|
||||
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
|
||||
"GET": "OBTENIR",
|
||||
"POST": "POSTER",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "EFFACER",
|
||||
"DELETE": "SUPPRIMER",
|
||||
"HEAD": "TÊTE",
|
||||
"Event On Data": "Événement sur les données",
|
||||
"Event On Data Deleted": "Événement sur les données supprimées",
|
||||
"Event On Data Finished": "Événement à la fin des données",
|
||||
"Event On Data Pushed": "Événement lors du lancement des données",
|
||||
"Event On Data Received": "Événement sur les données reçues",
|
||||
"Event On Data Updated": "Événement sur les données mises à jour",
|
||||
"Handle EventOnData events via webhooks": "Gérer les événements EventOnData via des webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Gérer l'évènement EventOnData supprimer via des webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Gérer l'évènement de sauvegarde EventOnData via les webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Gérer les événements push EventOnData via des webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Gérer la réception d'événements EventOnData via des webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Gérer l'évènement de mise à jour EventOnData via des webhooks",
|
||||
"Output Format": "Format de sortie",
|
||||
"Events": "Évènements",
|
||||
"Select the output format": "Sélectionnez le format de sortie",
|
||||
"Which events will trigger this hook": "Quels événements vont déclencher ce point d'accroche",
|
||||
"Simple format": "Format simple",
|
||||
"Advanced format": "Format avancé",
|
||||
"Data Deleted": "Données supprimées",
|
||||
"Data Saved": "Données enregistrées",
|
||||
"Data Updated": "Données mises à jour",
|
||||
"Push Received": "Push reçu",
|
||||
"Push Send": "Envoyer par push"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "カスタムモバイルフォームを作成",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nKizeoフォームに接続するには、サポートチームが提供するAPIトークンが必要です。\n",
|
||||
"Get Data Definition": "データ定義の取得",
|
||||
"Push Data": "プッシュデータ",
|
||||
"Download Standard PDF": "標準のPDFをダウンロード",
|
||||
"Download custom export in its original format": "オリジナルの形式でカスタムエクスポートをダウンロード",
|
||||
"Get List Definition": "リスト定義の取得",
|
||||
"Get List Item": "リストアイテムを取得する",
|
||||
"Get All List Items": "すべてのリストアイテムを取得",
|
||||
"Create List Item": "リストアイテムを作成",
|
||||
"Edit List Item": "リスト項目を編集",
|
||||
"Delete List Item": "リスト項目を削除",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Get the definition of a data": "データの定義を取得する",
|
||||
"Push a data to a form": "フォームにデータをプッシュする",
|
||||
"Get PDF data of a form": "フォームのPDFデータを取得する",
|
||||
"Download a custom export in its original format": "オリジナルの形式でカスタムエクスポートをダウンロード",
|
||||
"Get the definition of a list": "リストの定義を取得する",
|
||||
"Get a specific item from a list": "リストから特定のアイテムを取得する",
|
||||
"Get all items from a specific list": "特定のリストからすべてのアイテムを取得します",
|
||||
"Create a new list item in Kizeo Forms": "Kizeoフォームに新しいリストアイテムを作成",
|
||||
"Edit a specific item in a list": "リスト内の特定の項目を編集",
|
||||
"Delete a specific item from a list": "リストから特定のアイテムを削除",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"Form": "フォーム",
|
||||
"Data Id": "データ ID",
|
||||
"User": "ユーザー",
|
||||
"Export": "エクスポート",
|
||||
"Export in PDF": "PDF形式でエクスポート",
|
||||
"List": "リスト",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "検索",
|
||||
"Offset": "オフセット",
|
||||
"Limit": "制限",
|
||||
"Sort": "並べ替え",
|
||||
"Direction": "方向",
|
||||
"Item Label": "アイテムのラベル",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"The ID of the item you want to retrieve from the list": "リストから取得したいアイテムの ID",
|
||||
"Pattern to search": "検索するパターン",
|
||||
"Max number of results to return": "返す結果の最大数",
|
||||
"Target for sorting": "並べ替えのターゲット",
|
||||
"Sorting: asc or desc": "並べ替え: asc または desc",
|
||||
"Label for the new list item": "新しいリスト項目のラベル",
|
||||
"The ID of the item to edit": "編集するアイテムのID",
|
||||
"The ID of the item to delete": "削除するアイテムのID",
|
||||
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
|
||||
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
|
||||
"GET": "取得",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "削除",
|
||||
"HEAD": "頭",
|
||||
"Event On Data": "データ上のイベント",
|
||||
"Event On Data Deleted": "データが削除されたイベント",
|
||||
"Event On Data Finished": "データ終了のイベント",
|
||||
"Event On Data Pushed": "データプッシュ時のイベント",
|
||||
"Event On Data Received": "受信したデータ上のイベント",
|
||||
"Event On Data Updated": "データ更新のイベント",
|
||||
"Handle EventOnData events via webhooks": "WebhookでEventOnDataイベントを処理する",
|
||||
"Handle EventOnData delete event via webhooks": "Webhook経由でEventOnDataを削除する",
|
||||
"Handle EventOnData save event via webhooks": "Webhook経由でEventOnDataの保存を処理する",
|
||||
"Handle EventOnData push event via webhooks": "Webhook経由でEventOnDataプッシュイベントを処理する",
|
||||
"Handle EventOnData receive event via webhooks": "Webhook経由でEventOnDataの受信イベントを処理する",
|
||||
"Handle EventOnData update event via webhooks": "Webhook経由でEventOnDataの更新イベントを処理する",
|
||||
"Output Format": "出力形式",
|
||||
"Events": "イベント",
|
||||
"Select the output format": "出力形式を選択",
|
||||
"Which events will trigger this hook": "どのイベントがこのフックをトリガーするか",
|
||||
"Simple format": "シンプルなフォーマット",
|
||||
"Advanced format": "高度なフォーマット",
|
||||
"Data Deleted": "データが削除されました",
|
||||
"Data Saved": "保存されたデータ",
|
||||
"Data Updated": "データを更新しました",
|
||||
"Push Received": "プッシュ受信済み",
|
||||
"Push Send": "Push Send"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Aangepaste mobiele formulieren maken",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nOm verbinding te maken met Kizeo Forms, heb je een API Token nodig die is aangeboden door hun supportteam.\n",
|
||||
"Get Data Definition": "Gegevensdefinitie ophalen",
|
||||
"Push Data": "Push Data",
|
||||
"Download Standard PDF": "Standaard PDF downloaden",
|
||||
"Download custom export in its original format": "Download aangepaste export in het originele formaat",
|
||||
"Get List Definition": "Ophalen lijstdefinitie",
|
||||
"Get List Item": "Krijg Lijstitem",
|
||||
"Get All List Items": "Krijg alle lijstitems",
|
||||
"Create List Item": "Lijstitem aanmaken",
|
||||
"Edit List Item": "Lijstitem bewerken",
|
||||
"Delete List Item": "Verwijder lijstitem",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Get the definition of a data": "Verkrijg de definitie van een data",
|
||||
"Push a data to a form": "Stuur gegevens door naar een formulier",
|
||||
"Get PDF data of a form": "PDF-gegevens van een formulier ophalen",
|
||||
"Download a custom export in its original format": "Download een aangepaste export in het oorspronkelijke formaat",
|
||||
"Get the definition of a list": "Verkrijg de definitie van een lijst",
|
||||
"Get a specific item from a list": "Haal een specifiek item op uit een lijst",
|
||||
"Get all items from a specific list": "Haal alle items op van een specifieke lijst",
|
||||
"Create a new list item in Kizeo Forms": "Maak een nieuw lijstitem in Kizeo formulieren",
|
||||
"Edit a specific item in a list": "Bewerk een specifiek item in een lijst",
|
||||
"Delete a specific item from a list": "Verwijder een specifiek item uit een lijst",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"Form": "Vorm",
|
||||
"Data Id": "Gegevens ID",
|
||||
"User": "Gebruiker",
|
||||
"Export": "Exporteer",
|
||||
"Export in PDF": "In PDF exporteren",
|
||||
"List": "Klantenlijst",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Zoeken",
|
||||
"Offset": "Verschuiving",
|
||||
"Limit": "Limiet",
|
||||
"Sort": "Sorteren",
|
||||
"Direction": "Richting",
|
||||
"Item Label": "Item label",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopteksten",
|
||||
"Query Parameters": "Query parameters",
|
||||
"Body": "Lichaam",
|
||||
"Response is Binary ?": "Antwoord is binair?",
|
||||
"No Error on Failure": "Geen fout bij fout",
|
||||
"Timeout (in seconds)": "Time-out (in seconden)",
|
||||
"The ID of the item you want to retrieve from the list": "Het ID van het item dat u wilt ophalen uit de lijst",
|
||||
"Pattern to search": "Patroon om te zoeken",
|
||||
"Max number of results to return": "Max. aantal resultaten om terug te keren",
|
||||
"Target for sorting": "Doel voor sortering",
|
||||
"Sorting: asc or desc": "Sorteren: oplopend of desc",
|
||||
"Label for the new list item": "Label voor het nieuwe lijstitem",
|
||||
"The ID of the item to edit": "Het ID van het te bewerken item",
|
||||
"The ID of the item to delete": "Het ID van het te verwijderen item",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
|
||||
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
|
||||
"GET": "KRIJG",
|
||||
"POST": "POSTE",
|
||||
"PATCH": "BEKIJK",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "VERWIJDEREN",
|
||||
"HEAD": "HOOFD",
|
||||
"Event On Data": "Gebeurtenis Op Data",
|
||||
"Event On Data Deleted": "Event On Data Verwijderd",
|
||||
"Event On Data Finished": "Event Op Data Afgerond",
|
||||
"Event On Data Pushed": "Gebeurtenis op Data Gepushed",
|
||||
"Event On Data Received": "Event On Data Ontvangen",
|
||||
"Event On Data Updated": "Event On Data Updated",
|
||||
"Handle EventOnData events via webhooks": "Handle EventOnData events via webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Handle EventOnData verwijderen gebeurtenis via webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Handel EventOnData save event via webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Handle EventOnData push event via webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Handle EventOnData ontvangen gebeurtenis via webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Handle EventOnData update event via webhooks",
|
||||
"Output Format": "Uitvoer formaat",
|
||||
"Events": "Evenementen",
|
||||
"Select the output format": "Selecteer het uitgangsformaat",
|
||||
"Which events will trigger this hook": "Welke gebeurtenissen deze haak activeren",
|
||||
"Simple format": "Eenvoudige indeling",
|
||||
"Advanced format": "Geavanceerd formaat",
|
||||
"Data Deleted": "Gegevens verwijderd",
|
||||
"Data Saved": "Gegevens opgeslagen",
|
||||
"Data Updated": "Gegevens bijgewerkt",
|
||||
"Push Received": "Push ontvangen",
|
||||
"Push Send": "Push Verzenden"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Criar formulários personalizados para celular",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nPara se conectar a Kizeo Forms, você precisa de um Token de API fornecido por sua equipe de suporte.\n",
|
||||
"Get Data Definition": "Obter Definição de Dados",
|
||||
"Push Data": "Dados Push",
|
||||
"Download Standard PDF": "Baixar PDF Padrão",
|
||||
"Download custom export in its original format": "Baixar exportação personalizada em seu formato original",
|
||||
"Get List Definition": "Obter definição de listas",
|
||||
"Get List Item": "Obter Item da Lista",
|
||||
"Get All List Items": "Obter todos os itens da lista",
|
||||
"Create List Item": "Criar Item de Lista",
|
||||
"Edit List Item": "Editar Item de Lista",
|
||||
"Delete List Item": "Excluir Item de Lista",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Get the definition of a data": "Obter a definição de um dado",
|
||||
"Push a data to a form": "Enviar dados para um formulário",
|
||||
"Get PDF data of a form": "Obter dados PDF de um formulário",
|
||||
"Download a custom export in its original format": "Baixar uma exportação personalizada em seu formato original",
|
||||
"Get the definition of a list": "Obter a definição de uma lista",
|
||||
"Get a specific item from a list": "Obtenha um item específico de uma lista",
|
||||
"Get all items from a specific list": "Pegar todos os itens de uma lista específica",
|
||||
"Create a new list item in Kizeo Forms": "Criar um novo item da lista nos Formulários Kizeo",
|
||||
"Edit a specific item in a list": "Editar um item específico em uma lista",
|
||||
"Delete a specific item from a list": "Exclui um item específico de uma lista",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"Form": "Formulário",
|
||||
"Data Id": "Identificação dos Dados",
|
||||
"User": "Usuário",
|
||||
"Export": "Exportar",
|
||||
"Export in PDF": "Exportar em PDF",
|
||||
"List": "Lista",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Pesquisar",
|
||||
"Offset": "Deslocamento",
|
||||
"Limit": "Limitar",
|
||||
"Sort": "Ordenar",
|
||||
"Direction": "Direção",
|
||||
"Item Label": "Rótulo do Item",
|
||||
"Method": "Método",
|
||||
"Headers": "Cabeçalhos",
|
||||
"Query Parameters": "Parâmetros da consulta",
|
||||
"Body": "Conteúdo",
|
||||
"Response is Binary ?": "A resposta é binária ?",
|
||||
"No Error on Failure": "Nenhum erro no Failure",
|
||||
"Timeout (in seconds)": "Tempo limite (em segundos)",
|
||||
"The ID of the item you want to retrieve from the list": "A identificação do item que você deseja recuperar da lista",
|
||||
"Pattern to search": "Padrão a pesquisar",
|
||||
"Max number of results to return": "Número máximo de resultados para retornar",
|
||||
"Target for sorting": "Alvo para ordenação",
|
||||
"Sorting: asc or desc": "Classificação: asc ou desc",
|
||||
"Label for the new list item": "Rótulo para o novo item da lista",
|
||||
"The ID of the item to edit": "O ID do item a ser editado",
|
||||
"The ID of the item to delete": "O ID do item a ser apagado",
|
||||
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
|
||||
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
|
||||
"GET": "OBTER",
|
||||
"POST": "POSTAR",
|
||||
"PATCH": "COMPRAR",
|
||||
"PUT": "COLOCAR",
|
||||
"DELETE": "EXCLUIR",
|
||||
"HEAD": "CABEÇA",
|
||||
"Event On Data": "Evento em dados",
|
||||
"Event On Data Deleted": "Evento em dados excluídos",
|
||||
"Event On Data Finished": "Dados do evento terminados",
|
||||
"Event On Data Pushed": "Evento em dados arrastados",
|
||||
"Event On Data Received": "Evento em dados recebidos",
|
||||
"Event On Data Updated": "Dados atualizados do evento",
|
||||
"Handle EventOnData events via webhooks": "Manipular eventos EventOnData através de webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Manipular o evento de exclusão da EventOnData através de webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Manipular evento EventOnData através de webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Manipular o evento EventOnData através de webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Manipular o evento EventOnData receive via webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Manipular o evento de atualização da EventOnData através de webhooks",
|
||||
"Output Format": "Formato de saída",
|
||||
"Events": "Eventos",
|
||||
"Select the output format": "Selecionar formato de saída",
|
||||
"Which events will trigger this hook": "Quais eventos irão acionar este gancho",
|
||||
"Simple format": "Formato simples",
|
||||
"Advanced format": "Formato avançado",
|
||||
"Data Deleted": "Dados excluídos",
|
||||
"Data Saved": "Dados salvos",
|
||||
"Data Updated": "Dados atualizados",
|
||||
"Push Received": "Push Recebido",
|
||||
"Push Send": "Enviar por Push"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Kizeo Forms": "Формы Kizeo",
|
||||
"Create custom mobile forms": "Создать мобильную форму",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nДля подключения к Формам Kizeo вам нужен API токен, предоставленный командой поддержки.\n",
|
||||
"Get Data Definition": "Получить определение данных",
|
||||
"Push Data": "Push-данные",
|
||||
"Download Standard PDF": "Скачать стандартный PDF",
|
||||
"Download custom export in its original format": "Скачать пользовательский экспорт в оригинальном формате",
|
||||
"Get List Definition": "Получить определение списка",
|
||||
"Get List Item": "Получить элемент списка",
|
||||
"Get All List Items": "Получить все элементы списка",
|
||||
"Create List Item": "Создать элемент списка",
|
||||
"Edit List Item": "Редактировать элемент списка",
|
||||
"Delete List Item": "Удалить элемент списка",
|
||||
"Custom API Call": "Пользовательский вызов API",
|
||||
"Get the definition of a data": "Получить определение данных",
|
||||
"Push a data to a form": "Отправить данные в форму",
|
||||
"Get PDF data of a form": "Получить данные PDF формы",
|
||||
"Download a custom export in its original format": "Скачать пользовательский экспорт в оригинальном формате",
|
||||
"Get the definition of a list": "Получить определение списка",
|
||||
"Get a specific item from a list": "Получить конкретный товар из списка",
|
||||
"Get all items from a specific list": "Получить все товары из определенного списка",
|
||||
"Create a new list item in Kizeo Forms": "Создать новый элемент списка в Kizeo Формах",
|
||||
"Edit a specific item in a list": "Редактировать конкретный элемент в списке",
|
||||
"Delete a specific item from a list": "Удалить конкретный элемент из списка",
|
||||
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
|
||||
"Form": "Форма",
|
||||
"Data Id": "Id данных",
|
||||
"User": "Пользователь",
|
||||
"Export": "Export",
|
||||
"Export in PDF": "Экспорт в PDF",
|
||||
"List": "Список",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Search",
|
||||
"Offset": "Смещение",
|
||||
"Limit": "Лимит",
|
||||
"Sort": "Сортировка",
|
||||
"Direction": "Направление",
|
||||
"Item Label": "Ярлык элемента",
|
||||
"Method": "Метод",
|
||||
"Headers": "Заголовки",
|
||||
"Query Parameters": "Параметры запроса",
|
||||
"Body": "Тело",
|
||||
"No Error on Failure": "Нет ошибок при ошибке",
|
||||
"Timeout (in seconds)": "Таймаут (в секундах)",
|
||||
"The ID of the item you want to retrieve from the list": "ID элемента, который вы хотите получить из списка",
|
||||
"Pattern to search": "Поиск шаблона",
|
||||
"Max number of results to return": "Максимальное количество результатов для возврата",
|
||||
"Target for sorting": "Цель для сортировки",
|
||||
"Sorting: asc or desc": "Сортировка: asc или desc",
|
||||
"Label for the new list item": "Метка для нового элемента списка",
|
||||
"The ID of the item to edit": "ID элемента для редактирования",
|
||||
"The ID of the item to delete": "ID элемента для удаления",
|
||||
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
|
||||
"GET": "ПОЛУЧИТЬ",
|
||||
"POST": "ПОСТ",
|
||||
"PATCH": "ПАТЧ",
|
||||
"PUT": "ПОКУПИТЬ",
|
||||
"DELETE": "УДАЛИТЬ",
|
||||
"HEAD": "HEAD",
|
||||
"Event On Data": "Событие на данных",
|
||||
"Event On Data Deleted": "Событие на данных удалено",
|
||||
"Event On Data Finished": "Событие по данным завершено",
|
||||
"Event On Data Pushed": "Событие на данных выгружено",
|
||||
"Event On Data Received": "Получены данные о событии",
|
||||
"Event On Data Updated": "Событие при обновлении данных",
|
||||
"Handle EventOnData events via webhooks": "Обработка событий EventOnData через веб-хуки",
|
||||
"Handle EventOnData delete event via webhooks": "Обработка событий удаления EventOnData через вебхуки",
|
||||
"Handle EventOnData save event via webhooks": "Обработка событий EventOnData сохранения через веб-хуки",
|
||||
"Handle EventOnData push event via webhooks": "Обработка событий EventOnData push через вебхуки",
|
||||
"Handle EventOnData receive event via webhooks": "Обработка событий EventOnData получения через веб-хуки",
|
||||
"Handle EventOnData update event via webhooks": "Обработка событий EventOnData обновления через вебхуки",
|
||||
"Output Format": "Формат вывода",
|
||||
"Events": "События",
|
||||
"Select the output format": "Выберите выходной формат",
|
||||
"Which events will trigger this hook": "Какие события вызовут этот хук",
|
||||
"Simple format": "Простой формат",
|
||||
"Advanced format": "Расширенный формат",
|
||||
"Data Deleted": "Данные удалены",
|
||||
"Data Saved": "Данные сохранены",
|
||||
"Data Updated": "Данные обновлены",
|
||||
"Push Received": "Получено",
|
||||
"Push Send": "Отправить"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Create custom mobile forms",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n",
|
||||
"Get Data Definition": "Get Data Definition",
|
||||
"Push Data": "Push Data",
|
||||
"Download Standard PDF": "Download Standard PDF",
|
||||
"Download custom export in its original format": "Download custom export in its original format",
|
||||
"Get List Definition": "Get List Definition",
|
||||
"Get List Item": "Get List Item",
|
||||
"Get All List Items": "Get All List Items",
|
||||
"Create List Item": "Create List Item",
|
||||
"Edit List Item": "Edit List Item",
|
||||
"Delete List Item": "Delete List Item",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Get the definition of a data": "Get the definition of a data",
|
||||
"Push a data to a form": "Push a data to a form",
|
||||
"Get PDF data of a form": "Get PDF data of a form",
|
||||
"Download a custom export in its original format": "Download a custom export in its original format",
|
||||
"Get the definition of a list": "Get the definition of a list",
|
||||
"Get a specific item from a list": "Get a specific item from a list",
|
||||
"Get all items from a specific list": "Get all items from a specific list",
|
||||
"Create a new list item in Kizeo Forms": "Create a new list item in Kizeo Forms",
|
||||
"Edit a specific item in a list": "Edit a specific item in a list",
|
||||
"Delete a specific item from a list": "Delete a specific item from a list",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Form": "Form",
|
||||
"Data Id": "Data Id",
|
||||
"User": "User",
|
||||
"Export": "Export",
|
||||
"Export in PDF": "Export in PDF",
|
||||
"List": "List",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Search",
|
||||
"Offset": "Offset",
|
||||
"Limit": "Limit",
|
||||
"Sort": "Sort",
|
||||
"Direction": "Direction",
|
||||
"Item Label": "Item Label",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The ID of the item you want to retrieve from the list": "The ID of the item you want to retrieve from the list",
|
||||
"Pattern to search": "Pattern to search",
|
||||
"Max number of results to return": "Max number of results to return",
|
||||
"Target for sorting": "Target for sorting",
|
||||
"Sorting: asc or desc": "Sorting: asc or desc",
|
||||
"Label for the new list item": "Label for the new list item",
|
||||
"The ID of the item to edit": "The ID of the item to edit",
|
||||
"The ID of the item to delete": "The ID of the item to delete",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"Event On Data": "Event On Data",
|
||||
"Event On Data Deleted": "Event On Data Deleted",
|
||||
"Event On Data Finished": "Event On Data Finished",
|
||||
"Event On Data Pushed": "Event On Data Pushed",
|
||||
"Event On Data Received": "Event On Data Received",
|
||||
"Event On Data Updated": "Event On Data Updated",
|
||||
"Handle EventOnData events via webhooks": "Handle EventOnData events via webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Handle EventOnData delete event via webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Handle EventOnData save event via webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Handle EventOnData push event via webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Handle EventOnData receive event via webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Handle EventOnData update event via webhooks",
|
||||
"Output Format": "Output Format",
|
||||
"Events": "Events",
|
||||
"Select the output format": "Select the output format",
|
||||
"Which events will trigger this hook": "Which events will trigger this hook",
|
||||
"Simple format": "Simple format",
|
||||
"Advanced format": "Advanced format",
|
||||
"Data Deleted": "Data Deleted",
|
||||
"Data Saved": "Data Saved",
|
||||
"Data Updated": "Data Updated",
|
||||
"Push Received": "Push Received",
|
||||
"Push Send": "Push Send"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Kizeo Forms": "Kizeo Forms",
|
||||
"Create custom mobile forms": "Create custom mobile forms",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n",
|
||||
"Get Data Definition": "Get Data Definition",
|
||||
"Push Data": "Push Data",
|
||||
"Download Standard PDF": "Download Standard PDF",
|
||||
"Download custom export in its original format": "Download custom export in its original format",
|
||||
"Get List Definition": "Get List Definition",
|
||||
"Get List Item": "Get List Item",
|
||||
"Get All List Items": "Get All List Items",
|
||||
"Create List Item": "Create List Item",
|
||||
"Edit List Item": "Edit List Item",
|
||||
"Delete List Item": "Delete List Item",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Get the definition of a data": "Get the definition of a data",
|
||||
"Push a data to a form": "Push a data to a form",
|
||||
"Get PDF data of a form": "Get PDF data of a form",
|
||||
"Download a custom export in its original format": "Download a custom export in its original format",
|
||||
"Get the definition of a list": "Get the definition of a list",
|
||||
"Get a specific item from a list": "Get a specific item from a list",
|
||||
"Get all items from a specific list": "Get all items from a specific list",
|
||||
"Create a new list item in Kizeo Forms": "Create a new list item in Kizeo Forms",
|
||||
"Edit a specific item in a list": "Edit a specific item in a list",
|
||||
"Delete a specific item from a list": "Delete a specific item from a list",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Form": "Form",
|
||||
"Data Id": "Data Id",
|
||||
"User": "User",
|
||||
"Export": "Export",
|
||||
"Export in PDF": "Export in PDF",
|
||||
"List": "List",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "Search",
|
||||
"Offset": "Offset",
|
||||
"Limit": "Limit",
|
||||
"Sort": "Sort",
|
||||
"Direction": "Direction",
|
||||
"Item Label": "Item Label",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The ID of the item you want to retrieve from the list": "The ID of the item you want to retrieve from the list",
|
||||
"Pattern to search": "Pattern to search",
|
||||
"Max number of results to return": "Max number of results to return",
|
||||
"Target for sorting": "Target for sorting",
|
||||
"Sorting: asc or desc": "Sorting: asc or desc",
|
||||
"Label for the new list item": "Label for the new list item",
|
||||
"The ID of the item to edit": "The ID of the item to edit",
|
||||
"The ID of the item to delete": "The ID of the item to delete",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"Event On Data": "Event On Data",
|
||||
"Event On Data Deleted": "Event On Data Deleted",
|
||||
"Event On Data Finished": "Event On Data Finished",
|
||||
"Event On Data Pushed": "Event On Data Pushed",
|
||||
"Event On Data Received": "Event On Data Received",
|
||||
"Event On Data Updated": "Event On Data Updated",
|
||||
"Handle EventOnData events via webhooks": "Handle EventOnData events via webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Handle EventOnData delete event via webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Handle EventOnData save event via webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Handle EventOnData push event via webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Handle EventOnData receive event via webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Handle EventOnData update event via webhooks",
|
||||
"Output Format": "Output Format",
|
||||
"Events": "Events",
|
||||
"Select the output format": "Select the output format",
|
||||
"Which events will trigger this hook": "Which events will trigger this hook",
|
||||
"Simple format": "Simple format",
|
||||
"Advanced format": "Advanced format",
|
||||
"Data Deleted": "Data Deleted",
|
||||
"Data Saved": "Data Saved",
|
||||
"Data Updated": "Data Updated",
|
||||
"Push Received": "Push Received",
|
||||
"Push Send": "Push Send"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Create custom mobile forms": "Create custom mobile forms",
|
||||
"\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n": "\nTo connect to Kizeo Forms, you need an API Token provided by their support team.\n",
|
||||
"Get Data Definition": "Get Data Definition",
|
||||
"Push Data": "Push Data",
|
||||
"Download Standard PDF": "Download Standard PDF",
|
||||
"Download custom export in its original format": "Download custom export in its original format",
|
||||
"Get List Definition": "Get List Definition",
|
||||
"Get List Item": "Get List Item",
|
||||
"Get All List Items": "Get All List Items",
|
||||
"Create List Item": "Create List Item",
|
||||
"Edit List Item": "Edit List Item",
|
||||
"Delete List Item": "Delete List Item",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Get the definition of a data": "Get the definition of a data",
|
||||
"Push a data to a form": "Push a data to a form",
|
||||
"Get PDF data of a form": "Get PDF data of a form",
|
||||
"Download a custom export in its original format": "Download a custom export in its original format",
|
||||
"Get the definition of a list": "Get the definition of a list",
|
||||
"Get a specific item from a list": "Get a specific item from a list",
|
||||
"Get all items from a specific list": "Get all items from a specific list",
|
||||
"Create a new list item in Kizeo Forms": "Create a new list item in Kizeo Forms",
|
||||
"Edit a specific item in a list": "Edit a specific item in a list",
|
||||
"Delete a specific item from a list": "Delete a specific item from a list",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"Form": "Form",
|
||||
"Data Id": "Data Id",
|
||||
"User": "用户",
|
||||
"Export": "导出",
|
||||
"Export in PDF": "Export in PDF",
|
||||
"List": "List",
|
||||
"Item Id": "Item Id",
|
||||
"Search": "搜索",
|
||||
"Offset": "Offset",
|
||||
"Limit": "Limit",
|
||||
"Sort": "Sort",
|
||||
"Direction": "Direction",
|
||||
"Item Label": "Item Label",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"The ID of the item you want to retrieve from the list": "The ID of the item you want to retrieve from the list",
|
||||
"Pattern to search": "Pattern to search",
|
||||
"Max number of results to return": "Max number of results to return",
|
||||
"Target for sorting": "Target for sorting",
|
||||
"Sorting: asc or desc": "Sorting: asc or desc",
|
||||
"Label for the new list item": "Label for the new list item",
|
||||
"The ID of the item to edit": "The ID of the item to edit",
|
||||
"The ID of the item to delete": "The ID of the item to delete",
|
||||
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"GET": "获取",
|
||||
"POST": "帖子",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "弹出",
|
||||
"DELETE": "删除",
|
||||
"HEAD": "黑色",
|
||||
"Event On Data": "Event On Data",
|
||||
"Event On Data Deleted": "Event On Data Deleted",
|
||||
"Event On Data Finished": "Event On Data Finished",
|
||||
"Event On Data Pushed": "Event On Data Pushed",
|
||||
"Event On Data Received": "Event On Data Received",
|
||||
"Event On Data Updated": "Event On Data Updated",
|
||||
"Handle EventOnData events via webhooks": "Handle EventOnData events via webhooks",
|
||||
"Handle EventOnData delete event via webhooks": "Handle EventOnData delete event via webhooks",
|
||||
"Handle EventOnData save event via webhooks": "Handle EventOnData save event via webhooks",
|
||||
"Handle EventOnData push event via webhooks": "Handle EventOnData push event via webhooks",
|
||||
"Handle EventOnData receive event via webhooks": "Handle EventOnData receive event via webhooks",
|
||||
"Handle EventOnData update event via webhooks": "Handle EventOnData update event via webhooks",
|
||||
"Output Format": "Output Format",
|
||||
"Events": "Events",
|
||||
"Select the output format": "Select the output format",
|
||||
"Which events will trigger this hook": "Which events will trigger this hook",
|
||||
"Simple format": "Simple format",
|
||||
"Advanced format": "Advanced format",
|
||||
"Data Deleted": "Data Deleted",
|
||||
"Data Saved": "Data Saved",
|
||||
"Data Updated": "Data Updated",
|
||||
"Push Received": "Push Received",
|
||||
"Push Send": "Push Send"
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
||||
import { PieceAuth, createPiece } from '@activepieces/pieces-framework';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { CreateListItem } from './lib/actions/create-list-item';
|
||||
import { deleteListItem } from './lib/actions/delete-list-item';
|
||||
import { downloadCustomExportInItsOriginalFormat } from './lib/actions/download-custom-export-in-its-original-format';
|
||||
import { downloadStandardPDF } from './lib/actions/download-standard-pdf';
|
||||
import { editListItem } from './lib/actions/edit-list-item';
|
||||
import { getAllListItems } from './lib/actions/get-all-list-items';
|
||||
import { getDataDefinition } from './lib/actions/get-data-definition';
|
||||
import { getListDefinition } from './lib/actions/get-list-definition';
|
||||
import { getListItem } from './lib/actions/get-list-item';
|
||||
import { pushData } from './lib/actions/push-data';
|
||||
import { endpoint } from './lib/common';
|
||||
import { eventOnDataDeleted } from './lib/trigger/event-on-data-deleted';
|
||||
import { eventOnDataFinished } from './lib/trigger/event-on-data-finished';
|
||||
import { eventOnDataPushed } from './lib/trigger/event-on-data-pushed';
|
||||
import { eventOnDataPulled } from './lib/trigger/event-on-data-received';
|
||||
import { eventOnDataUpdated } from './lib/trigger/event-on-data-updated';
|
||||
import { eventOnData } from './lib/trigger/event-on-data.trigger';
|
||||
|
||||
const markdownDescription = `
|
||||
To connect to Kizeo Forms, you need an API Token provided by their support team.
|
||||
`;
|
||||
|
||||
export const kizeoFormsAuth = PieceAuth.SecretText({
|
||||
displayName: 'Kizeo Forms API Key',
|
||||
required: true,
|
||||
description: markdownDescription,
|
||||
});
|
||||
|
||||
export const kizeoForms = createPiece({
|
||||
displayName: 'Kizeo Forms',
|
||||
description: 'Create custom mobile forms',
|
||||
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/kizeo-forms.png',
|
||||
authors: ["BastienMe","kishanprmr","MoShizzle","khaledmashaly","abuaboud"],
|
||||
categories: [PieceCategory.FORMS_AND_SURVEYS],
|
||||
auth: kizeoFormsAuth,
|
||||
actions: [
|
||||
getDataDefinition,
|
||||
pushData,
|
||||
downloadStandardPDF,
|
||||
downloadCustomExportInItsOriginalFormat,
|
||||
getListDefinition,
|
||||
getListItem,
|
||||
getAllListItems,
|
||||
CreateListItem,
|
||||
editListItem,
|
||||
deleteListItem,
|
||||
createCustomApiCallAction({
|
||||
baseUrl: () => endpoint,
|
||||
auth: kizeoFormsAuth,
|
||||
authMapping: async (auth) => {
|
||||
return {
|
||||
Authorization: auth.secret_text,
|
||||
};
|
||||
},
|
||||
}),
|
||||
],
|
||||
triggers: [
|
||||
eventOnData,
|
||||
eventOnDataDeleted,
|
||||
eventOnDataFinished,
|
||||
eventOnDataPushed,
|
||||
eventOnDataPulled,
|
||||
eventOnDataUpdated,
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,64 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const CreateListItem = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'create_list_item',
|
||||
displayName: 'Create List Item',
|
||||
description: 'Create a new list item in Kizeo Forms',
|
||||
props: {
|
||||
listId: kizeoFormsCommon.listId,
|
||||
itemLabel: Property.ShortText({
|
||||
displayName: 'Item Label',
|
||||
description: 'Label for the new list item',
|
||||
required: true,
|
||||
}),
|
||||
properties: kizeoFormsCommon.listProperties,
|
||||
},
|
||||
async run(context) {
|
||||
const { listId, itemLabel, properties } = context.propsValue;
|
||||
type Body = {
|
||||
items: [
|
||||
{
|
||||
label: string;
|
||||
properties: Record<string, string | number>;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
const body: Body = {
|
||||
items: [
|
||||
{
|
||||
label: itemLabel,
|
||||
properties: {},
|
||||
},
|
||||
],
|
||||
};
|
||||
for (let i = 0; i < Object.keys(properties).length; i++) {
|
||||
const propertyId = Object.keys(properties)[i];
|
||||
const propertyValue = properties[Object.keys(properties)[i]];
|
||||
body.items[0].properties[propertyId] = parseFloat(propertyValue)
|
||||
? parseFloat(propertyValue)
|
||||
: propertyValue;
|
||||
}
|
||||
|
||||
const response = await httpClient.sendRequest<{ data: unknown }>({
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint + `public/v4/lists/${listId}/items?used-with-active-pieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
body: body,
|
||||
});
|
||||
|
||||
if (response.status === 201) {
|
||||
return response.body;
|
||||
}
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,38 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const deleteListItem = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'delete_list_item',
|
||||
displayName: 'Delete List Item',
|
||||
description: 'Delete a specific item from a list',
|
||||
props: {
|
||||
listId: kizeoFormsCommon.listId,
|
||||
itemId: Property.ShortText({
|
||||
displayName: 'Item Id',
|
||||
description: 'The ID of the item to delete',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { listId, itemId } = context.propsValue;
|
||||
const response = await httpClient.sendRequest({
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/lists/${listId}/items/${itemId}?used-with-active-pieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
return response.body;
|
||||
}
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,62 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import axios from 'axios';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const downloadCustomExportInItsOriginalFormat = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'download_custom_export_in_its_original_format', // Must be a unique across the piece, this shouldn't be changed.
|
||||
displayName: 'Download custom export in its original format',
|
||||
description: 'Download a custom export in its original format',
|
||||
props: {
|
||||
formId: kizeoFormsCommon.formId,
|
||||
exportId: kizeoFormsCommon.exportId,
|
||||
exportInPdf: Property.Checkbox({
|
||||
displayName: 'Export in PDF',
|
||||
description: undefined,
|
||||
required: true,
|
||||
}),
|
||||
dataId: Property.Number({
|
||||
displayName: 'Data Id',
|
||||
description: undefined,
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { formId, dataId, exportId, exportInPdf } = context.propsValue;
|
||||
let uri = '';
|
||||
let headers = {};
|
||||
if (exportInPdf) {
|
||||
uri =
|
||||
endpoint +
|
||||
`v3/forms/${formId}/data/${dataId}/pdf?used-with-actives-pieces=`;
|
||||
headers = {
|
||||
'Content-Type': 'application/pdf',
|
||||
Authorization: context.auth.secret_text,
|
||||
};
|
||||
} else {
|
||||
uri =
|
||||
endpoint +
|
||||
`v3/forms/${formId}/data/${dataId}/exports/${exportId}?used-with-n8n=`;
|
||||
headers = {
|
||||
Accept:
|
||||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||||
Authorization: context.auth.secret_text,
|
||||
};
|
||||
}
|
||||
|
||||
const response = await axios.get(uri, {
|
||||
headers: headers,
|
||||
responseType: 'arraybuffer',
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
return (
|
||||
'data:application/octet-stream;base64,' +
|
||||
Buffer.from(response.data).toString('base64')
|
||||
);
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,42 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import axios from 'axios';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const downloadStandardPDF = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'download_standard_pdf', // Must be a unique across the piece, this shouldn't be changed.
|
||||
displayName: 'Download Standard PDF',
|
||||
description: 'Get PDF data of a form',
|
||||
props: {
|
||||
formId: kizeoFormsCommon.formId,
|
||||
dataId: Property.Number({
|
||||
displayName: 'Data Id',
|
||||
description: undefined,
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { formId, dataId } = context.propsValue;
|
||||
const response = await axios.get(
|
||||
endpoint +
|
||||
`v3/forms/${formId}/data/${dataId}/pdf?used-with-actives-pieces=`,
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/pdf',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
responseType: 'arraybuffer',
|
||||
}
|
||||
);
|
||||
|
||||
if (response.status === 200) {
|
||||
return (
|
||||
'data:application/pdf;base64,' +
|
||||
Buffer.from(response.data).toString('base64')
|
||||
);
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,71 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const editListItem = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'edit_list_item',
|
||||
displayName: 'Edit List Item',
|
||||
description: 'Edit a specific item in a list',
|
||||
props: {
|
||||
listId: kizeoFormsCommon.listId,
|
||||
itemId: Property.ShortText({
|
||||
displayName: 'Item Id',
|
||||
description: 'The ID of the item to edit',
|
||||
required: true,
|
||||
}),
|
||||
itemLabel: Property.ShortText({
|
||||
displayName: 'Item Label',
|
||||
description: 'Label for the new list item',
|
||||
required: true,
|
||||
}),
|
||||
properties: kizeoFormsCommon.listProperties,
|
||||
},
|
||||
async run(context) {
|
||||
const { listId, itemId, itemLabel, properties } = context.propsValue;
|
||||
|
||||
type Body = {
|
||||
items: [
|
||||
{
|
||||
item_id: string;
|
||||
label: string;
|
||||
properties: Record<string, string | number>;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
const body: Body = {
|
||||
items: [
|
||||
{
|
||||
item_id: itemId,
|
||||
label: itemLabel,
|
||||
properties: {},
|
||||
},
|
||||
],
|
||||
};
|
||||
for (let i = 0; i < Object.keys(properties).length; i++) {
|
||||
const propertyId = Object.keys(properties)[i];
|
||||
const propertyValue = properties[Object.keys(properties)[i]];
|
||||
body.items[0].properties[propertyId] = parseFloat(propertyValue)
|
||||
? parseFloat(propertyValue)
|
||||
: propertyValue;
|
||||
}
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
method: HttpMethod.PATCH,
|
||||
url: endpoint + `public/v4/lists/${listId}/items?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
body: body,
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
return response.body;
|
||||
}
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,73 @@
|
||||
import {
|
||||
createAction,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
import { z } from 'zod';
|
||||
import { propsValidation } from '@activepieces/pieces-common';
|
||||
|
||||
export const getAllListItems = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'get_all_list_items',
|
||||
displayName: 'Get All List Items',
|
||||
description: 'Get all items from a specific list',
|
||||
props: {
|
||||
search: Property.ShortText({
|
||||
displayName: 'Search',
|
||||
description: 'Pattern to search',
|
||||
required: false,
|
||||
}),
|
||||
offset: Property.Number({
|
||||
displayName: 'Offset',
|
||||
required: false,
|
||||
}),
|
||||
limit: Property.Number({
|
||||
displayName: 'Limit',
|
||||
description: 'Max number of results to return',
|
||||
required: false,
|
||||
}),
|
||||
sort: Property.ShortText({
|
||||
displayName: 'Sort',
|
||||
description: 'Target for sorting',
|
||||
required: false,
|
||||
}),
|
||||
direction: Property.ShortText({
|
||||
displayName: 'Direction',
|
||||
description: 'Sorting: asc or desc',
|
||||
required: false,
|
||||
}),
|
||||
listId: kizeoFormsCommon.listId,
|
||||
},
|
||||
async run(context) {
|
||||
await propsValidation.validateZod(context.propsValue, {
|
||||
limit: z.number().min(1).optional(),
|
||||
});
|
||||
const { listId, search, offset, limit, sort, direction } =
|
||||
context.propsValue;
|
||||
|
||||
let parameters = '';
|
||||
if (search) parameters += `search=${search}&`;
|
||||
if (offset) parameters += `offset=${offset}&`;
|
||||
if (limit) parameters += `limit=${limit}&`;
|
||||
if (sort) parameters += `sort=${sort}&`;
|
||||
if (direction) parameters += `direction=${direction}&`;
|
||||
|
||||
const response = await httpClient.sendRequest<{ data: unknown }>({
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/lists/${listId}/items?${parameters}used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
});
|
||||
if (response.status === 200) {
|
||||
return response.body;
|
||||
}
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,38 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const getDataDefinition = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'get_data_definition', // Must be a unique across the piece, this shouldn't be changed.
|
||||
displayName: 'Get Data Definition',
|
||||
description: 'Get the definition of a data',
|
||||
props: {
|
||||
formId: kizeoFormsCommon.formId,
|
||||
dataId: Property.Number({
|
||||
displayName: 'Data Id',
|
||||
description: undefined,
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { formId, dataId } = context.propsValue;
|
||||
const response = await httpClient.sendRequest<{ data: unknown }>({
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
endpoint +
|
||||
`v3/forms/${formId}/data/${dataId}?format=4&used-with-actives-pieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
});
|
||||
if (response.status === 200) {
|
||||
return response.body.data;
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const getListDefinition = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'get_list_definition',
|
||||
displayName: 'Get List Definition',
|
||||
description: 'Get the definition of a list',
|
||||
props: {
|
||||
listId: kizeoFormsCommon.listId,
|
||||
},
|
||||
async run(context) {
|
||||
const { listId } = context.propsValue;
|
||||
const response = await httpClient.sendRequest<{ list: unknown }>({
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/lists/${listId}/definition?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
});
|
||||
if (response.status === 200) {
|
||||
return response.body;
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,37 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const getListItem = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
|
||||
name: 'get_list_item',
|
||||
displayName: 'Get List Item',
|
||||
description: 'Get a specific item from a list',
|
||||
props: {
|
||||
listId: kizeoFormsCommon.listId,
|
||||
itemId: Property.ShortText({
|
||||
displayName: 'Item Id',
|
||||
description: 'The ID of the item you want to retrieve from the list',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { listId, itemId } = context.propsValue;
|
||||
const response = await httpClient.sendRequest<{ data: unknown }>({
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/lists/${listId}/items/${itemId}?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
});
|
||||
if (response.status === 200) {
|
||||
return response.body;
|
||||
}
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,49 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const pushData = createAction({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'push_data', // Must be a unique across the piece, this shouldn't be changed.
|
||||
displayName: 'Push Data',
|
||||
description: 'Push a data to a form',
|
||||
props: {
|
||||
formId: kizeoFormsCommon.formId,
|
||||
userId: kizeoFormsCommon.userId,
|
||||
fields: kizeoFormsCommon.fields,
|
||||
},
|
||||
async run(context) {
|
||||
const { formId, userId, fields } = context.propsValue;
|
||||
|
||||
type Body = {
|
||||
recipient_user_id: string | undefined;
|
||||
fields: Record<string, { value: string }>;
|
||||
};
|
||||
|
||||
const body: Body = {
|
||||
recipient_user_id: userId,
|
||||
fields: {},
|
||||
};
|
||||
|
||||
for (let i = 0; i < Object.keys(fields).length; i++) {
|
||||
const fieldId = Object.keys(fields)[i];
|
||||
body.fields[fieldId] = { value: fields[Object.keys(fields)[i]] };
|
||||
}
|
||||
|
||||
const response = await httpClient.sendRequest<{ data: unknown }>({
|
||||
method: HttpMethod.POST,
|
||||
url: endpoint + `v3/forms/${formId}/push?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
body: body,
|
||||
});
|
||||
if (response.status === 200) {
|
||||
return response.body.data;
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,400 @@
|
||||
import { DynamicPropsValue, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import {
|
||||
KizeoFormsDataUsers,
|
||||
KizeoFormsExports,
|
||||
KizeoFormsForms,
|
||||
KizeoFormsList,
|
||||
KizeoFormsLists,
|
||||
} from './models';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
export const endpoint = 'https://forms.kizeo.com/rest/';
|
||||
export const kizeoFormsCommon = {
|
||||
formId: Property.Dropdown<string,true,typeof kizeoFormsAuth>({
|
||||
displayName: 'Form',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
auth: kizeoFormsAuth,
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account',
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const forms: KizeoFormsForms[] = await kizeoFormsCommon.fetchForms({
|
||||
token: auth.secret_text,
|
||||
});
|
||||
|
||||
if (forms) {
|
||||
return {
|
||||
disabled: false,
|
||||
options: forms.map((forms) => ({
|
||||
value: forms.id,
|
||||
label: forms.name,
|
||||
})),
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please check your permission scope',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
userId: Property.Dropdown<string,true,typeof kizeoFormsAuth>({
|
||||
displayName: 'User',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
auth: kizeoFormsAuth,
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account',
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const dataUsers: KizeoFormsDataUsers =
|
||||
await kizeoFormsCommon.fetchUsers({
|
||||
token: auth.secret_text,
|
||||
});
|
||||
if (dataUsers) {
|
||||
return {
|
||||
disabled: false,
|
||||
options: dataUsers.users.map((users) => ({
|
||||
value: users.id,
|
||||
label: users.first_name + ' ' + users.last_name,
|
||||
})),
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please check your permission scope',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
exportId: Property.Dropdown<string,true,typeof kizeoFormsAuth>({
|
||||
displayName: 'Export',
|
||||
required: true,
|
||||
refreshers: ['formId'],
|
||||
auth: kizeoFormsAuth,
|
||||
options: async ({ auth, formId }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account',
|
||||
};
|
||||
}
|
||||
if (!formId) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please select a form',
|
||||
};
|
||||
}
|
||||
try {
|
||||
const exportList: KizeoFormsExports[] =
|
||||
await kizeoFormsCommon.fetchExports({
|
||||
token: auth.secret_text,
|
||||
formId: formId as string,
|
||||
});
|
||||
if (exportList) {
|
||||
return {
|
||||
disabled: false,
|
||||
options: exportList.map((exportItem) => ({
|
||||
value: exportItem.id,
|
||||
label: exportItem.name,
|
||||
})),
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please check your permission scope',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
fields: Property.DynamicProperties({
|
||||
displayName: 'Form',
|
||||
required: true,
|
||||
refreshers: ['formId'],
|
||||
|
||||
auth: kizeoFormsAuth,
|
||||
props: async ({ auth, formId }) => {
|
||||
if (!auth) return {};
|
||||
if (!formId) return {};
|
||||
|
||||
const fields: DynamicPropsValue = {};
|
||||
|
||||
try {
|
||||
const form: KizeoFormsForms = await kizeoFormsCommon.fetchForm({
|
||||
token: auth.secret_text,
|
||||
formId: formId as unknown as string,
|
||||
});
|
||||
|
||||
const results: Record<string, any> = form.fields;
|
||||
|
||||
for (let i = 0; i < Object.keys(results).length; i++) {
|
||||
const fieldId = Object.keys(results)[i];
|
||||
|
||||
if (Object.values(results)[i].type === 'text') {
|
||||
fields[fieldId] = Property.ShortText({
|
||||
displayName: Object.values(results)[i].caption,
|
||||
required: Object.values(results)[i].required,
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
}
|
||||
|
||||
return fields;
|
||||
},
|
||||
}),
|
||||
listId: Property.Dropdown<string,true,typeof kizeoFormsAuth>({
|
||||
auth: kizeoFormsAuth,
|
||||
displayName: 'List',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please connect your account',
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const lists: KizeoFormsLists[] = await kizeoFormsCommon.fetchLists({
|
||||
token: auth.secret_text,
|
||||
});
|
||||
|
||||
if (lists) {
|
||||
return {
|
||||
disabled: false,
|
||||
options: lists.map((lists) => ({
|
||||
value: lists.id,
|
||||
label: lists.name,
|
||||
})),
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please check your permission scope',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
listProperties: Property.DynamicProperties({
|
||||
displayName: 'List',
|
||||
required: true,
|
||||
refreshers: ['listId'],
|
||||
|
||||
auth: kizeoFormsAuth,
|
||||
props: async ({ auth, listId }) => {
|
||||
if (!auth) return {};
|
||||
if (!listId) return {};
|
||||
|
||||
const properties: DynamicPropsValue = {};
|
||||
|
||||
try {
|
||||
const list: KizeoFormsList = await kizeoFormsCommon.fetchList({
|
||||
token: auth.secret_text,
|
||||
listId: listId as unknown as string,
|
||||
});
|
||||
|
||||
const results: Record<string, any> = list.properties_definition;
|
||||
|
||||
for (let i = 0; i < Object.keys(results).length; i++) {
|
||||
const propertyId = Object.keys(results)[i];
|
||||
|
||||
if (Object.values(results)[i].type === 'string') {
|
||||
properties[propertyId] = Property.ShortText({
|
||||
displayName: Object.values(results)[i].display_name,
|
||||
required: false,
|
||||
});
|
||||
} else {
|
||||
properties[propertyId] = Property.Number({
|
||||
displayName: Object.values(results)[i].display_name,
|
||||
required: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
}
|
||||
|
||||
return properties;
|
||||
},
|
||||
}),
|
||||
|
||||
async fetchForms({ token }: { token: string }): Promise<KizeoFormsForms[]> {
|
||||
const response = await httpClient.sendRequest<{ forms: KizeoFormsForms[] }>(
|
||||
{
|
||||
method: HttpMethod.GET,
|
||||
url: endpoint + `v3/forms?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: token,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
if (response.status === 200) {
|
||||
return response.body.forms;
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
async fetchUsers({ token }: { token: string }): Promise<KizeoFormsDataUsers> {
|
||||
const response = await httpClient.sendRequest<{
|
||||
data: KizeoFormsDataUsers;
|
||||
}>({
|
||||
method: HttpMethod.GET,
|
||||
url: endpoint + `v3/users?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: token,
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
return response.body.data;
|
||||
}
|
||||
return { users: [] };
|
||||
},
|
||||
async fetchForm({
|
||||
token,
|
||||
formId,
|
||||
}: {
|
||||
token: string;
|
||||
formId: string;
|
||||
}): Promise<KizeoFormsForms> {
|
||||
const response = await httpClient.sendRequest<{ form: KizeoFormsForms }>({
|
||||
method: HttpMethod.GET,
|
||||
url: endpoint + `v3/forms/${formId}?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: token,
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
return response.body.form;
|
||||
} else {
|
||||
throw new Error(`Failed to fetch form ${formId}`);
|
||||
}
|
||||
},
|
||||
async fetchExports({
|
||||
token,
|
||||
formId,
|
||||
}: {
|
||||
token: string;
|
||||
formId: string;
|
||||
}): Promise<KizeoFormsExports[]> {
|
||||
const response = await httpClient.sendRequest<{
|
||||
exports: KizeoFormsExports[];
|
||||
}>({
|
||||
method: HttpMethod.GET,
|
||||
url: endpoint + `v3/forms/${formId}/exports?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: token,
|
||||
},
|
||||
});
|
||||
if (response.status === 200) {
|
||||
return response.body.exports;
|
||||
} else {
|
||||
throw new Error(`Failed to fetch exports ${formId}`);
|
||||
}
|
||||
},
|
||||
async fetchLists({ token }: { token: string }): Promise<KizeoFormsLists[]> {
|
||||
const response = await httpClient.sendRequest<{ lists: KizeoFormsLists[] }>(
|
||||
{
|
||||
method: HttpMethod.GET,
|
||||
url: endpoint + `v3/lists?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: token,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
if (response.status === 200) {
|
||||
return response.body.lists;
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
async fetchList({
|
||||
token,
|
||||
listId,
|
||||
}: {
|
||||
token: string;
|
||||
listId: string;
|
||||
}): Promise<KizeoFormsList> {
|
||||
const response = await httpClient.sendRequest<{ list: KizeoFormsList }>({
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/lists/${listId}/definition?used-with-activepieces=`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: token,
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
const list: KizeoFormsList = response.body as unknown as KizeoFormsList;
|
||||
return list;
|
||||
} else {
|
||||
throw new Error(`Failed to fetch form ${listId}`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
export interface KizeoFormsForms {
|
||||
id: string;
|
||||
name: string;
|
||||
fields: Record<string, KizeoFormsFields>;
|
||||
}
|
||||
export interface KizeoFormsFields {
|
||||
caption: string;
|
||||
type: string;
|
||||
required: boolean;
|
||||
}
|
||||
export interface KizeoFormsDataExports {
|
||||
exports: KizeoFormsExports[];
|
||||
}
|
||||
export interface KizeoFormsExports {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
export interface KizeoFormsDataUsers {
|
||||
users: KizeoFormsUsers[];
|
||||
}
|
||||
export interface KizeoFormsUsers {
|
||||
id: string;
|
||||
login: string;
|
||||
first_name: string;
|
||||
last_name: string;
|
||||
}
|
||||
export interface KizeoFormsLists {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
export interface KizeoFormsList {
|
||||
list_name: string;
|
||||
properties_definition: Record<string, KizeoFormsListProperty>;
|
||||
order_by: Array<{ id: string; type: string }>;
|
||||
group_by: string[];
|
||||
}
|
||||
|
||||
export interface KizeoFormsListProperty {
|
||||
display_name: string;
|
||||
type: string;
|
||||
id: string;
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
const triggerNameInStore = 'event_on_data_deleted_trigger';
|
||||
export const eventOnDataDeleted = createTrigger({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'event_on_data_deleted',
|
||||
displayName: 'Event On Data Deleted',
|
||||
description: 'Handle EventOnData delete event via webhooks',
|
||||
props: {
|
||||
format: Property.StaticDropdown({
|
||||
displayName: 'Output Format',
|
||||
description: 'Select the output format',
|
||||
required: true,
|
||||
defaultValue: 'simple',
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Simple format',
|
||||
value: 'simple',
|
||||
},
|
||||
{
|
||||
label: 'Advanced format',
|
||||
value: 'advanced',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
formId: kizeoFormsCommon.formId,
|
||||
},
|
||||
sampleData: {
|
||||
id: '1',
|
||||
eventType: '[delete]',
|
||||
data: {
|
||||
format: '4',
|
||||
answer_time: '2023-04-11T13:59:23+02:00',
|
||||
update_answer_time: '2023-04-11T13:59:23+02:00',
|
||||
id_tel: 'web2',
|
||||
form_id: '1',
|
||||
origin: 'web',
|
||||
app_version: 'webapp',
|
||||
media: [],
|
||||
fields: {},
|
||||
id: '1',
|
||||
user_id: '1',
|
||||
recipient_id: '1',
|
||||
parent_data_id: null,
|
||||
},
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
async onEnable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const webhookUrl = context.webhookUrl;
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = webhookUrl.match(/\/webhooks\/([^\/]+)/);
|
||||
let workflowId = 'FlowId';
|
||||
if (match) {
|
||||
workflowId = match[1];
|
||||
}
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks?used-with-actives-pieces=`,
|
||||
body: {
|
||||
on_events: ['delete'],
|
||||
url: webhookUrl,
|
||||
http_verb: 'POST',
|
||||
body_content_choice: 'json_v4',
|
||||
third_party: 'ActivePieces ',
|
||||
third_party_id: workflowId,
|
||||
},
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const { body } = await httpClient.sendRequest<{ id: string }>(request);
|
||||
await context.store?.put<KizeoFormsWebhookInformation>(triggerNameInStore, {
|
||||
webhookId: body.id,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const response = await context.store?.get<KizeoFormsWebhookInformation>(
|
||||
triggerNameInStore
|
||||
);
|
||||
if (response !== null && response !== undefined) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks/${response.webhookId}?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
if (!context.payload.body) {
|
||||
return [];
|
||||
}
|
||||
const body = context.payload.body as BodyDataType;
|
||||
const formattedData: FormattedData = {
|
||||
id: body.id,
|
||||
};
|
||||
if (context.propsValue.format === 'simple') {
|
||||
for (const fieldKey in body.data.fields) {
|
||||
if (
|
||||
body.data.fields[fieldKey].result &&
|
||||
body.data.fields[fieldKey].result?.value !== undefined
|
||||
) {
|
||||
const newFieldKey = fieldKey;
|
||||
formattedData[newFieldKey] = body.data.fields[fieldKey].result?.value;
|
||||
}
|
||||
}
|
||||
return [formattedData];
|
||||
}
|
||||
|
||||
return [body];
|
||||
},
|
||||
});
|
||||
|
||||
interface FormattedData {
|
||||
id: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface BodyDataType {
|
||||
id: string;
|
||||
data: {
|
||||
fields: {
|
||||
[key: string]: {
|
||||
result?: {
|
||||
value: any;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface KizeoFormsWebhookInformation {
|
||||
webhookId: string;
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
const triggerNameInStore = 'event_on_data_finished_trigger';
|
||||
export const eventOnDataFinished = createTrigger({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'event_on_data_finished',
|
||||
displayName: 'Event On Data Finished',
|
||||
description: 'Handle EventOnData save event via webhooks',
|
||||
props: {
|
||||
format: Property.StaticDropdown({
|
||||
displayName: 'Output Format',
|
||||
description: 'Select the output format',
|
||||
required: true,
|
||||
defaultValue: 'simple',
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Simple format',
|
||||
value: 'simple',
|
||||
},
|
||||
{
|
||||
label: 'Advanced format',
|
||||
value: 'advanced',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
formId: kizeoFormsCommon.formId,
|
||||
},
|
||||
sampleData: {
|
||||
id: '1',
|
||||
eventType: '[finished]',
|
||||
data: {
|
||||
format: '4',
|
||||
answer_time: '2023-04-11T13:59:23+02:00',
|
||||
update_answer_time: '2023-04-11T13:59:23+02:00',
|
||||
id_tel: 'web2',
|
||||
form_id: '1',
|
||||
origin: 'web',
|
||||
app_version: 'webapp',
|
||||
media: [],
|
||||
fields: {},
|
||||
id: '1',
|
||||
user_id: '1',
|
||||
recipient_id: '1',
|
||||
parent_data_id: null,
|
||||
},
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
async onEnable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const webhookUrl = context.webhookUrl;
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = webhookUrl.match(/\/webhooks\/([^\/]+)/);
|
||||
let workflowId = 'FlowId';
|
||||
if (match) {
|
||||
workflowId = match[1];
|
||||
}
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks?used-with-actives-pieces=`,
|
||||
body: {
|
||||
on_events: ['finished'],
|
||||
url: webhookUrl,
|
||||
http_verb: 'POST',
|
||||
body_content_choice: 'json_v4',
|
||||
third_party: 'ActivePieces ',
|
||||
third_party_id: workflowId,
|
||||
},
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const { body } = await httpClient.sendRequest<{ id: string }>(request);
|
||||
await context.store?.put<KizeoFormsWebhookInformation>(triggerNameInStore, {
|
||||
webhookId: body.id,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const response = await context.store?.get<KizeoFormsWebhookInformation>(
|
||||
triggerNameInStore
|
||||
);
|
||||
if (response !== null && response !== undefined) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks/${response.webhookId}?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
if (!context.payload.body) {
|
||||
return [];
|
||||
}
|
||||
const body = context.payload.body as BodyDataType;
|
||||
const formattedData: FormattedData = {
|
||||
id: body.id,
|
||||
};
|
||||
if (context.propsValue.format === 'simple') {
|
||||
for (const fieldKey in body.data.fields) {
|
||||
if (
|
||||
body.data.fields[fieldKey].result &&
|
||||
body.data.fields[fieldKey].result?.value !== undefined
|
||||
) {
|
||||
const newFieldKey = fieldKey;
|
||||
formattedData[newFieldKey] = body.data.fields[fieldKey].result?.value;
|
||||
}
|
||||
}
|
||||
return [formattedData];
|
||||
}
|
||||
|
||||
return [body];
|
||||
},
|
||||
});
|
||||
|
||||
interface FormattedData {
|
||||
id: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface BodyDataType {
|
||||
id: string;
|
||||
data: {
|
||||
fields: {
|
||||
[key: string]: {
|
||||
result?: {
|
||||
value: any;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface KizeoFormsWebhookInformation {
|
||||
webhookId: string;
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
const triggerNameInStore = 'event_on_data_pushed_trigger';
|
||||
export const eventOnDataPushed = createTrigger({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'event_on_data_pushed',
|
||||
displayName: 'Event On Data Pushed',
|
||||
description: 'Handle EventOnData push event via webhooks',
|
||||
props: {
|
||||
format: Property.StaticDropdown({
|
||||
displayName: 'Output Format',
|
||||
description: 'Select the output format',
|
||||
required: true,
|
||||
defaultValue: 'simple',
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Simple format',
|
||||
value: 'simple',
|
||||
},
|
||||
{
|
||||
label: 'Advanced format',
|
||||
value: 'advanced',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
formId: kizeoFormsCommon.formId,
|
||||
},
|
||||
sampleData: {
|
||||
id: '1',
|
||||
eventType: '[push]',
|
||||
data: {
|
||||
format: '4',
|
||||
answer_time: '2023-04-11T13:59:23+02:00',
|
||||
update_answer_time: '2023-04-11T13:59:23+02:00',
|
||||
id_tel: 'web2',
|
||||
form_id: '1',
|
||||
origin: 'web',
|
||||
app_version: 'webapp',
|
||||
media: [],
|
||||
fields: {},
|
||||
id: '1',
|
||||
user_id: '1',
|
||||
recipient_id: '1',
|
||||
parent_data_id: null,
|
||||
},
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
async onEnable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const webhookUrl = context.webhookUrl;
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = webhookUrl.match(/\/webhooks\/([^\/]+)/);
|
||||
let workflowId = 'FlowId';
|
||||
if (match) {
|
||||
workflowId = match[1];
|
||||
}
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks?used-with-actives-pieces=`,
|
||||
body: {
|
||||
on_events: ['push'],
|
||||
url: webhookUrl,
|
||||
http_verb: 'POST',
|
||||
body_content_choice: 'json_v4',
|
||||
third_party: 'ActivePieces ',
|
||||
third_party_id: workflowId,
|
||||
},
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const { body } = await httpClient.sendRequest<{ id: string }>(request);
|
||||
await context.store?.put<KizeoFormsWebhookInformation>(triggerNameInStore, {
|
||||
webhookId: body.id,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const response = await context.store?.get<KizeoFormsWebhookInformation>(
|
||||
triggerNameInStore
|
||||
);
|
||||
if (response !== null && response !== undefined) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks/${response.webhookId}?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
if (!context.payload.body) {
|
||||
return [];
|
||||
}
|
||||
const body = context.payload.body as BodyDataType;
|
||||
const formattedData: FormattedData = {
|
||||
id: body.id,
|
||||
};
|
||||
if (context.propsValue.format === 'simple') {
|
||||
for (const fieldKey in body.data.fields) {
|
||||
if (
|
||||
body.data.fields[fieldKey].result &&
|
||||
body.data.fields[fieldKey].result?.value !== undefined
|
||||
) {
|
||||
const newFieldKey = fieldKey;
|
||||
formattedData[newFieldKey] = body.data.fields[fieldKey].result?.value;
|
||||
}
|
||||
}
|
||||
return [formattedData];
|
||||
}
|
||||
|
||||
return [body];
|
||||
},
|
||||
});
|
||||
|
||||
interface FormattedData {
|
||||
id: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface BodyDataType {
|
||||
id: string;
|
||||
data: {
|
||||
fields: {
|
||||
[key: string]: {
|
||||
result?: {
|
||||
value: any;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface KizeoFormsWebhookInformation {
|
||||
webhookId: string;
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
const triggerNameInStore = 'event_on_data_received_trigger';
|
||||
export const eventOnDataPulled = createTrigger({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'event_on_data_received',
|
||||
displayName: 'Event On Data Received',
|
||||
description: 'Handle EventOnData receive event via webhooks',
|
||||
props: {
|
||||
format: Property.StaticDropdown({
|
||||
displayName: 'Output Format',
|
||||
description: 'Select the output format',
|
||||
required: true,
|
||||
defaultValue: 'simple',
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Simple format',
|
||||
value: 'simple',
|
||||
},
|
||||
{
|
||||
label: 'Advanced format',
|
||||
value: 'advanced',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
formId: kizeoFormsCommon.formId,
|
||||
},
|
||||
sampleData: {
|
||||
id: '1',
|
||||
eventType: '[pull]',
|
||||
data: {
|
||||
format: '4',
|
||||
answer_time: '2023-04-11T13:59:23+02:00',
|
||||
update_answer_time: '2023-04-11T13:59:23+02:00',
|
||||
id_tel: 'web2',
|
||||
form_id: '1',
|
||||
origin: 'web',
|
||||
app_version: 'webapp',
|
||||
media: [],
|
||||
fields: {},
|
||||
id: '1',
|
||||
user_id: '1',
|
||||
recipient_id: '1',
|
||||
parent_data_id: null,
|
||||
},
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
async onEnable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const webhookUrl = context.webhookUrl;
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = webhookUrl.match(/\/webhooks\/([^\/]+)/);
|
||||
let workflowId = 'FlowId';
|
||||
if (match) {
|
||||
workflowId = match[1];
|
||||
}
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks?used-with-actives-pieces=`,
|
||||
body: {
|
||||
on_events: ['pull'],
|
||||
url: webhookUrl,
|
||||
http_verb: 'POST',
|
||||
body_content_choice: 'json_v4',
|
||||
third_party: 'ActivePieces ',
|
||||
third_party_id: workflowId,
|
||||
},
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const { body } = await httpClient.sendRequest<{ id: string }>(request);
|
||||
await context.store?.put<KizeoFormsWebhookInformation>(triggerNameInStore, {
|
||||
webhookId: body.id,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const response = await context.store?.get<KizeoFormsWebhookInformation>(
|
||||
triggerNameInStore
|
||||
);
|
||||
if (response !== null && response !== undefined) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks/${response.webhookId}?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
if (!context.payload.body) {
|
||||
return [];
|
||||
}
|
||||
const body = context.payload.body as BodyDataType;
|
||||
const formattedData: FormattedData = {
|
||||
id: body.id,
|
||||
};
|
||||
if (context.propsValue.format === 'simple') {
|
||||
for (const fieldKey in body.data.fields) {
|
||||
if (
|
||||
body.data.fields[fieldKey].result &&
|
||||
body.data.fields[fieldKey].result?.value !== undefined
|
||||
) {
|
||||
const newFieldKey = fieldKey;
|
||||
formattedData[newFieldKey] = body.data.fields[fieldKey].result?.value;
|
||||
}
|
||||
}
|
||||
return [formattedData];
|
||||
}
|
||||
|
||||
return [body];
|
||||
},
|
||||
});
|
||||
|
||||
interface FormattedData {
|
||||
id: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface BodyDataType {
|
||||
id: string;
|
||||
data: {
|
||||
fields: {
|
||||
[key: string]: {
|
||||
result?: {
|
||||
value: any;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface KizeoFormsWebhookInformation {
|
||||
webhookId: string;
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
const triggerNameInStore = 'event_on_data_updated_trigger';
|
||||
export const eventOnDataUpdated = createTrigger({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'event_on_data_updated',
|
||||
displayName: 'Event On Data Updated',
|
||||
description: 'Handle EventOnData update event via webhooks',
|
||||
props: {
|
||||
format: Property.StaticDropdown({
|
||||
displayName: 'Output Format',
|
||||
description: 'Select the output format',
|
||||
required: true,
|
||||
defaultValue: 'simple',
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Simple format',
|
||||
value: 'simple',
|
||||
},
|
||||
{
|
||||
label: 'Advanced format',
|
||||
value: 'advanced',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
formId: kizeoFormsCommon.formId,
|
||||
},
|
||||
sampleData: {
|
||||
id: '1',
|
||||
eventType: '[finished]',
|
||||
data: {
|
||||
format: '4',
|
||||
answer_time: '2023-04-11T13:59:23+02:00',
|
||||
update_answer_time: '2023-04-11T13:59:23+02:00',
|
||||
id_tel: 'web2',
|
||||
form_id: '1',
|
||||
origin: 'web',
|
||||
app_version: 'webapp',
|
||||
media: [],
|
||||
fields: {},
|
||||
id: '1',
|
||||
user_id: '1',
|
||||
recipient_id: '1',
|
||||
parent_data_id: null,
|
||||
},
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
async onEnable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const webhookUrl = context.webhookUrl;
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = webhookUrl.match(/\/webhooks\/([^\/]+)/);
|
||||
let workflowId = 'FlowId';
|
||||
if (match) {
|
||||
workflowId = match[1];
|
||||
}
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks?used-with-actives-pieces=`,
|
||||
body: {
|
||||
on_events: ['update'],
|
||||
url: webhookUrl,
|
||||
http_verb: 'POST',
|
||||
body_content_choice: 'json_v4',
|
||||
third_party: 'ActivePieces ',
|
||||
third_party_id: workflowId,
|
||||
},
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const { body } = await httpClient.sendRequest<{ id: string }>(request);
|
||||
await context.store?.put<KizeoFormsWebhookInformation>(triggerNameInStore, {
|
||||
webhookId: body.id,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const response = await context.store?.get<KizeoFormsWebhookInformation>(
|
||||
triggerNameInStore
|
||||
);
|
||||
if (response !== null && response !== undefined) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks/${response.webhookId}?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
if (!context.payload.body) {
|
||||
return [];
|
||||
}
|
||||
const body = context.payload.body as BodyDataType;
|
||||
const formattedData: FormattedData = {
|
||||
id: body.id,
|
||||
};
|
||||
if (context.propsValue.format === 'simple') {
|
||||
for (const fieldKey in body.data.fields) {
|
||||
if (
|
||||
body.data.fields[fieldKey].result &&
|
||||
body.data.fields[fieldKey].result?.value !== undefined
|
||||
) {
|
||||
const newFieldKey = fieldKey;
|
||||
formattedData[newFieldKey] = body.data.fields[fieldKey].result?.value;
|
||||
}
|
||||
}
|
||||
return [formattedData];
|
||||
}
|
||||
|
||||
return [body];
|
||||
},
|
||||
});
|
||||
|
||||
interface FormattedData {
|
||||
id: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface BodyDataType {
|
||||
id: string;
|
||||
data: {
|
||||
fields: {
|
||||
[key: string]: {
|
||||
result?: {
|
||||
value: any;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface KizeoFormsWebhookInformation {
|
||||
webhookId: string;
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { endpoint, kizeoFormsCommon } from '../common';
|
||||
import { kizeoFormsAuth } from '../..';
|
||||
|
||||
const triggerNameInStore = 'event_on_data_trigger';
|
||||
export const eventOnData = createTrigger({
|
||||
auth: kizeoFormsAuth,
|
||||
name: 'event_on_data',
|
||||
displayName: 'Event On Data',
|
||||
description: 'Handle EventOnData events via webhooks',
|
||||
props: {
|
||||
format: Property.StaticDropdown({
|
||||
displayName: 'Output Format',
|
||||
description: 'Select the output format',
|
||||
required: true,
|
||||
defaultValue: 'simple',
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Simple format',
|
||||
value: 'simple',
|
||||
},
|
||||
{
|
||||
label: 'Advanced format',
|
||||
value: 'advanced',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
formId: kizeoFormsCommon.formId,
|
||||
event1: Property.StaticDropdown({
|
||||
displayName: 'Events',
|
||||
description: 'Which events will trigger this hook',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'Data Deleted',
|
||||
value: 'delete',
|
||||
},
|
||||
{
|
||||
label: 'Data Saved',
|
||||
value: 'finished',
|
||||
},
|
||||
{
|
||||
label: 'Data Updated',
|
||||
value: 'update',
|
||||
},
|
||||
{
|
||||
label: 'Push Received',
|
||||
value: 'pull',
|
||||
},
|
||||
{
|
||||
label: 'Push Send',
|
||||
value: 'push',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
event2: Property.StaticDropdown({
|
||||
displayName: 'Events',
|
||||
description: 'Which events will trigger this hook',
|
||||
required: false,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: '',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
label: 'Data Deleted',
|
||||
value: 'delete',
|
||||
},
|
||||
{
|
||||
label: 'Data Saved',
|
||||
value: 'finished',
|
||||
},
|
||||
{
|
||||
label: 'Data Updated',
|
||||
value: 'update',
|
||||
},
|
||||
{
|
||||
label: 'Push Received',
|
||||
value: 'pull',
|
||||
},
|
||||
{
|
||||
label: 'Push Send',
|
||||
value: 'push',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
event3: Property.StaticDropdown({
|
||||
displayName: 'Events',
|
||||
description: 'Which events will trigger this hook',
|
||||
required: false,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: '',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
label: 'Data Deleted',
|
||||
value: 'delete',
|
||||
},
|
||||
{
|
||||
label: 'Data Saved',
|
||||
value: 'finished',
|
||||
},
|
||||
{
|
||||
label: 'Data Updated',
|
||||
value: 'update',
|
||||
},
|
||||
{
|
||||
label: 'Push Received',
|
||||
value: 'pull',
|
||||
},
|
||||
{
|
||||
label: 'Push Send',
|
||||
value: 'push',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
event4: Property.StaticDropdown({
|
||||
displayName: 'Events',
|
||||
description: 'Which events will trigger this hook',
|
||||
required: false,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: '',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
label: 'Data Deleted',
|
||||
value: 'delete',
|
||||
},
|
||||
{
|
||||
label: 'Data Saved',
|
||||
value: 'finished',
|
||||
},
|
||||
{
|
||||
label: 'Data Updated',
|
||||
value: 'update',
|
||||
},
|
||||
{
|
||||
label: 'Push Received',
|
||||
value: 'pull',
|
||||
},
|
||||
{
|
||||
label: 'Push Send',
|
||||
value: 'push',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
event5: Property.StaticDropdown({
|
||||
displayName: 'Events',
|
||||
description: 'Which events will trigger this hook',
|
||||
required: false,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: '',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
label: 'Data Deleted',
|
||||
value: 'delete',
|
||||
},
|
||||
{
|
||||
label: 'Data Saved',
|
||||
value: 'finished',
|
||||
},
|
||||
{
|
||||
label: 'Data Updated',
|
||||
value: 'update',
|
||||
},
|
||||
{
|
||||
label: 'Push Received',
|
||||
value: 'pull',
|
||||
},
|
||||
{
|
||||
label: 'Push Send',
|
||||
value: 'push',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
},
|
||||
sampleData: {
|
||||
id: '1',
|
||||
eventType: '[finished, pull]',
|
||||
data: {
|
||||
format: '4',
|
||||
answer_time: '2023-04-11T13:59:23+02:00',
|
||||
update_answer_time: '2023-04-11T13:59:23+02:00',
|
||||
id_tel: 'web2',
|
||||
form_id: '1',
|
||||
origin: 'web',
|
||||
app_version: 'webapp',
|
||||
media: [],
|
||||
fields: {},
|
||||
id: '1',
|
||||
user_id: '1',
|
||||
recipient_id: '1',
|
||||
parent_data_id: null,
|
||||
},
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
async onEnable(context) {
|
||||
const { formId, event1, event2, event3, event4, event5 } =
|
||||
context.propsValue;
|
||||
const onEvents = [
|
||||
event1,
|
||||
event2 !== '' ? event2 : null,
|
||||
event3 !== '' ? event3 : null,
|
||||
event4 !== '' ? event4 : null,
|
||||
event5 !== '' ? event5 : null,
|
||||
].filter(Boolean);
|
||||
const webhookUrl = context.webhookUrl;
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = webhookUrl.match(/\/webhooks\/([^\/]+)/);
|
||||
let workflowId = 'FlowId';
|
||||
if (match) {
|
||||
workflowId = match[1];
|
||||
}
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks?used-with-actives-pieces=`,
|
||||
body: {
|
||||
on_events: onEvents,
|
||||
url: webhookUrl,
|
||||
http_verb: 'POST',
|
||||
body_content_choice: 'json_v4',
|
||||
third_party: 'ActivePieces ',
|
||||
third_party_id: workflowId,
|
||||
},
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const { body } = await httpClient.sendRequest<{ id: string }>(request);
|
||||
await context.store?.put<KizeoFormsWebhookInformation>(triggerNameInStore, {
|
||||
webhookId: body.id,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
const { formId } = context.propsValue;
|
||||
const response = await context.store?.get<KizeoFormsWebhookInformation>(
|
||||
triggerNameInStore
|
||||
);
|
||||
if (response !== null && response !== undefined) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
endpoint +
|
||||
`public/v4/forms/${formId}/third_party_webhooks/${response.webhookId}?used-with-actives-pieces=`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
if (!context.payload.body) {
|
||||
return [];
|
||||
}
|
||||
const body = context.payload.body as BodyDataType;
|
||||
const formattedData: FormattedData = {
|
||||
id: body.id,
|
||||
};
|
||||
if (context.propsValue.format === 'simple') {
|
||||
for (const fieldKey in body.data.fields) {
|
||||
if (
|
||||
body.data.fields[fieldKey].result &&
|
||||
body.data.fields[fieldKey].result?.value !== undefined
|
||||
) {
|
||||
const newFieldKey = fieldKey;
|
||||
formattedData[newFieldKey] = body.data.fields[fieldKey].result?.value;
|
||||
}
|
||||
}
|
||||
return [formattedData];
|
||||
}
|
||||
|
||||
return [body];
|
||||
},
|
||||
});
|
||||
|
||||
interface FormattedData {
|
||||
id: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface BodyDataType {
|
||||
id: string;
|
||||
data: {
|
||||
fields: {
|
||||
[key: string]: {
|
||||
result?: {
|
||||
value: any;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface KizeoFormsWebhookInformation {
|
||||
webhookId: string;
|
||||
}
|
||||
@@ -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