Files
MultiRoombaRover/server/src/services/verificationService/hooks.js
T
2026-04-28 21:35:31 -04:00

53 lines
1.5 KiB
JavaScript

// Verification Hooks Module
// Purpose: Registers socket and role-change event hooks for identity, verification requests, and reevaluation.
// Scope: Binds framework events to verification-service flows without owning verification business logic.
function registerVerificationHooks(deps) {
const {
io,
roleEvents,
logger,
identifySocket,
createVerificationRequest,
reevaluateSocketVerification,
reevaluateSocketDeterrence,
emitChange,
} = deps;
io.on('connection', (socket) => {
identifySocket(socket, {});
socket.on('session:identify', (payload = {}, cb = () => {}) => {
try {
const result = identifySocket(socket, payload || {});
cb({ success: true, ...result });
} catch (err) {
cb({ error: err.message });
}
});
socket.on('verification:request', (_, cb = () => {}) => {
try {
const request = createVerificationRequest(socket);
cb({ success: true, requestId: request.id, status: request.status });
} catch (err) {
cb({ error: err.message });
}
});
});
roleEvents.on('change', ({ socket }) => {
if (!socket) return;
try {
reevaluateSocketVerification(socket);
reevaluateSocketDeterrence(socket);
emitChange('role_change', { socketId: socket.id });
} catch (err) {
logger.warn('Failed to reevaluate verification on role change', err.message);
}
});
}
module.exports = {
registerVerificationHooks,
};