From 79e609e68228f26d3b0bd76e1ca7a8a91ed5ed0a Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Sun, 30 Oct 2022 22:28:16 +0100 Subject: [PATCH] feat(discord): add list channels data --- .../backend/src/apps/discord/data/index.ts | 5 +++ .../apps/discord/data/list-channels/index.ts | 32 +++++++++++++++++++ packages/backend/src/apps/discord/index.ts | 2 ++ 3 files changed, 39 insertions(+) create mode 100644 packages/backend/src/apps/discord/data/index.ts create mode 100644 packages/backend/src/apps/discord/data/list-channels/index.ts diff --git a/packages/backend/src/apps/discord/data/index.ts b/packages/backend/src/apps/discord/data/index.ts new file mode 100644 index 00000000..596f701b --- /dev/null +++ b/packages/backend/src/apps/discord/data/index.ts @@ -0,0 +1,5 @@ +import listChannels from "./list-channels"; + +export default [ + listChannels, +]; diff --git a/packages/backend/src/apps/discord/data/list-channels/index.ts b/packages/backend/src/apps/discord/data/list-channels/index.ts new file mode 100644 index 00000000..eaff6527 --- /dev/null +++ b/packages/backend/src/apps/discord/data/list-channels/index.ts @@ -0,0 +1,32 @@ +import { IGlobalVariable, IJSONObject } from '@automatisch/types'; + +export default { + name: 'List channels', + key: 'listChannels', + + async run($: IGlobalVariable) { + const channels: { + data: IJSONObject[]; + error: IJSONObject | null; + } = { + data: [], + error: null, + }; + + const response = await $.http.get(`/guilds/${$.auth.data.guildId}/channels`); + + channels.data = response.data + .filter((channel: IJSONObject) => { + // filter in text channels only + return channel.type === 0; + }) + .map((channel: IJSONObject) => { + return { + value: channel.id, + name: channel.name, + }; + }); + + return channels; + }, +}; diff --git a/packages/backend/src/apps/discord/index.ts b/packages/backend/src/apps/discord/index.ts index 9734fd34..25972f7d 100644 --- a/packages/backend/src/apps/discord/index.ts +++ b/packages/backend/src/apps/discord/index.ts @@ -1,6 +1,7 @@ import defineApp from '../../helpers/define-app'; import addAuthHeader from './common/add-auth-header'; import auth from './auth'; +import data from './data'; import actions from './actions'; import triggers from './triggers'; @@ -15,6 +16,7 @@ export default defineApp({ primaryColor: '5865f2', beforeRequest: [addAuthHeader], auth, + data, triggers, actions, });