Skip to content

Commit 8d84726

Browse files
author
Lasim
committed
fix(backend): emit USER_REGISTERED event for new GitHub users
1 parent dda8eb9 commit 8d84726

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

services/backend/src/routes/auth/github.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { generateState } from 'arctic';
1111
import { GlobalSettingsInitService } from '../../global-settings';
1212
import { EmailService } from '../../email';
1313
import { GlobalSettings } from '../../global-settings/helpers';
14+
import { EVENT_NAMES } from '../../events';
15+
import type { EventContext } from '../../events/types';
1416

1517
// Response schemas for GitHub OAuth API
1618
const errorResponseSchema = z.object({
@@ -371,6 +373,47 @@ export default async function githubAuthRoutes(fastify: FastifyInstance) {
371373
fastify.log.warn(teamError, 'Failed to create default team for GitHub user');
372374
}
373375

376+
// Emit USER_REGISTERED event for new GitHub users
377+
try {
378+
const eventContext: EventContext = {
379+
db,
380+
logger: fastify.log,
381+
user: {
382+
id: newUserId,
383+
email: newUserData.email,
384+
roleId: newUserData.role_id
385+
},
386+
request: {
387+
ip: request.ip,
388+
userAgent: request.headers['user-agent'],
389+
requestId: request.id
390+
},
391+
timestamp: new Date()
392+
};
393+
394+
fastify.eventBus.emitWithContext(
395+
EVENT_NAMES.USER_REGISTERED,
396+
{
397+
user: {
398+
id: newUserId,
399+
email: newUserData.email,
400+
name: newUserData.username || `${newUserData.first_name || ''} ${newUserData.last_name || ''}`.trim() || newUserData.email,
401+
createdAt: new Date()
402+
},
403+
metadata: {
404+
registrationMethod: 'oauth',
405+
ip: request.ip,
406+
userAgent: request.headers['user-agent']
407+
}
408+
},
409+
eventContext
410+
);
411+
fastify.log.info(`USER_REGISTERED event emitted for GitHub user: ${newUserId}`);
412+
} catch (eventError) {
413+
fastify.log.error(eventError, `Failed to emit USER_REGISTERED event for GitHub user ${newUserId}:`);
414+
// Don't fail registration if event emission fails
415+
}
416+
374417
// Create session using manual method (workaround for Lucia adapter issue)
375418
try {
376419
const sessionId = generateId(40);

0 commit comments

Comments
 (0)