Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 27, 2022 02:41 am GMT

Clean Architecture: implementando meu primeiro Use Case

Seguindo o curso que estou usando para aprender sobre Clean Arch a ideia refatorarmos o projeto de DDD para aplicar a Clean Architecture

Implementao

Image description

De inicio a ideia j adicionar um pasta de useCase onde vo ficar todos os useCases, ento criamos a pasta customer que nesse contexto seria a entidade e a pasta find que o useCase que vou implementar primeiro para o customer dentro dessa pasta vamos criar o arquivo find.customer.dto.ts que vai definir as interfaces do input e output dos dados para esse use case

export interface InputFindCustomerDto {  id: string;}export interface OutputFindCustomerDto {  id: string;  name: string;  address: {    street: string;    city: string;    number: string;    zip: string;  }}

E ento vamos para a implementao do useCase em si, que vai receber no construtor a interface do repositrio de customer, para que ele possa receber qualquer implementao desse repositorio.

export class FindCostumerUseCase{  constructor(private customerRepository: CustomerRepositoryInterface){}  async execute({id}: InputFindCustomerDto): Promise<OutputFindCustomerDto>{    const customer = await this.customerRepository.find(id);    return {      id: customer.id,      name: customer.name,      address: {        street: customer.address.street,        number: customer.address.number,        zip: customer.address.zip,        city: customer.address.city      }    }  }

Nesse caso eu no precisava formatar os dados para retornar no formato do DTO pois por padro j seria retornado nesse formato, porem quis fazer dessa forma mais por motivos didticos e me forar a no esquecer.


Original Link: https://dev.to/yanpiing/clean-architecture-implementando-meu-primeiro-use-case-4oe7

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To