From 7003f50dbba6833d1ffda738f26a335e5a52c92a Mon Sep 17 00:00:00 2001 From: Alec LaLonde Date: Thu, 11 Feb 2021 17:16:04 -0700 Subject: [PATCH] Call discord REST API directly from backend instead --- .../1613085907468_add_metafam_discord/up.sql | 2 ++ packages/backend/src/config.ts | 2 ++ .../handlers/triggers/updateDiscordRole.ts | 23 +++++++++++++++++-- packages/discord-bot/package.json | 1 - packages/discord-bot/src/index.ts | 4 ---- packages/discord-bot/src/types.d.ts | 4 ---- 6 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 hasura/migrations/1613085907468_add_metafam_discord/up.sql delete mode 100644 packages/discord-bot/src/types.d.ts diff --git a/hasura/migrations/1613085907468_add_metafam_discord/up.sql b/hasura/migrations/1613085907468_add_metafam_discord/up.sql new file mode 100644 index 00000000..b102e22a --- /dev/null +++ b/hasura/migrations/1613085907468_add_metafam_discord/up.sql @@ -0,0 +1,2 @@ +insert into guild_account (guild_id, type, identifier) VALUES +('f94b7cd4-cf29-4251-baa5-eaacab98a719', 'DISCORD', '629411177947987986'); diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts index af62a698..1d429313 100644 --- a/packages/backend/src/config.ts +++ b/packages/backend/src/config.ts @@ -9,6 +9,7 @@ interface IConfig { infuraId: string; pSEEDAddress: string; brightIdAppUrl: string; + discordBotToken: string; } function parseEnv( @@ -55,4 +56,5 @@ export const CONFIG: IConfig = { process.env.NEXT_BRIGHTID_APP_URL, 'https://app.brightid.org', ), + discordBotToken: parseEnv(process.env.DISCORD_BOT_TOKEN, ''), }; diff --git a/packages/backend/src/handlers/triggers/updateDiscordRole.ts b/packages/backend/src/handlers/triggers/updateDiscordRole.ts index acd40ab7..6e3be501 100644 --- a/packages/backend/src/handlers/triggers/updateDiscordRole.ts +++ b/packages/backend/src/handlers/triggers/updateDiscordRole.ts @@ -1,8 +1,14 @@ -import { UpdateRole } from '@metafam/discord-bot'; +import fetch from 'node-fetch'; import { AccountType_Enum, Player } from '../../lib/autogen/hasura-sdk'; import { TriggerPayload } from './types'; +export interface UpdateRole { + playerId: string; + previousRole: string | undefined; + newRole: string; +} + export const updateDiscordRole = async ( payload: TriggerPayload, ) => { @@ -17,8 +23,21 @@ export const updateDiscordRole = async ( if (newRank == null) return; const discordPayload: UpdateRole = { + playerId: newPlayer?.id, previousRole: oldPlayer?.rank?.toString(), newRole: newRank } - // todo call API in discord-bot repo + // look up guild by guildname = 'metagame' (for now), + // then look up guild_account for DISCORD type + // will need to create new graphql queries for these (can they be joined into one?) + + + // call discord API. for each query we'll need serverId, playerId, and roleId + // since we don't have roleIds, we'll need to look up the roles in the server + // and just match by strings for the time being. + // https://discord.com/developers/docs/resources/guild#get-guild-roles + + // if there's an oldRank, delete it. + // if there's a new rank, add it + fetch() }; diff --git a/packages/discord-bot/package.json b/packages/discord-bot/package.json index 041559bc..05aa5a42 100644 --- a/packages/discord-bot/package.json +++ b/packages/discord-bot/package.json @@ -15,7 +15,6 @@ }, "author": "", "license": "ISC", - "types": "src/types.d.ts", "dependencies": { "@typeit/discord": "4.0.9", "discord.js": "12.5.1", diff --git a/packages/discord-bot/src/index.ts b/packages/discord-bot/src/index.ts index 3bb4c43f..2c83bfdd 100644 --- a/packages/discord-bot/src/index.ts +++ b/packages/discord-bot/src/index.ts @@ -2,7 +2,6 @@ import { Client } from '@typeit/discord'; import { CONFIG } from './config'; -import * as types from './types'; async function start() { const client = new Client({ @@ -18,6 +17,3 @@ async function start() { } start(); - - -export { types }; diff --git a/packages/discord-bot/src/types.d.ts b/packages/discord-bot/src/types.d.ts deleted file mode 100644 index 1ccc632a..00000000 --- a/packages/discord-bot/src/types.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface UpdateRole { - previousRole: string | undefined; - newRole: string; -}