28 lines
576 B
TypeScript
28 lines
576 B
TypeScript
import {
|
|
Injectable,
|
|
NotFoundException,
|
|
} from '@nestjs/common';
|
|
|
|
import { UserRepository } from '../../domain/repositories/user.repository.interface';
|
|
|
|
@Injectable()
|
|
export class DeleteUserHandler {
|
|
constructor(
|
|
private readonly userRepository: UserRepository,
|
|
) {}
|
|
|
|
async execute(id: string): Promise<void> {
|
|
const user = await this.userRepository.findById(id);
|
|
|
|
if (!user) {
|
|
throw new NotFoundException('User not found.');
|
|
}
|
|
|
|
user.delete();
|
|
|
|
await this.userRepository.update(user);
|
|
|
|
// TODO:
|
|
// Publish UserDeletedEvent
|
|
}
|
|
} |