Skip to content
This repository was archived by the owner on Aug 1, 2021. It is now read-only.

Commit a5f8cd8

Browse files
committed
Events now can be fired
1 parent 5827d0d commit a5f8cd8

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

src/loaders/events.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
//Here we import all events
2+
import '../subscribers/user';

src/loaders/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import dependencyInjectorLoader from './dependencyInjector';
33
import mongooseLoader from './mongoose';
44
import jobsLoader from './jobs';
55
import Logger from './logger';
6+
//We have to import at least all the events once so they can be triggered
7+
import './events';
8+
69
export default async ({ expressApp }) => {
710
const mongoConnection = await mongooseLoader();
811
Logger.info('✌️ DB loaded and connected!');

src/services/auth.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ import config from '../config';
55
import * as argon2 from 'argon2';
66
import { randomBytes } from 'crypto';
77
import { IUser, IUserInputDTO } from '../interfaces/IUser';
8+
import { EventDispatcher, EventDispatcherInterface } from '../decorators/eventDispatcher';
9+
import events from '../subscribers/events';
810

911
@Service()
1012
export default class AuthService {
1113
constructor(
12-
@Inject('userModel') private userModel,
13-
private mailer: MailerService,
14-
@Inject('logger') private logger,
15-
) {}
14+
@Inject('userModel') private userModel,
15+
private mailer: MailerService,
16+
@Inject('logger') private logger,
17+
@EventDispatcher() private eventDispatcher: EventDispatcherInterface,
18+
) {}
1619

1720
public async SignUp(userInputDTO: IUserInputDTO): Promise<{ user: IUser; token: string }> {
1821
try {
@@ -51,6 +54,8 @@ export default class AuthService {
5154
this.logger.silly('Sending welcome email');
5255
await this.mailer.SendWelcomeEmail(userRecord);
5356

57+
this.eventDispatcher.dispatch(events.user.signUp, { user: userRecord });
58+
5459
/**
5560
* @TODO This is not the best way to deal with this
5661
* There should exist a 'Mapper' layer

0 commit comments

Comments
 (0)