fix: create user cli controller dependency

This commit is contained in:
user
2021-09-11 17:36:09 +02:00
parent ebcfe8cba8
commit 81fbc0980b
3 changed files with 28 additions and 5 deletions

View File

@@ -1,4 +1,7 @@
import { createUserSymbol } from '@modules/user/user.providers';
import {
createUserCliLoggerSymbol,
createUserSymbol,
} from '@modules/user/user.providers';
import { Inject } from '@nestjs/common';
import { Command, Console } from 'nestjs-console';
import { Logger } from 'src/core/ports/logger.port';
@@ -14,6 +17,7 @@ export class CreateUserCliController {
constructor(
@Inject(createUserSymbol)
private readonly service: CreateUserService,
@Inject(createUserCliLoggerSymbol)
private readonly logger: Logger,
) {}
@@ -36,6 +40,6 @@ export class CreateUserCliController {
const id = await this.service.createUser(command);
this.logger.log('User created:', id);
this.logger.log('User created:', id.value);
}
}

View File

@@ -5,7 +5,11 @@ import { UserRepository } from './database/user.repository';
import { CreateUserHttpController } from './commands/create-user/create-user.http.controller';
import { FindUserByEmailHttpController } from './queries/find-user-by-email/find-user-by-email.http.controller';
import { DeleteUserHttpController } from './commands/delete-user/delete-user.controller';
import { createUserProvider, removeUserProvider } from './user.providers';
import {
createUserCliLoggerProvider,
createUserProvider,
removeUserProvider,
} from './user.providers';
import { CreateUserCliController } from './commands/create-user/create-user.cli.controller';
@Module({
@@ -20,6 +24,7 @@ import { CreateUserCliController } from './commands/create-user/create-user.cli.
createUserProvider,
removeUserProvider,
CreateUserCliController,
createUserCliLoggerProvider,
],
})
export class UserModule {}

View File

@@ -1,10 +1,15 @@
import { Provider } from '@nestjs/common';
import { Logger, Provider } from '@nestjs/common';
import { UserRepository } from './database/user.repository';
import { CreateUserService } from './commands/create-user/create-user.service';
import { DeleteUserService } from './commands/delete-user/delete-user.service';
/* Constructing providers to avoid having framework decorators
in application core. */
like @Injectable() or @Inject() inside application core.
Though if you want to simplify things using those decorators
is acceptable since they are not very intrusive.
Choose how "pure" your application core / domain has to be
depending on your needs.
*/
export const createUserSymbol = Symbol('createUser');
@@ -25,3 +30,12 @@ export const removeUserProvider: Provider = {
},
inject: [UserRepository],
};
export const createUserCliLoggerSymbol = Symbol('createUserCliLoggerSymbol');
export const createUserCliLoggerProvider: Provider = {
provide: createUserCliLoggerSymbol,
useFactory: (): Logger => {
return new Logger('create-user-cli');
},
};