mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
53 lines
1.5 KiB
JavaScript
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,
|
|
};
|