From ba038ca2f9fa27ab0d8aa3de9d686655f79735e2 Mon Sep 17 00:00:00 2001 From: Behzad Rabiei <53224485+Behzad-rabiei@users.noreply.github.com> Date: Mon, 8 Jul 2024 08:35:35 +0400 Subject: [PATCH] format: --- src/database/services/guildMember.service.ts | 1 + src/functions/fetchMessages.ts | 36 ++++++++------------ src/rabbitmq/events/fetchEvent.ts | 2 +- src/rabbitmq/events/fetchMembersEvent.ts | 5 ++- src/scripts/deleteRnDAOGuildCommands.ts | 1 - 5 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/database/services/guildMember.service.ts b/src/database/services/guildMember.service.ts index 44c73c22..d4722519 100644 --- a/src/database/services/guildMember.service.ts +++ b/src/database/services/guildMember.service.ts @@ -215,4 +215,5 @@ export default { deleteGuildMembers, handelGuildMemberChanges, getNeededDateFromGuildMember, + getOldestGuildMember, }; diff --git a/src/functions/fetchMessages.ts b/src/functions/fetchMessages.ts index 95321707..08a292a3 100644 --- a/src/functions/fetchMessages.ts +++ b/src/functions/fetchMessages.ts @@ -2,14 +2,7 @@ /* eslint-disable no-unneeded-ternary */ /* eslint-disable @typescript-eslint/strict-boolean-expressions */ import fetch from 'node-fetch'; -import { - type Message, - TextChannel, - type User, - type Role, - ThreadChannel, - type Snowflake, -} from 'discord.js'; +import { type Message, TextChannel, type User, type Role, ThreadChannel, type Snowflake } from 'discord.js'; import { type IRawInfo, type IPlatform, type IDiscordUser } from '@togethercrew.dev/db'; import { rawInfoService, platformService } from '../database/services'; import { type Connection, type HydratedDocument } from 'mongoose'; @@ -56,7 +49,7 @@ async function getReactions(message: Message): Promise { // Standard emoji: just encode the name encodedEmoji = encodeURIComponent(emoji.name); } else { - logger.error({ message_id: message.id,emoji }, 'Emoji name is null or undefined.'); + logger.error({ message_id: message.id, emoji }, 'Emoji name is null or undefined.'); continue; } @@ -74,28 +67,33 @@ async function getReactions(message: Message): Promise { } } - /** * Fetches all users who reacted with a specific emoji on a message using pagination. * @param {string} channelId - The ID of the channel containing the message. * @param {string} messageId - The ID of the message containing the reactions. * @param {string} encodedEmoji - The URL-encoded emoji string. * @returns {Promise<{ id: string; username: string; discriminator: string; avatar: string | null }[]>} - A promise that resolves to an array of user objects. */ -async function fetchAllUsersForReaction(channelId: string, messageId: string, encodedEmoji: string): Promise { - let users:IDiscordUser[] = []; +async function fetchAllUsersForReaction( + channelId: string, + messageId: string, + encodedEmoji: string, +): Promise { + let users: IDiscordUser[] = []; let after = ''; const limit = 100; let hasMore = true; while (hasMore) { - const url = `https://discord.com/api/v9/channels/${channelId}/messages/${messageId}/reactions/${encodedEmoji}?limit=${limit}${after ? `&after=${after}` : ''}`; + const url = `https://discord.com/api/v9/channels/${channelId}/messages/${messageId}/reactions/${encodedEmoji}?limit=${limit}${ + after ? `&after=${after}` : '' + }`; const response = await fetch(url, { method: 'GET', headers: { // eslint-disable-next-line @typescript-eslint/restrict-template-expressions Authorization: `Bot ${config.discord.botToken}`, - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + }, }); if (response.ok) { @@ -107,14 +105,13 @@ async function fetchAllUsersForReaction(channelId: string, messageId: string, en after = fetchedUsers[fetchedUsers.length - 1].id; } } else { - logger.error({ message_id: messageId, error:await response.text() }, 'Error fetching users for reaction'); + logger.error({ message_id: messageId, error: await response.text() }, 'Error fetching users for reaction'); hasMore = false; } } return users; } - // /** // * Fetches reaction details from a message. // * @param {Message} message - The message object from which reactions are to be fetched. @@ -142,10 +139,6 @@ async function fetchAllUsersForReaction(channelId: string, messageId: string, en // } // } - - - - /** * Extracts necessary data from a given message. * @param {Message} message - The message object from which data is to be extracted. @@ -369,4 +362,3 @@ export default async function handleFetchMessages(connection: Connection, platfo logger.error({ guild_id: platform.metadata?.id, error }, 'Failed to fetch messages'); } } - diff --git a/src/rabbitmq/events/fetchEvent.ts b/src/rabbitmq/events/fetchEvent.ts index e92b4de4..0b6a4596 100644 --- a/src/rabbitmq/events/fetchEvent.ts +++ b/src/rabbitmq/events/fetchEvent.ts @@ -26,7 +26,7 @@ const fetchMethod = async (msg: any): Promise => { await Promise.all([ fetchMembers(connection, platform), fetchChannels(connection, platform), - fetchRoles(connection, platform) + fetchRoles(connection, platform), ]); } else { addGuildExtraction(platform); diff --git a/src/rabbitmq/events/fetchMembersEvent.ts b/src/rabbitmq/events/fetchMembersEvent.ts index 07d4df34..f2758514 100644 --- a/src/rabbitmq/events/fetchMembersEvent.ts +++ b/src/rabbitmq/events/fetchMembersEvent.ts @@ -3,6 +3,7 @@ import { type HydratedDocument } from 'mongoose'; import fetchMembers from '../../functions/fetchMembers'; import fetchChannels from '../../functions/fetchChannels'; import fetchRoles from '../../functions/fetchRoles'; +import guildMemberService from '../../database/services/guildMember.service'; import { Event, MBConnection } from '@togethercrew.dev/tc-messagebroker'; import parentLogger from '../../config/logger'; import { platformService } from '../../database/services'; @@ -14,10 +15,12 @@ const logger = parentLogger.child({ const fetchInitialData = async (platform: HydratedDocument): Promise => { try { const connection = await DatabaseManager.getInstance().getTenantDb(platform.metadata?.id); + console.log(await guildMemberService.getOldestGuildMember(connection, {})); + await Promise.all([ fetchMembers(connection, platform), fetchChannels(connection, platform), - fetchRoles(connection, platform) + fetchRoles(connection, platform), ]); } catch (error) { logger.error({ error }, 'fetchInitialData is failed'); diff --git a/src/scripts/deleteRnDAOGuildCommands.ts b/src/scripts/deleteRnDAOGuildCommands.ts index a0c5ce73..ef7ebafc 100644 --- a/src/scripts/deleteRnDAOGuildCommands.ts +++ b/src/scripts/deleteRnDAOGuildCommands.ts @@ -18,7 +18,6 @@ async function deleteRnDAOGuildCommands(): Promise { await rest.delete(Routes.applicationGuildCommand(config.discord.clientId, '915914985140531240', command.id)); }); } catch (error) { - console.log(error); logger.error('Failed to delete RnDAO guild commands', error); } }