Skip to content

Commit

Permalink
Merge pull request #70 from show-karma/feature/role-management-after-…
Browse files Browse the repository at this point in the history
…link

feat: role management after link
  • Loading branch information
Arthh authored Jul 27, 2023
2 parents e72e265 + e08d7fb commit 208f3eb
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 11 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"start": "NODE_ENV=development TZ=UTC yarn ts-node src/main.ts",
"service:discord:message:update:consumer": "TZ=UTC NODE_ENV=development nodemon src/services/discord-message-consumer/main.ts",
"service:discord:channel:cleaner:consumer": "TZ=UTC NODE_ENV=development nodemon src/services/discord-channel-cleaner-consumer/main.ts",
"apecoin:role:update": "yarn ts-node src/services/apecoin/index.ts"
"apecoin:role:update": "yarn ts-node src/services/apecoin/run.ts"
},
"dependencies": {
"@discordjs/builders": "^0.15.0",
Expand Down
1 change: 1 addition & 0 deletions src/@types/discord-message-update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ export interface DiscordSQSMessage {
userId?: number | number[];
users?: string[];
discordId?: string;
delegateId?: number;
publicAddress?: string;
daos: {
name: string;
Expand Down
13 changes: 8 additions & 5 deletions src/services/apecoin/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ async function fetchDaoData() {
}
}

async function fetchDelegates(daoName: string) {
async function fetchDelegates(daoName: string, publicAddress?: string) {
const delegateQuery = `
SELECT "t1"."discordHandle",
"u"."publicAddress",
Expand All @@ -37,6 +37,7 @@ async function fetchDelegates(daoName: string) {
WHERE "t1"."daoName" = $1
AND "t2"."period" = '1y'
AND "t1"."discordHandle" IS NOT NULL
${publicAddress ? `AND "u"."publicAddress" = ${publicAddress}` : ''}
`;
try {
const result = await pool.query(delegateQuery, [daoName]);
Expand Down Expand Up @@ -96,12 +97,12 @@ async function manageRoles(client: Client, guildId: string, handles: any[], acti
}
}

(async () => {
export default async function roleManager(publicAddress?: string) {
const dao = await fetchDaoData();

const delegates = await fetchDelegates(dao.name);
const delegates = await fetchDelegates(dao.name, publicAddress);

if (!delegates?.length) return;
if (!delegates?.length) return console.log('No delegates found');

const addHandles = [];
const revokeHandles = [];
Expand Down Expand Up @@ -133,4 +134,6 @@ async function manageRoles(client: Client, guildId: string, handles: any[], acti
});

client.login(process.env.DISCORD_TOKEN);
})();
}

// (async () => await roleManager())();
3 changes: 3 additions & 0 deletions src/services/apecoin/run.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import roleManager from '.';

(async () => await roleManager())();
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { DiscordSQSMessage } from 'src/@types/discord-message-update';
import GetPastMessagesService from '../get-messages.service';
import { Client, Intents } from 'discord.js';
import { SentryService } from '../../sentry/sentry.service';
import roleManager from '../apecoin/index';

const LOG_CTX = 'DelegateStatUpdateConsumerService';

Expand Down Expand Up @@ -38,11 +39,19 @@ export class DiscordMessageConsumerService {
parsedMessage = JSON.parse(message.message) as DiscordSQSMessage;

console.log(`[${message.messageId}][${JSON.stringify(parsedMessage)}]`, LOG_CTX);
if (parsedMessage.daos) {
console.log(parsedMessage);
await this.getPastMessagesService.getMessages(client, parsedMessage);
} else {
console.log('no daos');

if (!parsedMessage.daos) return;

console.log(parsedMessage.reason);
switch (parsedMessage.reason) {
case 'user-discord-link':
await this.getPastMessagesService.getMessages(client, parsedMessage);
break;
case 'delegate-update-discord-roles':
await roleManager(parsedMessage.publicAddress);
break;
default:
break;
}

console.log(`Time [${Date.now() - startTime}]`, LOG_CTX);
Expand Down

0 comments on commit 208f3eb

Please sign in to comment.