UNPKG

@koalarx/nest-cli

Version:

Biblioteca de CLI para criação de projetos utilizando Koala Nest

38 lines (33 loc) 1.21 kB
import { Person } from '@/domain/entities/person/person' import { IPersonRepository } from '@/domain/repositories/iperson.repository' import { ResourceNotFoundError } from '@koalarx/nest/core/errors/resource-not-found.error' import { AutoMappingService } from '@koalarx/nest/core/mapping/auto-mapping.service' import { RequestHandlerBase } from '@koalarx/nest/core/request-overflow/request-handler.base' import { failure, ok, RequestResult, } from '@koalarx/nest/core/request-overflow/request-result' import { Injectable } from '@nestjs/common' import { ReadPersonResponse } from './read-person.response' @Injectable() export class ReadPersonHandler extends RequestHandlerBase< number, RequestResult<ResourceNotFoundError, ReadPersonResponse> > { constructor( private readonly mapper: AutoMappingService, private readonly repository: IPersonRepository, ) { super() } async handle( id: number, ): Promise<RequestResult<ResourceNotFoundError, ReadPersonResponse>> { const person = await this.repository.read(id) if (!person) { return failure(new ResourceNotFoundError('Pessoa')) } return ok(this.mapper.map(person, Person, ReadPersonResponse)) } }