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

Function verifyUser

src/services/verificationService.js:31–138  ·  view source on GitHub ↗
(client, guildId, userId, options = {})

Source from the content-addressed store, hash-verified

29let lastCleanupAt = 0;
30
31export async function verifyUser(client, guildId, userId, options = {}) {
32 const { source = 'manual', moderatorId = null } = options;
33
34 try {
35
36 const guild = client.guilds.cache.get(guildId);
37 if (!guild) {
38 throw createError(
39 `Guild ${guildId} not found`,
40 ErrorTypes.CONFIGURATION,
41 "Guild not found in bot cache.",
42 { guildId }
43 );
44 }
45
46 let member;
47 try {
48 member = await guild.members.fetch(userId);
49 } catch (error) {
50 throw createError(
51 `Member ${userId} not found in guild`,
52 ErrorTypes.USER_INPUT,
53 "User is not in this server.",
54 { userId, guildId }
55 );
56 }
57
58 const guildConfig = await getGuildConfig(client, guildId);
59
60 if (!guildConfig.verification?.enabled) {
61 throw createError(
62 "Verification system disabled",
63 ErrorTypes.CONFIGURATION,
64 "The verification system is not enabled on this server.",
65 { guildId }
66 );
67 }
68
69 await validateVerificationSetup(guild, guildConfig.verification);
70
71 const verifiedRole = guild.roles.cache.get(guildConfig.verification.roleId);
72 const canAssignRole = await validateBotCanAssignRole(guild, verifiedRole.id);
73 if (!canAssignRole) {
74 throw createError(
75 'Bot cannot assign verified role',
76 ErrorTypes.PERMISSION,
77 "I can't assign the verified role. Please check my **Manage Roles** permission and role hierarchy.",
78 { guildId, roleId: verifiedRole.id }
79 );
80 }
81
82 if (member.roles.cache.has(verifiedRole.id)) {
83 return {
84 success: false,
85 alreadyVerified: true,
86 message: "User already verified",
87 userId,
88 roleId: verifiedRole.id

Callers 2

executeFunction · 0.90
handleVerificationButtonFunction · 0.90

Calls 9

createErrorFunction · 0.90
getGuildConfigFunction · 0.90
ensureTypedServiceErrorFunction · 0.90
validateBotCanAssignRoleFunction · 0.85
trackVerificationAttemptFunction · 0.85
logVerificationActionFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected