17 lines
622 B
TypeScript
17 lines
622 B
TypeScript
import { IContactRepository } from '../../../Domain/IRepository/IContactRepository';
|
|
import { GetContactByIdQuery } from './GetContactByIdQuery';
|
|
import { DetailContactDto } from '../../DTOs/ContactDto';
|
|
import { ContactMapper } from '../../DTOs/Mappers/ContactMapper';
|
|
|
|
export class GetContactByIdQueryHandler {
|
|
constructor(private readonly contactRepo: IContactRepository) {}
|
|
|
|
async execute(query: GetContactByIdQuery): Promise<DetailContactDto | null> {
|
|
const contact = await this.contactRepo.findById(query.id);
|
|
if (!contact) {
|
|
return null;
|
|
}
|
|
return ContactMapper.toDetailDto(contact);
|
|
}
|
|
}
|