MCPcopy Index your code
hub / github.com/codebymitch/TitanBot / getAllReactionRoleMessages

Function getAllReactionRoleMessages

src/services/reactionRoleService.js:291–375  ·  view source on GitHub ↗
(client, guildId)

Source from the content-addressed store, hash-verified

289}
290
291export async function getAllReactionRoleMessages(client, guildId) {
292 try {
293 validateGuildId(guildId);
294
295 const prefix = `reaction_roles:${guildId}:`;
296
297 let keys;
298 try {
299 keys = await client.db.list(prefix);
300
301 if (keys && typeof keys === 'object') {
302 if (Array.isArray(keys)) {
303
304 } else if (keys.value && Array.isArray(keys.value)) {
305 keys = keys.value;
306 } else {
307 const allKeys = await client.db.list();
308
309 if (Array.isArray(allKeys)) {
310 keys = allKeys.filter(key => key.startsWith(prefix));
311 } else if (allKeys.value && Array.isArray(allKeys.value)) {
312 keys = allKeys.value.filter(key => key.startsWith(prefix));
313 } else {
314 return [];
315 }
316 }
317 } else {
318 return [];
319 }
320 } catch (listError) {
321 logger.error(`Error listing reaction role keys for guild ${guildId}:`, listError);
322 throw createError(
323 'Database error listing reaction roles',
324 ErrorTypes.DATABASE,
325 'Failed to retrieve reaction role list. Please try again.',
326 { guildId, originalError: listError.message }
327 );
328 }
329
330 if (!keys || keys.length === 0) {
331 return [];
332 }
333
334 const messages = [];
335
336 for (const key of keys) {
337 try {
338 const data = await client.db.get(key);
339
340 if (data) {
341 let actualData;
342 if (data && data.ok && data.value) {
343 actualData = data.value;
344 } else if (data && data.value) {
345 actualData = data.value;
346 } else {
347 actualData = data;
348 }

Callers 4

autocompleteFunction · 0.90
handleSetupFunction · 0.90
executeFunction · 0.85

Calls 4

createErrorFunction · 0.90
validateGuildIdFunction · 0.85
listMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected