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

Function autoVerifyOnJoin

src/services/verificationService.js:179–292  ·  view source on GitHub ↗
(client, guild, member, verificationConfig)

Source from the content-addressed store, hash-verified

177}
178
179export async function autoVerifyOnJoin(client, guild, member, verificationConfig) {
180 try {
181
182 if (!verificationConfig.autoVerify?.enabled) {
183 return {
184 autoVerified: false,
185 reason: 'auto_verify_disabled'
186 };
187 }
188
189 const autoVerifyRoleId = verificationConfig.autoVerify?.roleId || verificationConfig.roleId;
190 if (!autoVerifyRoleId) {
191 return {
192 autoVerified: false,
193 reason: 'auto_verify_role_not_configured'
194 };
195 }
196
197 const effectiveVerificationConfig = {
198 ...verificationConfig,
199 roleId: autoVerifyRoleId
200 };
201
202 await validateVerificationSetup(guild, effectiveVerificationConfig);
203
204 const shouldVerify = evaluateAutoVerifyCriteria(
205 member,
206 verificationConfig.autoVerify
207 );
208
209 if (!shouldVerify) {
210 return {
211 autoVerified: false,
212 reason: 'criteria_not_met',
213 criteria: verificationConfig.autoVerify.criteria
214 };
215 }
216
217 const verifiedRole = guild.roles.cache.get(autoVerifyRoleId);
218
219 const canAssign = await validateBotCanAssignRole(guild, verifiedRole.id);
220 if (!canAssign) {
221 logger.warn('Cannot auto-verify: bot cannot assign role', {
222 guildId: guild.id,
223 userId: member.id,
224 roleId: verifiedRole.id
225 });
226 return {
227 autoVerified: false,
228 reason: 'bot_cannot_assign_role'
229 };
230 }
231
232 if (member.roles.cache.has(verifiedRole.id)) {
233 return {
234 autoVerified: false,
235 reason: 'already_verified',
236 alreadyHasRole: true

Callers 1

handleVerificationFunction · 0.85

Calls 7

ensureTypedServiceErrorFunction · 0.90
validateBotCanAssignRoleFunction · 0.85
logVerificationActionFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected