From bc337c588a6561f697449f5ec852a2c356921da2 Mon Sep 17 00:00:00 2001 From: moaaz Date: Wed, 8 Nov 2023 08:33:12 +0200 Subject: [PATCH] feat(carbone): add `add-template` action --- .../carbone/actions/add-template/index.ts | 35 +++++++++++++++++++ .../backend/src/apps/carbone/actions/index.ts | 3 ++ packages/backend/src/apps/carbone/index.ts | 2 ++ 3 files changed, 40 insertions(+) create mode 100644 packages/backend/src/apps/carbone/actions/add-template/index.ts create mode 100644 packages/backend/src/apps/carbone/actions/index.ts diff --git a/packages/backend/src/apps/carbone/actions/add-template/index.ts b/packages/backend/src/apps/carbone/actions/add-template/index.ts new file mode 100644 index 00000000..be120fd3 --- /dev/null +++ b/packages/backend/src/apps/carbone/actions/add-template/index.ts @@ -0,0 +1,35 @@ +import defineAction from '../../../../helpers/define-action'; + +export default defineAction({ + name: 'Add Template', + key: 'addTemplate', + description: + 'Creates an attachment of a specified object by given parent ID.', + arguments: [ + { + label: 'Templete Data', + key: 'templateData', + type: 'string' as const, + required: true, + variables: true, + description: 'The content of your new Template in XML/HTML format.', + }, + ], + + async run($) { + const templateData = $.step.parameters.templateData as string; + + const base64Data = Buffer.from(templateData).toString('base64'); + const dataURI = `data:application/xml;base64,${base64Data}`; + + const body = JSON.stringify({ template: dataURI }); + + const response = await $.http.post('/template', body, { + headers: { + 'Content-Type': 'application/json', + }, + }); + + $.setActionItem({ raw: response.data }); + }, +}); diff --git a/packages/backend/src/apps/carbone/actions/index.ts b/packages/backend/src/apps/carbone/actions/index.ts new file mode 100644 index 00000000..41b98543 --- /dev/null +++ b/packages/backend/src/apps/carbone/actions/index.ts @@ -0,0 +1,3 @@ +import addTemplate from './add-template'; + +export default [addTemplate]; diff --git a/packages/backend/src/apps/carbone/index.ts b/packages/backend/src/apps/carbone/index.ts index d24d1670..7eb98ac7 100644 --- a/packages/backend/src/apps/carbone/index.ts +++ b/packages/backend/src/apps/carbone/index.ts @@ -1,6 +1,7 @@ import defineApp from '../../helpers/define-app'; import addAuthHeader from './common/add-auth-header'; import auth from './auth'; +import actions from './actions'; export default defineApp({ name: 'Carbone', @@ -13,4 +14,5 @@ export default defineApp({ primaryColor: '6f42c1', beforeRequest: [addAuthHeader], auth, + actions, });