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,33 @@
|
||||
{
|
||||
"Trello": "Trello",
|
||||
"Project management tool for teams": "Project management tool for teams",
|
||||
"API Key": "API Key",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Create Card",
|
||||
"Get Card": "Get Card",
|
||||
"Create a new card in Trello": "Create a new card in Trello",
|
||||
"Get a card in Trello": "Get a card in Trello",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Lists",
|
||||
"Task Name": "Task Name",
|
||||
"Task Description": "Task Description",
|
||||
"Position": "Position",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Card ID",
|
||||
"List of boards": "List of boards",
|
||||
"Get lists from a board": "Get lists from a board",
|
||||
"The name of the card to create": "The name of the card to create",
|
||||
"The description of the card to create": "The description of the card to create",
|
||||
"Place the card on top or bottom of the list": "Place the card on top or bottom of the list",
|
||||
"Assign labels to the card": "Assign labels to the card",
|
||||
"The card ID": "The card ID",
|
||||
"Top": "Top",
|
||||
"Bottom": "Bottom",
|
||||
"Card Moved to list": "Card Moved to list",
|
||||
"New Card": "New Card",
|
||||
"Trigger when a card is moved to the list specified": "Trigger when a card is moved to the list specified",
|
||||
"Trigger when a new card is created": "Trigger when a new card is created"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Projektverwaltungswerkzeug für Teams",
|
||||
"API Key": "API-Schlüssel",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nUm Ihren API-Schlüssel und Ihr Token zu erhalten, folgen Sie diesen Schritten:\n\n1. Gehen Sie auf https://trello. om/power-ups/admin\n2. Klicke **Neu** um ein neues Power-up\nzu erstellen. Geben Sie die Powerup-Informationen ein und klicken Sie auf **Erstellen**\n4. Klicken Sie auf der API-Schlüsselseite auf **Erzeugen eines neuen API-Schlüssels**\n5. Kopieren Sie den **API Schlüssel** und geben Sie ihn in die Trello API Key Verbindung\nein. Klicke **manuell ein Token** neben dem API-Schlüsselfeld\nan. Kopieren Sie den Token und fügen Sie ihn in die Trello Token Verbindung\nein. Ihre Verbindung sollte jetzt funktionieren!\n",
|
||||
"Create Card": "Karte erstellen",
|
||||
"Get Card": "Karte erhalten",
|
||||
"Update Card": "Karte aktualisieren",
|
||||
"Delete Card": "Karte löschen",
|
||||
"Get All Card Attachments": "Alle Kartenanhänge erhalten",
|
||||
"Add Card Attachment": "Kartenanhang hinzufügen",
|
||||
"Get Card Attachment": "Kartenanhang erhalten",
|
||||
"Delete Card Attachment": "Kartenanhang löschen",
|
||||
"Create a new card in Trello": "Erstelle eine neue Karte in Trello",
|
||||
"Gets a card by ID.": "Ruft eine Karte per ID ab.",
|
||||
"Updates an existing card.": "Aktualisiert eine vorhandene Karte.",
|
||||
"Deletes an existing card.": "Löscht eine vorhandene Karte.",
|
||||
"Gets all attachments on a card.": "Ruft alle Anhänge auf einer Karte ab.",
|
||||
"Adds an attachment to a card.": "Fügt einer Karte einen Anhang hinzu.",
|
||||
"Gets a specific attachment on a card.": "Ruft einen bestimmten Anhang auf eine Karte ab.",
|
||||
"Deletes an attachment from a card.": "Löscht einen Anhang von einer Karte.",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Listen",
|
||||
"Task Name": "Aufgabenname",
|
||||
"Task Description": "Aufgabenbeschreibung",
|
||||
"Position": "Position",
|
||||
"Labels": "Etiketten",
|
||||
"Card ID": "Kartennummer",
|
||||
"Card Name": "Kartenname",
|
||||
"Card Description": "Kartenbeschreibung",
|
||||
"Archived": "Archiviert",
|
||||
"Due Date": "Fälligkeitsdatum",
|
||||
"Attachment File": "Dateianhang",
|
||||
"Attachment Name": "Anhangname",
|
||||
"MIME Type": "MIME-Typ",
|
||||
"Set as Cover": "Als Cover festlegen",
|
||||
"Attachment ID": "Anhang-ID",
|
||||
"List of boards": "Liste der Boards",
|
||||
"Get lists from a board": "Listen von einem Board abrufen",
|
||||
"The name of the card to create": "Der Name der zu erstellenden Karte",
|
||||
"The description of the card to create": "Die Beschreibung der zu erstellenden Karte",
|
||||
"Place the card on top or bottom of the list": "Platziere die Karte oben oder unten auf der Liste",
|
||||
"Assign labels to the card": "Beschriftungen der Karte zuweisen",
|
||||
"The card ID": "Die Kartennummer",
|
||||
"The ID of the card to update": "Die ID der zu aktualisierenden Karte",
|
||||
"The new name of the card": "Der neue Name der Karte",
|
||||
"The new description of the card": "Die neue Beschreibung der Karte",
|
||||
"Move the card to a new position": "Verschiebe die Karte an eine neue Position",
|
||||
"Archive or unarchive the card": "Karte archivieren oder dearchivieren",
|
||||
"Set a due date for the card": "Fälligkeitsdatum für die Karte festlegen",
|
||||
"The ID of the card to delete.": "Die ID der zu löschenden Karte.",
|
||||
"The ID of the card to get attachments from": "Die ID der Karte, um Anhänge von",
|
||||
"The ID of the card to add attachment to": "Die ID der Karte zum Hinzufügen des Anhangs",
|
||||
"Set this attachment as the card cover": "Diesen Anhang als Kartencover festlegen",
|
||||
"The ID of the card": "Die ID der Karte",
|
||||
"The ID of the attachment to retrieve": "Die ID des zu empfangenen Anhangs",
|
||||
"The ID of the attachment to delete": "ID des zu löschenden Anhangs",
|
||||
"Top": "Oben",
|
||||
"Bottom": "Unten",
|
||||
"Card Moved to list": "Karte in Liste verschoben",
|
||||
"New Card": "Neue Karte",
|
||||
"Card Deadline": "Kartenfrist",
|
||||
"Trigger when a card is moved to the list specified": "Auslösen wenn eine Karte in die angegebene Liste verschoben wird",
|
||||
"Trigger when a new card is created": "Auslösen wenn eine neue Karte erstellt wird",
|
||||
"Triggers at a specified time before a card deadline.": "Löst zu einer bestimmten Zeit vor einer Kartenfrist aus.",
|
||||
"Time unit": "Zeiteinheit",
|
||||
"Time before due": "Zeit vor Fälligkeit",
|
||||
"Select unit for time before due": "Einheit vor Fälligkeit auswählen",
|
||||
"How long before the due date the trigger should run (use with time unit)": "Wie lange vor dem Fälligkeitsdatum der Trigger laufen soll (Verwendung mit Zeiteinheit)",
|
||||
"Minutes": "Minuten",
|
||||
"Hours": "Stunden"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Herramienta de gestión de proyectos para equipos",
|
||||
"API Key": "Clave API",
|
||||
"Trello API Key": "Clave API de Trello",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Token de Trello",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nPara obtener tu clave API y token, sigue estos pasos:\n\n1. Ve a https://trello. om/power-ups/admin\n2. Haga clic en **Nuevo** para crear un nuevo potenciador\n3. Introduzca información de encendido y haga clic en **Crear**\n4. Desde la página de la clave de API, haga clic en **Generar una nueva clave API**\n5. Copie la **clave API** e introdúzcala en la conexión de Trello API Key\n6. Haga clic en **generar manualmente un token** junto al campo de clave API\n7. Copia el token y pégalo en la conexión de Trello Token\n8. ¡Tu conexión debería funcionar!\n",
|
||||
"Create Card": "Crear tarjeta",
|
||||
"Get Card": "Obtener tarjeta",
|
||||
"Update Card": "Actualizar tarjeta",
|
||||
"Delete Card": "Eliminar tarjeta",
|
||||
"Get All Card Attachments": "Obtener todos los archivos adjuntos de tarjeta",
|
||||
"Add Card Attachment": "Añadir adjunto de tarjeta",
|
||||
"Get Card Attachment": "Obtener adjunto de tarjeta",
|
||||
"Delete Card Attachment": "Eliminar adjunto de tarjeta",
|
||||
"Create a new card in Trello": "Crear una nueva tarjeta en Trello",
|
||||
"Gets a card by ID.": "Obtiene una tarjeta por ID.",
|
||||
"Updates an existing card.": "Actualiza una tarjeta existente.",
|
||||
"Deletes an existing card.": "Elimina una tarjeta existente.",
|
||||
"Gets all attachments on a card.": "Obtiene todos los archivos adjuntos en una tarjeta.",
|
||||
"Adds an attachment to a card.": "Añade un archivo adjunto a una tarjeta.",
|
||||
"Gets a specific attachment on a card.": "Obtiene un archivo adjunto específico en una tarjeta.",
|
||||
"Deletes an attachment from a card.": "Elimina un archivo adjunto de una tarjeta.",
|
||||
"Boards": "Tableros",
|
||||
"Lists": "Listas",
|
||||
"Task Name": "Nombre de tarea",
|
||||
"Task Description": "Descripción de la tarea",
|
||||
"Position": "Posición",
|
||||
"Labels": "Etiquetas",
|
||||
"Card ID": "ID de tarjeta",
|
||||
"Card Name": "Nombre de la tarjeta",
|
||||
"Card Description": "Descripción de la tarjeta",
|
||||
"Archived": "Archivado",
|
||||
"Due Date": "Fecha de fin",
|
||||
"Attachment File": "Archivo adjunto",
|
||||
"Attachment Name": "Nombre del archivo adjunto",
|
||||
"MIME Type": "Tipo MIME",
|
||||
"Set as Cover": "Establecer como portada",
|
||||
"Attachment ID": "ID de adjunto",
|
||||
"List of boards": "Lista de tableros",
|
||||
"Get lists from a board": "Obtener listas de un tablero",
|
||||
"The name of the card to create": "El nombre de la tarjeta a crear",
|
||||
"The description of the card to create": "La descripción de la tarjeta a crear",
|
||||
"Place the card on top or bottom of the list": "Coloca la tarjeta en la parte superior o inferior de la lista",
|
||||
"Assign labels to the card": "Asignar etiquetas a la tarjeta",
|
||||
"The card ID": "El ID de tarjeta",
|
||||
"The ID of the card to update": "El ID de la tarjeta a actualizar",
|
||||
"The new name of the card": "El nuevo nombre de la tarjeta",
|
||||
"The new description of the card": "La nueva descripción de la tarjeta",
|
||||
"Move the card to a new position": "Mover la tarjeta a una nueva posición",
|
||||
"Archive or unarchive the card": "Archivar o desarchivar la tarjeta",
|
||||
"Set a due date for the card": "Establecer una fecha límite para la tarjeta",
|
||||
"The ID of the card to delete.": "El ID de la tarjeta a eliminar.",
|
||||
"The ID of the card to get attachments from": "El ID de la tarjeta para obtener archivos adjuntos de",
|
||||
"The ID of the card to add attachment to": "El ID de la tarjeta a la que agregar el archivo adjunto",
|
||||
"Set this attachment as the card cover": "Establecer este adjunto como la portada de la tarjeta",
|
||||
"The ID of the card": "El ID de la tarjeta",
|
||||
"The ID of the attachment to retrieve": "El ID del archivo adjunto a recuperar",
|
||||
"The ID of the attachment to delete": "El ID del archivo adjunto a eliminar",
|
||||
"Top": "Subir",
|
||||
"Bottom": "Abajo",
|
||||
"Card Moved to list": "Tarjeta movida a la lista",
|
||||
"New Card": "Nueva tarjeta",
|
||||
"Card Deadline": "Fecha límite de tarjeta",
|
||||
"Trigger when a card is moved to the list specified": "Activar cuando una tarjeta se mueve a la lista especificada",
|
||||
"Trigger when a new card is created": "Activar cuando se crea una nueva tarjeta",
|
||||
"Triggers at a specified time before a card deadline.": "Dispara en un tiempo especificado antes de la fecha límite de la tarjeta.",
|
||||
"Time unit": "Unidad de tiempo",
|
||||
"Time before due": "Tiempo antes del vencimiento",
|
||||
"Select unit for time before due": "Seleccionar unidad antes del vencimiento",
|
||||
"How long before the due date the trigger should run (use with time unit)": "Cuánto tiempo antes de la fecha de vencimiento debe ejecutarse el disparador (usar con unidad de tiempo)",
|
||||
"Minutes": "Minutos",
|
||||
"Hours": "Horas"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Outil de gestion de projet pour les équipes",
|
||||
"API Key": "Clé API",
|
||||
"Trello API Key": "Clé API Trello",
|
||||
"Token": "Jeton",
|
||||
"Trello Token": "Jeton de Trello",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Créer une carte",
|
||||
"Get Card": "Obtenir une carte",
|
||||
"Update Card": "Mettre à jour la carte",
|
||||
"Delete Card": "Supprimer la carte",
|
||||
"Get All Card Attachments": "Obtenir toutes les pièces jointes de la carte",
|
||||
"Add Card Attachment": "Ajouter une pièce jointe de la carte",
|
||||
"Get Card Attachment": "Obtenir une pièce jointe de carte",
|
||||
"Delete Card Attachment": "Supprimer la pièce jointe de la carte",
|
||||
"Create a new card in Trello": "Créer une nouvelle carte dans Trello",
|
||||
"Gets a card by ID.": "Renvoie une carte par ID.",
|
||||
"Updates an existing card.": "Met à jour une carte existante.",
|
||||
"Deletes an existing card.": "Supprime une carte existante.",
|
||||
"Gets all attachments on a card.": "Obtient toutes les pièces jointes sur une carte.",
|
||||
"Adds an attachment to a card.": "Ajoute une pièce jointe à une carte.",
|
||||
"Gets a specific attachment on a card.": "Obtient une pièce jointe spécifique sur une carte.",
|
||||
"Deletes an attachment from a card.": "Supprime une pièce jointe d'une carte.",
|
||||
"Boards": "Tableaux",
|
||||
"Lists": "Listes",
|
||||
"Task Name": "Nom de la tâche",
|
||||
"Task Description": "Description de tâche",
|
||||
"Position": "Position",
|
||||
"Labels": "Étiquettes",
|
||||
"Card ID": "ID de la carte",
|
||||
"Card Name": "Nom de la carte",
|
||||
"Card Description": "Description de la carte",
|
||||
"Archived": "Archivé",
|
||||
"Due Date": "Date de fin",
|
||||
"Attachment File": "Fichier pièce jointe",
|
||||
"Attachment Name": "Nom de la pièce jointe",
|
||||
"MIME Type": "Type MIME",
|
||||
"Set as Cover": "Définir comme couverture",
|
||||
"Attachment ID": "ID de la pièce jointe",
|
||||
"List of boards": "Liste des tableaux",
|
||||
"Get lists from a board": "Récupérer les listes depuis un tableau",
|
||||
"The name of the card to create": "Le nom de la carte à créer",
|
||||
"The description of the card to create": "La description de la carte à créer",
|
||||
"Place the card on top or bottom of the list": "Placer la carte en haut ou en bas de la liste",
|
||||
"Assign labels to the card": "Assigner des étiquettes à la carte",
|
||||
"The card ID": "L'ID de la carte",
|
||||
"The ID of the card to update": "L'ID de la carte à mettre à jour",
|
||||
"The new name of the card": "Le nouveau nom de la carte",
|
||||
"The new description of the card": "La nouvelle description de la carte",
|
||||
"Move the card to a new position": "Déplacer la carte vers une nouvelle position",
|
||||
"Archive or unarchive the card": "Archiver ou désarchiver la carte",
|
||||
"Set a due date for the card": "Définir une date d'échéance pour la carte",
|
||||
"The ID of the card to delete.": "L'ID de la carte à supprimer.",
|
||||
"The ID of the card to get attachments from": "L'ID de la carte pour obtenir des pièces jointes de",
|
||||
"The ID of the card to add attachment to": "L'ID de la carte à ajouter à la pièce jointe",
|
||||
"Set this attachment as the card cover": "Définir cette pièce jointe comme couverture de carte",
|
||||
"The ID of the card": "L'ID de la carte",
|
||||
"The ID of the attachment to retrieve": "L'ID de la pièce jointe à récupérer",
|
||||
"The ID of the attachment to delete": "L'ID de la pièce jointe à supprimer",
|
||||
"Top": "En haut",
|
||||
"Bottom": "Bas",
|
||||
"Card Moved to list": "Carte déplacée vers la liste",
|
||||
"New Card": "Nouvelle carte",
|
||||
"Card Deadline": "Date limite de la carte",
|
||||
"Trigger when a card is moved to the list specified": "Déclencher quand une carte est déplacée dans la liste spécifiée",
|
||||
"Trigger when a new card is created": "Déclencher quand une nouvelle carte est créée",
|
||||
"Triggers at a specified time before a card deadline.": "Déclenche à un moment précis avant la date limite de la carte.",
|
||||
"Time unit": "Unité de temps",
|
||||
"Time before due": "Temps avant échéance",
|
||||
"Select unit for time before due": "Sélectionnez l'unité pour le temps avant la date limite",
|
||||
"How long before the due date the trigger should run (use with time unit)": "Combien de temps avant la date d'échéance le déclencheur doit s'exécuter (utiliser avec l'unité de temps)",
|
||||
"Minutes": "Minutes",
|
||||
"Hours": "Heures"
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"Trello": "Trello",
|
||||
"Project management tool for teams": "Project management tool for teams",
|
||||
"API Key": "API Key",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Create Card",
|
||||
"Get Card": "Get Card",
|
||||
"Create a new card in Trello": "Create a new card in Trello",
|
||||
"Get a card in Trello": "Get a card in Trello",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Lists",
|
||||
"Task Name": "Task Name",
|
||||
"Task Description": "Task Description",
|
||||
"Position": "Position",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Card ID",
|
||||
"List of boards": "List of boards",
|
||||
"Get lists from a board": "Get lists from a board",
|
||||
"The name of the card to create": "The name of the card to create",
|
||||
"The description of the card to create": "The description of the card to create",
|
||||
"Place the card on top or bottom of the list": "Place the card on top or bottom of the list",
|
||||
"Assign labels to the card": "Assign labels to the card",
|
||||
"The card ID": "The card ID",
|
||||
"Top": "Top",
|
||||
"Bottom": "Bottom",
|
||||
"Card Moved to list": "Card Moved to list",
|
||||
"New Card": "New Card",
|
||||
"Trigger when a card is moved to the list specified": "Trigger when a card is moved to the list specified",
|
||||
"Trigger when a new card is created": "Trigger when a new card is created"
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"Trello": "Trello",
|
||||
"Project management tool for teams": "Project management tool for teams",
|
||||
"API Key": "API Key",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Create Card",
|
||||
"Get Card": "Get Card",
|
||||
"Create a new card in Trello": "Create a new card in Trello",
|
||||
"Get a card in Trello": "Get a card in Trello",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Lists",
|
||||
"Task Name": "Task Name",
|
||||
"Task Description": "Task Description",
|
||||
"Position": "Position",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Card ID",
|
||||
"List of boards": "List of boards",
|
||||
"Get lists from a board": "Get lists from a board",
|
||||
"The name of the card to create": "The name of the card to create",
|
||||
"The description of the card to create": "The description of the card to create",
|
||||
"Place the card on top or bottom of the list": "Place the card on top or bottom of the list",
|
||||
"Assign labels to the card": "Assign labels to the card",
|
||||
"The card ID": "The card ID",
|
||||
"Top": "Top",
|
||||
"Bottom": "Bottom",
|
||||
"Card Moved to list": "Card Moved to list",
|
||||
"New Card": "New Card",
|
||||
"Trigger when a card is moved to the list specified": "Trigger when a card is moved to the list specified",
|
||||
"Trigger when a new card is created": "Trigger when a new card is created"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "チームのためのプロジェクト管理ツール",
|
||||
"API Key": "API キー",
|
||||
"Trello API Key": "Trello APIキー",
|
||||
"Token": "トークン",
|
||||
"Trello Token": "Trelloトークン",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "カードを作成",
|
||||
"Get Card": "カードを取得",
|
||||
"Update Card": "カードを更新",
|
||||
"Delete Card": "カードを削除",
|
||||
"Get All Card Attachments": "すべてのカード添付ファイルを取得",
|
||||
"Add Card Attachment": "カード添付ファイルを追加",
|
||||
"Get Card Attachment": "カードアタッチメントを取得",
|
||||
"Delete Card Attachment": "カード添付ファイルを削除",
|
||||
"Create a new card in Trello": "Trelloで新しいカードを作成",
|
||||
"Gets a card by ID.": "IDでカードを取得します。",
|
||||
"Updates an existing card.": "既存のカードを更新します。",
|
||||
"Deletes an existing card.": "既存のカードを削除する。",
|
||||
"Gets all attachments on a card.": "カード上のすべての添付ファイルを取得します。",
|
||||
"Adds an attachment to a card.": "カードに添付ファイルを追加します。",
|
||||
"Gets a specific attachment on a card.": "カード上の特定の添付ファイルを取得します。",
|
||||
"Deletes an attachment from a card.": "カードから添付ファイルを削除します。",
|
||||
"Boards": "ボード",
|
||||
"Lists": "リスト",
|
||||
"Task Name": "タスク名",
|
||||
"Task Description": "タスクの説明",
|
||||
"Position": "位置",
|
||||
"Labels": "ラベル",
|
||||
"Card ID": "カードID",
|
||||
"Card Name": "カード名",
|
||||
"Card Description": "カードの説明",
|
||||
"Archived": "アーカイブ済み",
|
||||
"Due Date": "締切日",
|
||||
"Attachment File": "添付ファイル",
|
||||
"Attachment Name": "添付ファイル名",
|
||||
"MIME Type": "MIMEタイプ",
|
||||
"Set as Cover": "カバーとして設定",
|
||||
"Attachment ID": "添付ファイルID",
|
||||
"List of boards": "ボードの一覧",
|
||||
"Get lists from a board": "ボードからリストを取得する",
|
||||
"The name of the card to create": "作成するカードの名前",
|
||||
"The description of the card to create": "作成するカードの説明",
|
||||
"Place the card on top or bottom of the list": "カードをリストの上部または下部に配置します",
|
||||
"Assign labels to the card": "カードにラベルを割り当てる",
|
||||
"The card ID": "カードID",
|
||||
"The ID of the card to update": "更新するカードのID",
|
||||
"The new name of the card": "カードの新しい名前",
|
||||
"The new description of the card": "カードの新しい説明",
|
||||
"Move the card to a new position": "カードを新しい位置に移動する",
|
||||
"Archive or unarchive the card": "カードをアーカイブまたはアーカイブ解除",
|
||||
"Set a due date for the card": "カードの期日を設定",
|
||||
"The ID of the card to delete.": "削除するカードの ID",
|
||||
"The ID of the card to get attachments from": "添付ファイルを取得するカードの ID",
|
||||
"The ID of the card to add attachment to": "添付ファイルを追加するカードのID",
|
||||
"Set this attachment as the card cover": "この添付ファイルをカードカバーとして設定する",
|
||||
"The ID of the card": "カードのID",
|
||||
"The ID of the attachment to retrieve": "取得する添付ファイルのID",
|
||||
"The ID of the attachment to delete": "削除する添付ファイルのID",
|
||||
"Top": "上",
|
||||
"Bottom": "下揃え",
|
||||
"Card Moved to list": "カードがリストに移動しました",
|
||||
"New Card": "新しいカード",
|
||||
"Card Deadline": "カードの期限",
|
||||
"Trigger when a card is moved to the list specified": "カードが指定されたリストに移動したときにトリガーします",
|
||||
"Trigger when a new card is created": "新しいカードが作成されたときにトリガーする",
|
||||
"Triggers at a specified time before a card deadline.": "カードの期限の前に指定した時間でトリガーします。",
|
||||
"Time unit": "時間単位",
|
||||
"Time before due": "予定より前の時間",
|
||||
"Select unit for time before due": "期日前の単位を選択してください",
|
||||
"How long before the due date the trigger should run (use with time unit)": "期日の前にトリガーを実行する時間(時間単位で使用)",
|
||||
"Minutes": "分",
|
||||
"Hours": "時間"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Functie voor projectbeheer voor teams",
|
||||
"API Key": "API Sleutel",
|
||||
"Trello API Key": "Trello API-sleutel",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nOm uw API-sleutel en token te verkrijgen, volg de volgende stappen:\n\n1. Ga naar https://trello. om/power-ups/admin\n2. Klik **Nieuw** om een nieuwe power-up\n3 te maken. Voer power-up informatie in en klik op **Aanmaken**\n4. Vanuit de API Key pagina klik op **Genereer een nieuwe API key**\n5. Kopieer **API Key** en voer het in in de Trello API Key connectie\n6. Klik **handmatig een Token** naast het API-sleutelveld\n7. Kopieer het token en plak het in de Trello Token verbinding\n8. Je verbinding moet nu werken!\n",
|
||||
"Create Card": "Kaart aanmaken",
|
||||
"Get Card": "Kaart ophalen",
|
||||
"Update Card": "Kaart bijwerken",
|
||||
"Delete Card": "Kaart verwijderen",
|
||||
"Get All Card Attachments": "Alle bijlage(n) van de kaart ophalen",
|
||||
"Add Card Attachment": "Kaart bijlage toevoegen",
|
||||
"Get Card Attachment": "Haal bijlage(n) op",
|
||||
"Delete Card Attachment": "Verwijder bijlage kaart",
|
||||
"Create a new card in Trello": "Maak een nieuwe kaart in Trello",
|
||||
"Gets a card by ID.": "Haalt een kaart op via ID.",
|
||||
"Updates an existing card.": "Werkt een bestaande kaart bij.",
|
||||
"Deletes an existing card.": "Verwijdert een bestaande kaart.",
|
||||
"Gets all attachments on a card.": "Haalt alle bijlagen op een kaart.",
|
||||
"Adds an attachment to a card.": "Voegt een bijlage toe aan een kaart.",
|
||||
"Gets a specific attachment on a card.": "Haalt een specifieke bijlage op een kaart op.",
|
||||
"Deletes an attachment from a card.": "Verwijdert een bijlage van een kaart.",
|
||||
"Boards": "Onderwerpen",
|
||||
"Lists": "Lijsten",
|
||||
"Task Name": "Taak naam",
|
||||
"Task Description": "Beschrijving taak",
|
||||
"Position": "Positie",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Kaart ID",
|
||||
"Card Name": "Creditcard naam",
|
||||
"Card Description": "Kaart omschrijving",
|
||||
"Archived": "Gearchiveerd",
|
||||
"Due Date": "Inleverdatum",
|
||||
"Attachment File": "Bijlage bestand",
|
||||
"Attachment Name": "Bijlage naam",
|
||||
"MIME Type": "MIME-type",
|
||||
"Set as Cover": "Instellen als Cover",
|
||||
"Attachment ID": "Bijlage ID",
|
||||
"List of boards": "Lijst van borden",
|
||||
"Get lists from a board": "Haal lijsten op van een bord",
|
||||
"The name of the card to create": "De naam van de te maken kaart",
|
||||
"The description of the card to create": "De beschrijving van de te maken kaart",
|
||||
"Place the card on top or bottom of the list": "Plaats de kaart boven of onder in de lijst",
|
||||
"Assign labels to the card": "Wijs labels toe aan de kaart",
|
||||
"The card ID": "De kaart ID",
|
||||
"The ID of the card to update": "Het te updaten ID van de kaart",
|
||||
"The new name of the card": "De nieuwe naam van de kaart",
|
||||
"The new description of the card": "De nieuwe beschrijving van de kaart",
|
||||
"Move the card to a new position": "Verplaats de kaart naar een nieuwe positie",
|
||||
"Archive or unarchive the card": "Archief of dearchiveer de kaart",
|
||||
"Set a due date for the card": "Stel een vervaldatum in voor de kaart",
|
||||
"The ID of the card to delete.": "Het ID van de kaart om te verwijderen.",
|
||||
"The ID of the card to get attachments from": "Het ID van de kaart om bijlagen van te krijgen",
|
||||
"The ID of the card to add attachment to": "Het ID van de kaart om een bijlage aan toe te voegen",
|
||||
"Set this attachment as the card cover": "Stel deze bijlage in als de kaartafdekking",
|
||||
"The ID of the card": "De ID van de kaart",
|
||||
"The ID of the attachment to retrieve": "Het ID van de op te halen bijlage",
|
||||
"The ID of the attachment to delete": "Het ID van de te verwijderen bijlage",
|
||||
"Top": "Bovenkant",
|
||||
"Bottom": "Onderaan",
|
||||
"Card Moved to list": "Kaart verplaatst naar lijst",
|
||||
"New Card": "Nieuwe creditcard",
|
||||
"Card Deadline": "Kaart Deadline",
|
||||
"Trigger when a card is moved to the list specified": "Trigger wanneer een kaart wordt verplaatst naar de opgegeven lijst",
|
||||
"Trigger when a new card is created": "Trigger wanneer een nieuwe kaart wordt gemaakt",
|
||||
"Triggers at a specified time before a card deadline.": "Triggert om een bepaalde tijd voor een kaartdeadline.",
|
||||
"Time unit": "Tijd eenheid",
|
||||
"Time before due": "Tijd voor vervaldatum",
|
||||
"Select unit for time before due": "Kies eerst de eenheid voor de tijd",
|
||||
"How long before the due date the trigger should run (use with time unit)": "Hoe lang voor de vervaldatum moet de trigger worden uitgevoerd (gebruik met tijd-eenheid)",
|
||||
"Minutes": "minuten",
|
||||
"Hours": "Uren"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Ferramenta de gerenciamento de projetos para equipes",
|
||||
"API Key": "Chave de API",
|
||||
"Trello API Key": "Chave API da Trello",
|
||||
"Token": "Identificador",
|
||||
"Trello Token": "Token Trello",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nPara obter sua chave de API e token, siga estes passos:\n\n1. Vá para https://trello. om/power-ups/admin\n2. Clique em **Novo** para criar um novo power-up\n3. Insira informações do power-up e clique em **Criar**\n4. Na página da chave de API, clique em **Gerar uma nova chave de API**\n5. Copiar **Chave de API** e inseri-la na conexão de chave de API do Trello\n6. Clique em **gerar um Token** ao lado do campo da chave API\n7. Copie o token e cole na conexão do token Trello\n8. Sua conexão deve funcionar agora!\n",
|
||||
"Create Card": "Criar cartão",
|
||||
"Get Card": "Obter o cartão",
|
||||
"Update Card": "Atualizar Cartão",
|
||||
"Delete Card": "Excluir cartão",
|
||||
"Get All Card Attachments": "Obter todos os anexos do cartão",
|
||||
"Add Card Attachment": "Adicionar anexo de cartão",
|
||||
"Get Card Attachment": "Obter anexo do cartão",
|
||||
"Delete Card Attachment": "Excluir anexo do cartão",
|
||||
"Create a new card in Trello": "Criar um novo cartão no Trello",
|
||||
"Gets a card by ID.": "Obtém um cartão por ID.",
|
||||
"Updates an existing card.": "Atualiza um cartão existente.",
|
||||
"Deletes an existing card.": "Exclui um cartão existente.",
|
||||
"Gets all attachments on a card.": "Obtém todos os anexos do cartão.",
|
||||
"Adds an attachment to a card.": "Adiciona um anexo a um cartão.",
|
||||
"Gets a specific attachment on a card.": "Obtém um anexo específico em um cartão.",
|
||||
"Deletes an attachment from a card.": "Exclui um anexo de um cartão.",
|
||||
"Boards": "Quadros",
|
||||
"Lists": "Listas",
|
||||
"Task Name": "Nome da tarefa",
|
||||
"Task Description": "Descrição da tarefa",
|
||||
"Position": "Posição",
|
||||
"Labels": "Marcadores",
|
||||
"Card ID": "ID do cartão",
|
||||
"Card Name": "Nome do Cartão",
|
||||
"Card Description": "Descrição do cartão",
|
||||
"Archived": "Arquivado",
|
||||
"Due Date": "Data de vencimento",
|
||||
"Attachment File": "Arquivo anexo",
|
||||
"Attachment Name": "Nome do anexo",
|
||||
"MIME Type": "Tipo MIME",
|
||||
"Set as Cover": "Definir como capa",
|
||||
"Attachment ID": "ID do anexo",
|
||||
"List of boards": "Lista de boards",
|
||||
"Get lists from a board": "Obter listas de um board",
|
||||
"The name of the card to create": "O nome do cartão para criar",
|
||||
"The description of the card to create": "A descrição do cartão para criar",
|
||||
"Place the card on top or bottom of the list": "Coloque o cartão no topo ou no final da lista",
|
||||
"Assign labels to the card": "Atribuir etiquetas ao cartão",
|
||||
"The card ID": "A identificação do cartão",
|
||||
"The ID of the card to update": "A identificação do cartão para atualizar",
|
||||
"The new name of the card": "O novo nome do cartão",
|
||||
"The new description of the card": "A nova descrição do cartão",
|
||||
"Move the card to a new position": "Mover o cartão para uma nova posição",
|
||||
"Archive or unarchive the card": "Arquivar ou desarquivar o cartão",
|
||||
"Set a due date for the card": "Definir data limite para o cartão",
|
||||
"The ID of the card to delete.": "A ID do cartão para excluir.",
|
||||
"The ID of the card to get attachments from": "A ID do cartão para obter anexos de",
|
||||
"The ID of the card to add attachment to": "O ID do cartão para adicionar anexo",
|
||||
"Set this attachment as the card cover": "Defina este anexo como a capa do cartão",
|
||||
"The ID of the card": "A identificação do cartão",
|
||||
"The ID of the attachment to retrieve": "O ID do anexo a ser recuperado",
|
||||
"The ID of the attachment to delete": "O ID do anexo a excluir",
|
||||
"Top": "Superior",
|
||||
"Bottom": "Inferior",
|
||||
"Card Moved to list": "Cartão movido para a lista",
|
||||
"New Card": "Novo cartão",
|
||||
"Card Deadline": "Data limite do cartão",
|
||||
"Trigger when a card is moved to the list specified": "Aciona quando um cartão é movido para a lista especificada",
|
||||
"Trigger when a new card is created": "Ativar quando um novo cartão for criado",
|
||||
"Triggers at a specified time before a card deadline.": "Dispara em um determinado tempo antes do prazo de uma carta.",
|
||||
"Time unit": "Unidade de tempo",
|
||||
"Time before due": "Tempo antes do vencimento",
|
||||
"Select unit for time before due": "Selecione a unidade para o tempo antes do vencimento",
|
||||
"How long before the due date the trigger should run (use with time unit)": "Quanto tempo antes da data de vencimento, o gatilho deve ser executado (usar com a unidade de tempo)",
|
||||
"Minutes": "minutos",
|
||||
"Hours": "horas"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"Trello": "Трелло",
|
||||
"Project management tool for teams": "Инструмент управления проектами для команд",
|
||||
"API Key": "Ключ API",
|
||||
"Trello API Key": "Ключ API Trello",
|
||||
"Token": "Токен",
|
||||
"Trello Token": "Токен Trello",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Создать карту",
|
||||
"Get Card": "Получить карту",
|
||||
"Create a new card in Trello": "Создать новую карту в Trello",
|
||||
"Get a card in Trello": "Получить карту в Trello",
|
||||
"Boards": "Доски",
|
||||
"Lists": "Списки",
|
||||
"Task Name": "Название задачи",
|
||||
"Task Description": "Описание задачи",
|
||||
"Position": "Позиция",
|
||||
"Labels": "Метки",
|
||||
"Card ID": "ID карты",
|
||||
"List of boards": "Список досок",
|
||||
"Get lists from a board": "Получать списки с доски",
|
||||
"The name of the card to create": "Название создаваемой карты",
|
||||
"The description of the card to create": "Описание создаваемой карты",
|
||||
"Place the card on top or bottom of the list": "Поместите карту в верхней или нижней части списка",
|
||||
"Assign labels to the card": "Назначить подписи карте",
|
||||
"The card ID": "ID карты",
|
||||
"Top": "Сверху",
|
||||
"Bottom": "Внизу",
|
||||
"Card Moved to list": "Карта перемещена в список",
|
||||
"New Card": "Новая карта",
|
||||
"Card Deadline": "Срок действия карты",
|
||||
"Trigger when a card is moved to the list specified": "Срабатывать при перемещении карты в указанный список",
|
||||
"Trigger when a new card is created": "Срабатывать при создании новой карты",
|
||||
"Triggers at a specified time before a card deadline.": "Триггеры в указанное время до истечения срока действия карты.",
|
||||
"Time unit": "Единица времени",
|
||||
"Time before due": "Время до выполнения",
|
||||
"Select unit for time before due": "Выберите единицу за время до завершения",
|
||||
"How long before the due date the trigger should run (use with time unit)": "Как долго до окончания запуска триггера (используйте с единицей времени)",
|
||||
"Minutes": "Минут",
|
||||
"Hours": "Часы"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Project management tool for teams",
|
||||
"API Key": "API Key",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Create Card",
|
||||
"Get Card": "Get Card",
|
||||
"Update Card": "Update Card",
|
||||
"Delete Card": "Delete Card",
|
||||
"Get All Card Attachments": "Get All Card Attachments",
|
||||
"Add Card Attachment": "Add Card Attachment",
|
||||
"Get Card Attachment": "Get Card Attachment",
|
||||
"Delete Card Attachment": "Delete Card Attachment",
|
||||
"Create a new card in Trello": "Create a new card in Trello",
|
||||
"Gets a card by ID.": "Gets a card by ID.",
|
||||
"Updates an existing card.": "Updates an existing card.",
|
||||
"Deletes an existing card.": "Deletes an existing card.",
|
||||
"Gets all attachments on a card.": "Gets all attachments on a card.",
|
||||
"Adds an attachment to a card.": "Adds an attachment to a card.",
|
||||
"Gets a specific attachment on a card.": "Gets a specific attachment on a card.",
|
||||
"Deletes an attachment from a card.": "Deletes an attachment from a card.",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Lists",
|
||||
"Task Name": "Task Name",
|
||||
"Task Description": "Task Description",
|
||||
"Position": "Position",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Card ID",
|
||||
"Card Name": "Card Name",
|
||||
"Card Description": "Card Description",
|
||||
"Archived": "Archived",
|
||||
"Due Date": "Due Date",
|
||||
"Attachment File": "Attachment File",
|
||||
"Attachment Name": "Attachment Name",
|
||||
"MIME Type": "MIME Type",
|
||||
"Set as Cover": "Set as Cover",
|
||||
"Attachment ID": "Attachment ID",
|
||||
"List of boards": "List of boards",
|
||||
"Get lists from a board": "Get lists from a board",
|
||||
"The name of the card to create": "The name of the card to create",
|
||||
"The description of the card to create": "The description of the card to create",
|
||||
"Place the card on top or bottom of the list": "Place the card on top or bottom of the list",
|
||||
"Assign labels to the card": "Assign labels to the card",
|
||||
"The card ID": "The card ID",
|
||||
"The ID of the card to update": "The ID of the card to update",
|
||||
"The new name of the card": "The new name of the card",
|
||||
"The new description of the card": "The new description of the card",
|
||||
"Move the card to a new position": "Move the card to a new position",
|
||||
"Archive or unarchive the card": "Archive or unarchive the card",
|
||||
"Set a due date for the card": "Set a due date for the card",
|
||||
"The ID of the card to delete.": "The ID of the card to delete.",
|
||||
"The ID of the card to get attachments from": "The ID of the card to get attachments from",
|
||||
"The ID of the card to add attachment to": "The ID of the card to add attachment to",
|
||||
"Set this attachment as the card cover": "Set this attachment as the card cover",
|
||||
"The ID of the card": "The ID of the card",
|
||||
"The ID of the attachment to retrieve": "The ID of the attachment to retrieve",
|
||||
"The ID of the attachment to delete": "The ID of the attachment to delete",
|
||||
"Top": "Top",
|
||||
"Bottom": "Bottom",
|
||||
"Card Moved to list": "Card Moved to list",
|
||||
"New Card": "New Card",
|
||||
"Card Deadline": "Card Deadline",
|
||||
"Trigger when a card is moved to the list specified": "Trigger when a card is moved to the list specified",
|
||||
"Trigger when a new card is created": "Trigger when a new card is created",
|
||||
"Triggers at a specified time before a card deadline.": "Triggers at a specified time before a card deadline.",
|
||||
"Time unit": "Time unit",
|
||||
"Time before due": "Time before due",
|
||||
"Select unit for time before due": "Select unit for time before due",
|
||||
"How long before the due date the trigger should run (use with time unit)": "How long before the due date the trigger should run (use with time unit)",
|
||||
"Minutes": "Minutes",
|
||||
"Hours": "Hours"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"Trello": "Trello",
|
||||
"Project management tool for teams": "Project management tool for teams",
|
||||
"API Key": "API Key",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Create Card",
|
||||
"Get Card": "Get Card",
|
||||
"Create a new card in Trello": "Create a new card in Trello",
|
||||
"Get a card in Trello": "Get a card in Trello",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Lists",
|
||||
"Task Name": "Task Name",
|
||||
"Task Description": "Task Description",
|
||||
"Position": "Position",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Card ID",
|
||||
"List of boards": "List of boards",
|
||||
"Get lists from a board": "Get lists from a board",
|
||||
"The name of the card to create": "The name of the card to create",
|
||||
"The description of the card to create": "The description of the card to create",
|
||||
"Place the card on top or bottom of the list": "Place the card on top or bottom of the list",
|
||||
"Assign labels to the card": "Assign labels to the card",
|
||||
"The card ID": "The card ID",
|
||||
"Top": "Top",
|
||||
"Bottom": "Bottom",
|
||||
"Card Moved to list": "Card Moved to list",
|
||||
"New Card": "New Card",
|
||||
"Card Deadline": "Card Deadline",
|
||||
"Trigger when a card is moved to the list specified": "Trigger when a card is moved to the list specified",
|
||||
"Trigger when a new card is created": "Trigger when a new card is created",
|
||||
"Triggers at a specified time before a card deadline.": "Triggers at a specified time before a card deadline.",
|
||||
"Time unit": "Time unit",
|
||||
"Time before due": "Time before due",
|
||||
"Select unit for time before due": "Select unit for time before due",
|
||||
"How long before the due date the trigger should run (use with time unit)": "How long before the due date the trigger should run (use with time unit)",
|
||||
"Minutes": "Minutes",
|
||||
"Hours": "Hours"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"Project management tool for teams": "Project management tool for teams",
|
||||
"API Key": "API 密钥",
|
||||
"Trello API Key": "Trello API Key",
|
||||
"Token": "Token",
|
||||
"Trello Token": "Trello Token",
|
||||
"\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n": "\nTo obtain your API key and token, follow these steps:\n\n1. Go to https://trello.com/power-ups/admin\n2. Click **New** to create a new power-up\n3. Enter power-up information, and click **Create**\n4. From the API Key page, click **Generate a new API key**\n5. Copy **API Key** and enter it into the Trello API Key connection\n6. Click **manually generate a Token** next to the API key field\n7. Copy the token and paste it into the Trello Token connection\n8. Your connection should now work!\n",
|
||||
"Create Card": "Create Card",
|
||||
"Get Card": "Get Card",
|
||||
"Update Card": "Update Card",
|
||||
"Delete Card": "Delete Card",
|
||||
"Get All Card Attachments": "Get All Card Attachments",
|
||||
"Add Card Attachment": "Add Card Attachment",
|
||||
"Get Card Attachment": "Get Card Attachment",
|
||||
"Delete Card Attachment": "Delete Card Attachment",
|
||||
"Create a new card in Trello": "Create a new card in Trello",
|
||||
"Gets a card by ID.": "Gets a card by ID.",
|
||||
"Updates an existing card.": "Updates an existing card.",
|
||||
"Deletes an existing card.": "Deletes an existing card.",
|
||||
"Gets all attachments on a card.": "Gets all attachments on a card.",
|
||||
"Adds an attachment to a card.": "Adds an attachment to a card.",
|
||||
"Gets a specific attachment on a card.": "Gets a specific attachment on a card.",
|
||||
"Deletes an attachment from a card.": "Deletes an attachment from a card.",
|
||||
"Boards": "Boards",
|
||||
"Lists": "Lists",
|
||||
"Task Name": "Task Name",
|
||||
"Task Description": "Task Description",
|
||||
"Position": "Position",
|
||||
"Labels": "Labels",
|
||||
"Card ID": "Card ID",
|
||||
"Card Name": "Card Name",
|
||||
"Card Description": "Card Description",
|
||||
"Archived": "Archived",
|
||||
"Due Date": "Due Date",
|
||||
"Attachment File": "Attachment File",
|
||||
"Attachment Name": "Attachment Name",
|
||||
"MIME Type": "MIME Type",
|
||||
"Set as Cover": "Set as Cover",
|
||||
"Attachment ID": "Attachment ID",
|
||||
"List of boards": "List of boards",
|
||||
"Get lists from a board": "Get lists from a board",
|
||||
"The name of the card to create": "The name of the card to create",
|
||||
"The description of the card to create": "The description of the card to create",
|
||||
"Place the card on top or bottom of the list": "Place the card on top or bottom of the list",
|
||||
"Assign labels to the card": "Assign labels to the card",
|
||||
"The card ID": "The card ID",
|
||||
"The ID of the card to update": "The ID of the card to update",
|
||||
"The new name of the card": "The new name of the card",
|
||||
"The new description of the card": "The new description of the card",
|
||||
"Move the card to a new position": "Move the card to a new position",
|
||||
"Archive or unarchive the card": "Archive or unarchive the card",
|
||||
"Set a due date for the card": "Set a due date for the card",
|
||||
"The ID of the card to delete.": "The ID of the card to delete.",
|
||||
"The ID of the card to get attachments from": "The ID of the card to get attachments from",
|
||||
"The ID of the card to add attachment to": "The ID of the card to add attachment to",
|
||||
"Set this attachment as the card cover": "Set this attachment as the card cover",
|
||||
"The ID of the card": "The ID of the card",
|
||||
"The ID of the attachment to retrieve": "The ID of the attachment to retrieve",
|
||||
"The ID of the attachment to delete": "The ID of the attachment to delete",
|
||||
"Top": "Top",
|
||||
"Bottom": "Bottom",
|
||||
"Card Moved to list": "Card Moved to list",
|
||||
"New Card": "New Card",
|
||||
"Card Deadline": "Card Deadline",
|
||||
"Trigger when a card is moved to the list specified": "Trigger when a card is moved to the list specified",
|
||||
"Trigger when a new card is created": "Trigger when a new card is created",
|
||||
"Triggers at a specified time before a card deadline.": "Triggers at a specified time before a card deadline.",
|
||||
"Time unit": "Time unit",
|
||||
"Time before due": "Time before due",
|
||||
"Select unit for time before due": "Select unit for time before due",
|
||||
"How long before the due date the trigger should run (use with time unit)": "How long before the due date the trigger should run (use with time unit)",
|
||||
"Minutes": "Minutes",
|
||||
"Hours": "Hours"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
import {
|
||||
HttpMethod,
|
||||
HttpRequest,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { PieceAuth, createPiece } from '@activepieces/pieces-framework';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { createCard } from './lib/actions/card/create-card';
|
||||
import { getCard } from './lib/actions/card/get-card';
|
||||
import { updateCard } from './lib/actions/card/update-card';
|
||||
import { deleteCard } from './lib/actions/card/delete-card';
|
||||
import { getCardAttachments } from './lib/actions/card-attachment/get-card-attachments';
|
||||
import { addCardAttachment } from './lib/actions/card-attachment/add-card-attachment';
|
||||
import { getCardAttachment } from './lib/actions/card-attachment/get-card-attachment';
|
||||
import { deleteCardAttachment } from './lib/actions/card-attachment/delete-card-attachment';
|
||||
import { cardMovedTrigger } from './lib/triggers/cardMoved';
|
||||
import { newCardTrigger } from './lib/triggers/newCard';
|
||||
import { deadlineTrigger } from './lib/triggers/deadline';
|
||||
|
||||
const markdownProperty = `
|
||||
To obtain your API key and token, follow these steps:
|
||||
|
||||
1. Go to https://trello.com/power-ups/admin
|
||||
2. Click **New** to create a new power-up
|
||||
3. Enter power-up information, and click **Create**
|
||||
4. From the API Key page, click **Generate a new API key**
|
||||
5. Copy **API Key** and enter it into the Trello API Key connection
|
||||
6. Click **manually generate a Token** next to the API key field
|
||||
7. Copy the token and paste it into the Trello Token connection
|
||||
8. Your connection should now work!
|
||||
`;
|
||||
export const trelloAuth = PieceAuth.BasicAuth({
|
||||
description: markdownProperty,
|
||||
required: true,
|
||||
username: {
|
||||
displayName: 'API Key',
|
||||
description: 'Trello API Key',
|
||||
},
|
||||
password: {
|
||||
displayName: 'Token',
|
||||
description: 'Trello Token',
|
||||
},
|
||||
validate: async ({ auth }) => {
|
||||
const { username, password } = auth;
|
||||
if (!username || !password) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Empty API Key or Token',
|
||||
};
|
||||
}
|
||||
try {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
`https://api.trello.com/1/members/me/boards` +
|
||||
`?key=` +
|
||||
username +
|
||||
`&token=` +
|
||||
password,
|
||||
};
|
||||
await httpClient.sendRequest(request);
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid API Key or Token',
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
export const trello = createPiece({
|
||||
displayName: 'Trello',
|
||||
description: 'Project management tool for teams',
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/trello.png',
|
||||
authors: ["Salem-Alaa","kishanprmr","MoShizzle","khaledmashaly","abuaboud","AshotZaqoyan"],
|
||||
categories: [PieceCategory.PRODUCTIVITY],
|
||||
auth: trelloAuth,
|
||||
actions: [createCard, getCard, updateCard, deleteCard, getCardAttachments, addCardAttachment, getCardAttachment, deleteCardAttachment],
|
||||
triggers: [cardMovedTrigger, newCardTrigger, deadlineTrigger],
|
||||
});
|
||||
@@ -0,0 +1,82 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
QueryParams,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { trelloAuth } from '../../..';
|
||||
import FormData from "form-data";
|
||||
|
||||
export const addCardAttachment = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'add_card_attachment',
|
||||
displayName: 'Add Card Attachment',
|
||||
description: 'Adds an attachment to a card.',
|
||||
props: {
|
||||
card_id: Property.ShortText({
|
||||
description: 'The ID of the card to add attachment to',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
}),
|
||||
attachment: Property.File({
|
||||
displayName: 'Attachment File',
|
||||
required: true,
|
||||
}),
|
||||
name: Property.ShortText({
|
||||
displayName: 'Attachment Name',
|
||||
required: false,
|
||||
}),
|
||||
mime_type: Property.ShortText({
|
||||
displayName: 'MIME Type',
|
||||
required: false,
|
||||
}),
|
||||
set_cover: Property.Checkbox({
|
||||
description: 'Set this attachment as the card cover',
|
||||
displayName: 'Set as Cover',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const attachment = context.propsValue.attachment;
|
||||
const qs:QueryParams = {}
|
||||
|
||||
const formData = new FormData();
|
||||
|
||||
formData.append('file',attachment.data,{filename:attachment.filename});
|
||||
|
||||
if (context.propsValue['name']) {
|
||||
qs['name'] = context.propsValue['name'];
|
||||
}
|
||||
|
||||
if (context.propsValue['mime_type']) {
|
||||
qs['mimeType'] = context.propsValue['mime_type'];
|
||||
}
|
||||
|
||||
if (context.propsValue['set_cover']) {
|
||||
qs['setCover'] = context.propsValue['set_cover'] ?'true':'false';
|
||||
}
|
||||
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/attachments` +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
...formData.getHeaders()
|
||||
},
|
||||
body:formData,
|
||||
queryParams: qs,
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,47 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const deleteCardAttachment = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'delete_card_attachment',
|
||||
displayName: 'Delete Card Attachment',
|
||||
description: 'Deletes an attachment from a card.',
|
||||
props: {
|
||||
card_id: Property.ShortText({
|
||||
description: 'The ID of the card',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
}),
|
||||
attachment_id: Property.ShortText({
|
||||
description: 'The ID of the attachment to delete',
|
||||
displayName: 'Attachment ID',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/attachments/${context.propsValue['attachment_id']}` +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,47 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const getCardAttachment = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'get_card_attachment',
|
||||
displayName: 'Get Card Attachment',
|
||||
description: 'Gets a specific attachment on a card.',
|
||||
props: {
|
||||
card_id: Property.ShortText({
|
||||
description: 'The ID of the card',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
}),
|
||||
attachment_id: Property.ShortText({
|
||||
description: 'The ID of the attachment to retrieve',
|
||||
displayName: 'Attachment ID',
|
||||
required: true,
|
||||
})
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/attachments/${context.propsValue['attachment_id']}` +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,41 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const getCardAttachments = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'get_card_attachments',
|
||||
displayName: 'Get All Card Attachments',
|
||||
description: 'Gets all attachments on a card.',
|
||||
props: {
|
||||
card_id: Property.ShortText({
|
||||
description: 'The ID of the card to get attachments from',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
})
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/attachments` +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,69 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { TrelloCard } from '../../common/props/card';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const createCard = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'create_card',
|
||||
displayName: 'Create Card',
|
||||
description: 'Create a new card in Trello',
|
||||
props: {
|
||||
board_id: trelloCommon.board_id,
|
||||
list_id: trelloCommon.list_id,
|
||||
name: Property.ShortText({
|
||||
description: 'The name of the card to create',
|
||||
displayName: 'Task Name',
|
||||
required: true,
|
||||
}),
|
||||
description: Property.LongText({
|
||||
description: 'The description of the card to create',
|
||||
displayName: 'Task Description',
|
||||
required: false,
|
||||
}),
|
||||
position: Property.StaticDropdown({
|
||||
description: 'Place the card on top or bottom of the list',
|
||||
displayName: 'Position',
|
||||
required: false,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Top', value: 'top' },
|
||||
{ label: 'Bottom', value: 'bottom' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
labels: trelloCommon.board_labels,
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards` +
|
||||
`?idList=` +
|
||||
context.propsValue['list_id'] +
|
||||
`&key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
body: {
|
||||
name: context.propsValue['name'],
|
||||
desc: context.propsValue['description'],
|
||||
pos: context.propsValue['position'],
|
||||
idLabels: context.propsValue['labels'],
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
const response = await httpClient.sendRequest<TrelloCard>(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,42 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const deleteCard = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'delete_card',
|
||||
displayName: 'Delete Card',
|
||||
description: 'Deletes an existing card.',
|
||||
props: {
|
||||
card_id: Property.ShortText({
|
||||
description: 'The ID of the card to delete.',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}` +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
queryParams: {},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,40 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { TrelloCard } from '../../common/props/card';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const getCard = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'get_card',
|
||||
displayName: 'Get Card',
|
||||
description: 'Gets a card by ID.',
|
||||
props: {
|
||||
cardId: Property.ShortText({
|
||||
description: 'The card ID',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/` +
|
||||
context.propsValue['cardId'] +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
return (await httpClient.sendRequest<TrelloCard>(request)).body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,109 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { trelloCommon } from '../../common';
|
||||
import { TrelloCard } from '../../common/props/card';
|
||||
import { trelloAuth } from '../../..';
|
||||
|
||||
export const updateCard = createAction({
|
||||
auth: trelloAuth,
|
||||
name: 'update_card',
|
||||
displayName: 'Update Card',
|
||||
description: 'Updates an existing card.',
|
||||
props: {
|
||||
card_id: Property.ShortText({
|
||||
description: 'The ID of the card to update',
|
||||
displayName: 'Card ID',
|
||||
required: true,
|
||||
}),
|
||||
name: Property.ShortText({
|
||||
description: 'The new name of the card',
|
||||
displayName: 'Card Name',
|
||||
required: false,
|
||||
}),
|
||||
description: Property.LongText({
|
||||
description: 'The new description of the card',
|
||||
displayName: 'Card Description',
|
||||
required: false,
|
||||
}),
|
||||
board_id: trelloCommon.board_id_opt,
|
||||
list_id: trelloCommon.list_id_opt,
|
||||
position: Property.StaticDropdown({
|
||||
description: 'Move the card to a new position',
|
||||
displayName: 'Position',
|
||||
required: false,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Top', value: 'top' },
|
||||
{ label: 'Bottom', value: 'bottom' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
labels: trelloCommon.board_labels,
|
||||
closed: Property.Checkbox({
|
||||
description: 'Archive or unarchive the card',
|
||||
displayName: 'Archived',
|
||||
required: false,
|
||||
}),
|
||||
due: Property.DateTime({
|
||||
description: 'Set a due date for the card',
|
||||
displayName: 'Due Date',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const body: any = {};
|
||||
|
||||
if (context.propsValue['name']) {
|
||||
body.name = context.propsValue['name'];
|
||||
}
|
||||
|
||||
if (context.propsValue['description']) {
|
||||
body.desc = context.propsValue['description'];
|
||||
}
|
||||
|
||||
if (context.propsValue['list_id']) {
|
||||
body.idList = context.propsValue['list_id'];
|
||||
}
|
||||
|
||||
if (context.propsValue['position']) {
|
||||
body.pos = context.propsValue['position'];
|
||||
}
|
||||
|
||||
if (context.propsValue['labels']) {
|
||||
body.idLabels = context.propsValue['labels'];
|
||||
}
|
||||
|
||||
if (context.propsValue['closed'] !== undefined) {
|
||||
body.closed = context.propsValue['closed'];
|
||||
}
|
||||
|
||||
if (context.propsValue['due']) {
|
||||
body.due = context.propsValue['due'];
|
||||
}
|
||||
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.PUT,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}` +
|
||||
`?key=` +
|
||||
context.auth.username +
|
||||
`&token=` +
|
||||
context.auth.password,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body,
|
||||
queryParams: {},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest<TrelloCard>(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,333 @@
|
||||
import { BasicAuthPropertyValue, Property } from '@activepieces/pieces-framework';
|
||||
import { httpClient, HttpRequest, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { trelloAuth } from '../..';
|
||||
|
||||
export interface WebhookInformation {
|
||||
id: string;
|
||||
description: string;
|
||||
idModel: string;
|
||||
callbackURL: string;
|
||||
active: boolean;
|
||||
consecutiveFailures: number;
|
||||
firstConsecutiveFailDate: string;
|
||||
}
|
||||
|
||||
export const trelloCommon = {
|
||||
baseUrl: 'https://api.trello.com/1/',
|
||||
board_id: Property.Dropdown({
|
||||
auth: trelloAuth,
|
||||
|
||||
displayName: 'Boards',
|
||||
description: 'List of boards',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const basicAuthProperty = auth as BasicAuthPropertyValue;
|
||||
const user = await getAuthorisedUser(basicAuthProperty.username, basicAuthProperty.password);
|
||||
const boards = await listBoards(
|
||||
basicAuthProperty.username,
|
||||
basicAuthProperty.password,
|
||||
user['id'],
|
||||
);
|
||||
|
||||
return {
|
||||
options: boards.map((board: { id: string; name: string }) => ({
|
||||
value: board.id,
|
||||
label: board.name,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
list_id: Property.Dropdown({
|
||||
auth: trelloAuth,
|
||||
|
||||
displayName: 'Lists',
|
||||
description: 'Get lists from a board',
|
||||
required: true,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first and select a board',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const basicAuthProperty = auth as BasicAuthPropertyValue;
|
||||
const lists = await listBoardLists(
|
||||
basicAuthProperty.username,
|
||||
basicAuthProperty.password,
|
||||
board_id as string,
|
||||
);
|
||||
|
||||
return {
|
||||
options: lists.map((list: { id: string; name: string }) => ({
|
||||
value: list.id,
|
||||
label: list.name,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
list_id_opt: Property.Dropdown({
|
||||
auth: trelloAuth,
|
||||
|
||||
displayName: 'Lists',
|
||||
description: 'Get lists from a board',
|
||||
required: false,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first and select a board',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const basicAuthProperty = auth as BasicAuthPropertyValue;
|
||||
const lists = await listBoardLists(
|
||||
basicAuthProperty.username,
|
||||
basicAuthProperty.password,
|
||||
board_id as string,
|
||||
);
|
||||
|
||||
return {
|
||||
options: lists.map((list: { id: string; name: string }) => ({
|
||||
value: list.id,
|
||||
label: list.name,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
board_id_opt: Property.Dropdown({
|
||||
auth: trelloAuth,
|
||||
|
||||
displayName: 'Boards',
|
||||
description: 'List of boards',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const basicAuthProperty = auth as BasicAuthPropertyValue;
|
||||
const user = await getAuthorisedUser(basicAuthProperty.username, basicAuthProperty.password);
|
||||
const boards = await listBoards(
|
||||
basicAuthProperty.username,
|
||||
basicAuthProperty.password,
|
||||
user['id'],
|
||||
);
|
||||
|
||||
return {
|
||||
options: boards.map((board: { id: string; name: string }) => ({
|
||||
value: board.id,
|
||||
label: board.name,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
board_labels: Property.MultiSelectDropdown({
|
||||
auth: trelloAuth,
|
||||
displayName: 'Labels',
|
||||
description: 'Assign labels to the card',
|
||||
required: false,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first and select a board',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const basicAuthProperty = auth as BasicAuthPropertyValue;
|
||||
const labels = await listBoardLabels(
|
||||
basicAuthProperty.username,
|
||||
basicAuthProperty.password,
|
||||
board_id as string,
|
||||
);
|
||||
|
||||
return {
|
||||
options: labels.map((label: { id: string; name: string; color: string }) => ({
|
||||
label: label.name || label.color,
|
||||
value: label.id,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
create_webhook: async (auth: BasicAuthPropertyValue, list_id: string, webhookUrl: string) => {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}webhooks` +
|
||||
`?key=` +
|
||||
auth.username +
|
||||
`&token=` +
|
||||
auth.password +
|
||||
`&callbackURL=` +
|
||||
webhookUrl +
|
||||
`&idModel=` +
|
||||
list_id,
|
||||
};
|
||||
const response = await httpClient.sendRequest<WebhookInformation>(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
delete_webhook: async (auth: BasicAuthPropertyValue, webhook_id: string) => {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.DELETE,
|
||||
url:
|
||||
`${trelloCommon.baseUrl}webhooks/${webhook_id}` +
|
||||
`?key=` +
|
||||
auth.username +
|
||||
`&token=` +
|
||||
auth.password,
|
||||
};
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
list_webhooks: async (auth: BasicAuthPropertyValue) => {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}tokens/${auth.password}/webhooks` + `?key=` + auth.username,
|
||||
};
|
||||
const response = await httpClient.sendRequest<WebhookInformation[]>(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the authenticated user via API and token
|
||||
* @param apikey API Key
|
||||
* @param token Token Key
|
||||
* @returns JSON containing Trello user
|
||||
*/
|
||||
async function getAuthorisedUser(apikey: string, token: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}members/me` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
const response = await httpClient.sendRequest(request);
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists all boards a member has access to in Trello
|
||||
* @param apikey API Key
|
||||
* @param token API Token
|
||||
* @param user_id ID of the user
|
||||
* @returns JSON Array of boards user has access to
|
||||
*/
|
||||
async function listBoards(apikey: string, token: string, user_id: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}members/${user_id}/boards` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
const response = await httpClient.sendRequest<{ id: string; name: string }[]>(request);
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the lists inside of a board
|
||||
* @param apikey API Key
|
||||
* @param token API Token
|
||||
* @param board_id Board to fetch lists from
|
||||
* @returns JSON Array of lists
|
||||
*/
|
||||
async function listBoardLists(apikey: string, token: string, board_id: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}boards/${board_id}/lists` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
const response = await httpClient.sendRequest<{ id: string; name: string }[]>(request);
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the labels of a board
|
||||
* @param apikey API Key
|
||||
* @param token API Token
|
||||
* @param board_id Board to fetch labels from
|
||||
* @returns JSON Array of labels
|
||||
*/
|
||||
async function listBoardLabels(apikey: string, token: string, board_id: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}boards/${board_id}/labels` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
const response = await httpClient.sendRequest<{ id: string; name: string; color: string }[]>(
|
||||
request,
|
||||
);
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
export async function getCardDetail(apikey: string, token: string, card_id: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}cards/${card_id}` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
return response.body;
|
||||
}
|
||||
|
||||
export async function getCardsInBoard(apikey: string, token: string, board_id: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}boards/${board_id}/cards` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
return response.body;
|
||||
}
|
||||
|
||||
export async function getCardsInList(apikey: string, token: string, list_id: string) {
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${trelloCommon.baseUrl}lists/${list_id}/cards` + `?key=` + apikey + `&token=` + token,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
return response.body;
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
export type TrelloCard = {
|
||||
id: string;
|
||||
address: string;
|
||||
badges: {
|
||||
attachmentsByType: {
|
||||
trello: {
|
||||
board: number;
|
||||
card: number;
|
||||
};
|
||||
};
|
||||
location: boolean;
|
||||
votes: number;
|
||||
viewingMemberVoted: boolean;
|
||||
subscribed: boolean;
|
||||
fogbugz: string;
|
||||
checkItems: number;
|
||||
checkItemsChecked: number;
|
||||
comments: number;
|
||||
attachments: number;
|
||||
description: boolean;
|
||||
due: string;
|
||||
start: string;
|
||||
dueComplete: boolean;
|
||||
};
|
||||
checkItemStates: string[];
|
||||
closed: boolean;
|
||||
coordinates: string;
|
||||
creationMethod: string;
|
||||
dateLastActivity: string;
|
||||
desc: string;
|
||||
due: string;
|
||||
dueReminder: string;
|
||||
email: string;
|
||||
idBoard: string;
|
||||
idChecklists: { id: string }[];
|
||||
idLabels: {
|
||||
id: string;
|
||||
idBoard: string;
|
||||
name: string;
|
||||
color: string;
|
||||
}[];
|
||||
idList: string;
|
||||
idMembers: string[];
|
||||
idMembersVoted: string[];
|
||||
idShort: number;
|
||||
labels: string[];
|
||||
locationName: string;
|
||||
manualCoverAttachment: boolean;
|
||||
name: string;
|
||||
pos: number;
|
||||
shortLink: string;
|
||||
shortUrl: string;
|
||||
subscribed: boolean;
|
||||
url: string;
|
||||
};
|
||||
export type TrelloCardMoved = {
|
||||
action: {
|
||||
display: {
|
||||
translationKey: string;
|
||||
entities: {
|
||||
card: {
|
||||
type: string;
|
||||
idList: string;
|
||||
id: string;
|
||||
shortLink: string;
|
||||
text: string;
|
||||
};
|
||||
listBefore: {
|
||||
type: string;
|
||||
id: string;
|
||||
text: string;
|
||||
};
|
||||
listAfter: {
|
||||
type: string;
|
||||
id: string;
|
||||
text: string;
|
||||
};
|
||||
memberCreator: {
|
||||
type: string;
|
||||
id: string;
|
||||
username: string;
|
||||
text: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
export type TrelloNewCard = {
|
||||
action: {
|
||||
display: {
|
||||
translationKey: string;
|
||||
entities: {
|
||||
card: {
|
||||
type: string;
|
||||
id: string;
|
||||
shortLink: string;
|
||||
text: string;
|
||||
};
|
||||
list: {
|
||||
type: string;
|
||||
id: string;
|
||||
text: string;
|
||||
};
|
||||
memberCreator: {
|
||||
type: string;
|
||||
id: string;
|
||||
username: string;
|
||||
text: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: 'Trello'
|
||||
---
|
||||
|
||||
## Creating your first Trello card using Activepiece
|
||||
|
||||
1. Create a new collection
|
||||
2. Select trigger as 'schedule' and we will use its default value of 5 minutes
|
||||
3. Click on + to add a new piece
|
||||
4. Select the 'Trello' piece
|
||||
5. Select the 'Create Card' Action on the right-hand sidebar
|
||||
6. Select your Trello API Key connection you created above
|
||||
7. Select your Trello Token Key connection above
|
||||
8. Head over to the Trello board you wish to create a new card in
|
||||
9. Create a new card, lets call it 'test'
|
||||
10. Click into that card
|
||||
11. In the URL, add '.json', this should return a wall of JSON text
|
||||
12. Look for a value called 'idList', it should look something like this: `"idList":"5aea17e911c71fee96375d94"`
|
||||
13. Copy the idList value, in our case `5aea17e911c71fee96375d94` and enter it into the idList field
|
||||
14. Set the card name you'd like to create
|
||||
15. Set a description to enter into the card (optional)
|
||||
16. Lastly, lets test our flow by clicking 'Test Flow'
|
||||
17. A new card should have been created in the selected list
|
||||
18. Now click publish, and thats it!
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Fetching a card via Activepieces
|
||||
|
||||
1. Create a new collection
|
||||
2. Select trigger as 'schedule' and we will use its default value of 5 minutes
|
||||
3. Click on + to add a new piece
|
||||
4. Select the 'Trello' piece
|
||||
5. Select the 'Get Card' Action on the right-hand sidebar
|
||||
6. Select your Trello API Key connection you created above
|
||||
7. Select your Trello Token Key connection above
|
||||
8. Head over to the Trello board you wish to create a new card in
|
||||
9. Create a new card, lets call it 'test'
|
||||
10. Click into that card
|
||||
11. In the URL, add '.json', this should return a wall of JSON text
|
||||
12. Look for a value called 'id', it should look something like this: `"id":"5aea17e911c71fee96375d94"`
|
||||
13. Copy the idList value, in our case `5aea17e911c71fee96375d94` and enter it into the idList field
|
||||
14. Lastly, lets test our flow by clicking 'Test Flow'
|
||||
15. A new card should have been created in the selected list
|
||||
16. Now click publish, and thats it!
|
||||
|
||||
---
|
||||
|
||||
## Triggers
|
||||
|
||||
TRIGGERS
|
||||
|
||||
---
|
||||
|
||||
## Actions
|
||||
|
||||
ACTIONS
|
||||
@@ -0,0 +1,152 @@
|
||||
import { trelloAuth } from '../..';
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { getCardDetail, getCardsInList, trelloCommon } from '../common';
|
||||
import { TrelloCardMoved } from '../common/props/card';
|
||||
import { isNil, WebhookHandshakeStrategy } from '@activepieces/shared';
|
||||
|
||||
export const cardMovedTrigger = createTrigger({
|
||||
auth: trelloAuth,
|
||||
name: 'card_moved_to_list',
|
||||
displayName: 'Card Moved to list',
|
||||
description: 'Trigger when a card is moved to the list specified',
|
||||
props: {
|
||||
board_id: trelloCommon.board_id,
|
||||
list_id: trelloCommon.list_id,
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
handshakeConfiguration:{
|
||||
strategy:WebhookHandshakeStrategy.NONE
|
||||
},
|
||||
async onHandshake(context)
|
||||
{
|
||||
return{
|
||||
status:200
|
||||
}
|
||||
},
|
||||
async onEnable(context) {
|
||||
const element_id = context.propsValue.list_id;
|
||||
const webhooks = await trelloCommon.list_webhooks(context.auth);
|
||||
const webhook = webhooks.find(
|
||||
(webhook) => webhook.idModel === element_id && webhook.callbackURL === context.webhookUrl,
|
||||
);
|
||||
if (webhook) {
|
||||
context.webhookUrl = webhook.callbackURL;
|
||||
return;
|
||||
}
|
||||
const response = await trelloCommon.create_webhook(
|
||||
context.auth,
|
||||
element_id,
|
||||
context.webhookUrl,
|
||||
);
|
||||
await context.store.put('webhook_id', response.id);
|
||||
},
|
||||
async onDisable(context) {
|
||||
const webhook_id = (await context.store.get('webhook_id')) as string;
|
||||
if (isNil(webhook_id)) {
|
||||
return;
|
||||
}
|
||||
const webhooks = await trelloCommon.list_webhooks(context.auth);
|
||||
const webhook = webhooks.find((webhook) => webhook.callbackURL === context.webhookUrl);
|
||||
if (!webhook) {
|
||||
return;
|
||||
}
|
||||
await trelloCommon.delete_webhook(context.auth, webhook_id);
|
||||
},
|
||||
async run(context) {
|
||||
const response = context.payload.body as TrelloCardMoved;
|
||||
const response_body = response.action.display;
|
||||
if (response.action.display.translationKey !== 'action_move_card_from_list_to_list') {
|
||||
return [];
|
||||
}
|
||||
if (response_body.entities.listAfter.id !== context.propsValue.list_id) {
|
||||
return [];
|
||||
}
|
||||
if (response_body.entities.listBefore.id === context.propsValue.list_id) {
|
||||
return [];
|
||||
}
|
||||
const card = await getCardDetail(
|
||||
context.auth.username,
|
||||
context.auth.password,
|
||||
response_body.entities.card.id,
|
||||
);
|
||||
return [card];
|
||||
},
|
||||
async test(context) {
|
||||
let cards: Array<Record<string, unknown>> = [];
|
||||
try {
|
||||
cards = await getCardsInList(
|
||||
context.auth.username,
|
||||
context.auth.password,
|
||||
context.propsValue.list_id,
|
||||
);
|
||||
|
||||
cards.sort(
|
||||
(a: any, b: any) =>
|
||||
new Date(b.dateLastActivity).getTime() - new Date(a.dateLastActivity).getTime(),
|
||||
);
|
||||
|
||||
return cards.slice(0, 5);
|
||||
} catch (error) {
|
||||
console.error('An error occurred:', error);
|
||||
return [];
|
||||
}
|
||||
},
|
||||
sampleData: {
|
||||
id: '6651d6d6298164adb4a598b6',
|
||||
badges: {
|
||||
attachmentsByType: { trello: { board: 0, card: 0 } },
|
||||
externalSource: null,
|
||||
location: false,
|
||||
votes: 0,
|
||||
viewingMemberVoted: false,
|
||||
subscribed: false,
|
||||
attachments: 0,
|
||||
fogbugz: '',
|
||||
checkItems: 0,
|
||||
checkItemsChecked: 0,
|
||||
checkItemsEarliestDue: null,
|
||||
comments: 0,
|
||||
description: false,
|
||||
due: null,
|
||||
dueComplete: false,
|
||||
lastUpdatedByAi: false,
|
||||
start: null,
|
||||
},
|
||||
checkItemStates: [],
|
||||
closed: false,
|
||||
dueComplete: false,
|
||||
dateLastActivity: '2024-05-25T12:17:26.372Z',
|
||||
desc: '',
|
||||
descData: { emoji: {} },
|
||||
due: null,
|
||||
dueReminder: null,
|
||||
email: null,
|
||||
idBoard: '6639c3a2f9a2ecd2b53adcc4',
|
||||
idChecklists: [],
|
||||
idList: '6639c3a342f39d7f6ff9e9b0',
|
||||
idMembers: [],
|
||||
idMembersVoted: [],
|
||||
idShort: 11,
|
||||
idAttachmentCover: null,
|
||||
labels: [],
|
||||
idLabels: [],
|
||||
manualCoverAttachment: false,
|
||||
name: 'TEST CARDS',
|
||||
pos: 196608,
|
||||
shortLink: '57tgmppm',
|
||||
shortUrl: 'https://trello.com/c/57tghpk',
|
||||
start: null,
|
||||
subscribed: false,
|
||||
url: 'https://trello.com/c/57tkkppm/11-again-cards',
|
||||
cover: {
|
||||
idAttachment: null,
|
||||
color: null,
|
||||
idUploadedBackground: null,
|
||||
size: 'normal',
|
||||
brightness: 'dark',
|
||||
idPlugin: null,
|
||||
},
|
||||
isTemplate: false,
|
||||
cardRole: null,
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,84 @@
|
||||
import { trelloAuth } from '../..';
|
||||
import { TriggerStrategy, createTrigger, PiecePropValueSchema, Property, AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
|
||||
import { DedupeStrategy, Polling, pollingHelper } from '@activepieces/pieces-common';
|
||||
import dayjs from 'dayjs';
|
||||
import { trelloCommon, getCardsInBoard, getCardsInList } from '../common';
|
||||
|
||||
interface Props {
|
||||
board_id: string;
|
||||
list_id_opt?: string;
|
||||
time_before_due: number;
|
||||
time_unit: string;
|
||||
}
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof trelloAuth>, Props> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
async items({ auth, propsValue, lastFetchEpochMS }) {
|
||||
const { board_id, list_id_opt, time_before_due, time_unit } = propsValue;
|
||||
const getCards = list_id_opt ? getCardsInList : getCardsInBoard;
|
||||
const cards: any[] = await getCards(auth.username, auth.password, list_id_opt || board_id);
|
||||
|
||||
if(lastFetchEpochMS ===0)
|
||||
{
|
||||
// If lastFetchEpochMS is 0, we assume this is the test run and return all cards with due dates
|
||||
return cards
|
||||
.filter(card => card.due && !card.dueComplete)
|
||||
.map(card => ({
|
||||
epochMilliSeconds: dayjs(card.due).valueOf(),
|
||||
data: card,
|
||||
}));
|
||||
}
|
||||
const now = dayjs();
|
||||
const upcoming = now.add(time_before_due, time_unit as dayjs.ManipulateType);
|
||||
|
||||
return cards
|
||||
.filter(card => card.due && !card.dueComplete && dayjs(card.due).isAfter(now) && dayjs(card.due).isBefore(upcoming) && dayjs(card.due).valueOf() > lastFetchEpochMS)
|
||||
.map(card => ({
|
||||
epochMilliSeconds: dayjs(card.due).valueOf(),
|
||||
data: card,
|
||||
}));
|
||||
},
|
||||
};
|
||||
|
||||
export const deadlineTrigger = createTrigger({
|
||||
auth: trelloAuth,
|
||||
name: 'deadline',
|
||||
displayName: 'Card Deadline',
|
||||
description: 'Triggers at a specified time before a card deadline.',
|
||||
type: TriggerStrategy.POLLING,
|
||||
props: {
|
||||
board_id: trelloCommon.board_id,
|
||||
list_id_opt: trelloCommon.list_id_opt,
|
||||
time_unit: Property.StaticDropdown({
|
||||
displayName: 'Time unit',
|
||||
description: 'Select unit for time before due',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Minutes', value: 'minutes' },
|
||||
{ label: 'Hours', value: 'hours' },
|
||||
],
|
||||
},
|
||||
defaultValue: 'hours',
|
||||
}),
|
||||
time_before_due: Property.Number({
|
||||
displayName: 'Time before due',
|
||||
description: 'How long before the due date the trigger should run (use with time unit)',
|
||||
required: true,
|
||||
defaultValue: 24,
|
||||
}),
|
||||
},
|
||||
async onEnable(context) {
|
||||
await pollingHelper.onEnable(polling, context);
|
||||
},
|
||||
async onDisable(context) {
|
||||
await pollingHelper.onDisable(polling, context);
|
||||
},
|
||||
async run(context) {
|
||||
return await pollingHelper.poll(polling, context);
|
||||
},
|
||||
async test(context) {
|
||||
return await pollingHelper.test(polling, context);
|
||||
},
|
||||
sampleData: undefined,
|
||||
});
|
||||
@@ -0,0 +1,153 @@
|
||||
import { trelloAuth } from '../..';
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { getCardDetail, getCardsInBoard, getCardsInList, trelloCommon } from '../common';
|
||||
import { TrelloNewCard } from '../common/props/card';
|
||||
import { isNil, WebhookHandshakeStrategy } from '@activepieces/shared';
|
||||
|
||||
export const newCardTrigger = createTrigger({
|
||||
auth: trelloAuth,
|
||||
name: 'new_card',
|
||||
displayName: 'New Card',
|
||||
description: 'Trigger when a new card is created',
|
||||
props: {
|
||||
board_id: trelloCommon.board_id,
|
||||
list_id_opt: trelloCommon.list_id_opt,
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
handshakeConfiguration:{
|
||||
strategy:WebhookHandshakeStrategy.NONE
|
||||
},
|
||||
async onHandshake(context)
|
||||
{
|
||||
return{
|
||||
status:200
|
||||
}
|
||||
},
|
||||
async onEnable(context) {
|
||||
const element_id = context.propsValue.list_id_opt || context.propsValue.board_id;
|
||||
const webhooks = await trelloCommon.list_webhooks(context.auth);
|
||||
const webhook = webhooks.find(
|
||||
(webhook) => webhook.idModel === element_id && webhook.callbackURL === context.webhookUrl,
|
||||
);
|
||||
if (webhook) {
|
||||
context.webhookUrl = webhook.callbackURL;
|
||||
return;
|
||||
}
|
||||
const response = await trelloCommon.create_webhook(
|
||||
context.auth,
|
||||
element_id,
|
||||
context.webhookUrl,
|
||||
);
|
||||
await context.store.put('webhook_id', response.id);
|
||||
},
|
||||
async onDisable(context) {
|
||||
const webhook_id = (await context.store.get('webhook_id')) as string;
|
||||
if (isNil(webhook_id)) {
|
||||
return;
|
||||
}
|
||||
const webhooks = await trelloCommon.list_webhooks(context.auth);
|
||||
const webhook = webhooks.find((webhook) => webhook.callbackURL === context.webhookUrl);
|
||||
if (!webhook) {
|
||||
return;
|
||||
}
|
||||
await trelloCommon.delete_webhook(context.auth, webhook_id);
|
||||
},
|
||||
async run(context) {
|
||||
const body = context.payload.body as TrelloNewCard;
|
||||
if (body.action.display.translationKey !== 'action_create_card') {
|
||||
return [];
|
||||
}
|
||||
if (context.propsValue.list_id_opt) {
|
||||
if (body.action.display.entities.list.id !== context.propsValue.list_id_opt) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
const card = await getCardDetail(
|
||||
context.auth.username,
|
||||
context.auth.password,
|
||||
body.action.display.entities.card.id,
|
||||
);
|
||||
|
||||
return [card];
|
||||
},
|
||||
async test(context) {
|
||||
let cards: Array<Record<string, unknown>> = [];
|
||||
try {
|
||||
const getListFunction = context.propsValue.list_id_opt ? getCardsInList : getCardsInBoard;
|
||||
cards = await getListFunction(
|
||||
context.auth.username,
|
||||
context.auth.password,
|
||||
context.propsValue.list_id_opt || context.propsValue.board_id,
|
||||
);
|
||||
|
||||
cards.sort(
|
||||
(a: any, b: any) =>
|
||||
new Date(b.dateLastActivity).getTime() - new Date(a.dateLastActivity).getTime(),
|
||||
);
|
||||
|
||||
return cards.slice(0, 5);
|
||||
} catch (error) {
|
||||
console.error('An error occurred:', error);
|
||||
return [];
|
||||
}
|
||||
},
|
||||
sampleData: {
|
||||
id: '6651d6d6298164adb4a598b6',
|
||||
badges: {
|
||||
attachmentsByType: { trello: { board: 0, card: 0 } },
|
||||
externalSource: null,
|
||||
location: false,
|
||||
votes: 0,
|
||||
viewingMemberVoted: false,
|
||||
subscribed: false,
|
||||
attachments: 0,
|
||||
fogbugz: '',
|
||||
checkItems: 0,
|
||||
checkItemsChecked: 0,
|
||||
checkItemsEarliestDue: null,
|
||||
comments: 0,
|
||||
description: false,
|
||||
due: null,
|
||||
dueComplete: false,
|
||||
lastUpdatedByAi: false,
|
||||
start: null,
|
||||
},
|
||||
checkItemStates: [],
|
||||
closed: false,
|
||||
dueComplete: false,
|
||||
dateLastActivity: '2024-05-25T12:17:26.372Z',
|
||||
desc: '',
|
||||
descData: { emoji: {} },
|
||||
due: null,
|
||||
dueReminder: null,
|
||||
email: null,
|
||||
idBoard: '6639c3a2f9a2ecd2b53adcc4',
|
||||
idChecklists: [],
|
||||
idList: '6639c3a342f39d7f6ff9e9b0',
|
||||
idMembers: [],
|
||||
idMembersVoted: [],
|
||||
idShort: 11,
|
||||
idAttachmentCover: null,
|
||||
labels: [],
|
||||
idLabels: [],
|
||||
manualCoverAttachment: false,
|
||||
name: 'TEST CARDS',
|
||||
pos: 196608,
|
||||
shortLink: '57tgmppm',
|
||||
shortUrl: 'https://trello.com/c/57tghpk',
|
||||
start: null,
|
||||
subscribed: false,
|
||||
url: 'https://trello.com/c/57tkkppm/11-again-cards',
|
||||
cover: {
|
||||
idAttachment: null,
|
||||
color: null,
|
||||
idUploadedBackground: null,
|
||||
size: 'normal',
|
||||
brightness: 'dark',
|
||||
idPlugin: null,
|
||||
},
|
||||
isTemplate: false,
|
||||
cardRole: null,
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user