Closed gioliveirass closed 1 year ago
Para realizar a task mencionada acima foi adicionado ao controller do Partner a rota com o método PUT que recebe o id da parceria como parâmetro e assim no service salvamos as alterações enviadas que são pré-validadas com o DTO.
NestJS, Prisma, PostgresSQL e Insomnia
URL: domain.api.com.br/partners/:id Method: PUT
@Put('/:id')
async updatePartner(
@Param('id') id: string,
@Body() dataToUpdate: UpdatePartnerDTO,
) {
const partnerFound = await this.partnerService.findById(id);
if (partnerFound === null) {
throw new NotFoundException('Parceria não encontrada.');
}
const partnerUpdated = await this.partnerService.update(id, dataToUpdate);
return {
partner: partnerUpdated,
message: 'Dados da Parceria Atualizado com sucesso.',
};
}
update(id: string, partner: UpdatePartnerDTO) {
return this.prismaService.partner.update({
data: partner,
where: {
id,
},
});
}
export class UpdatePartnerDTO {
@IsOptional()
name: string;
@IsEmail(undefined, { message: 'o e-mail informado é invalido' })
@IsOptional()
email: string;
@MaxLength(14, { message: 'O telefone deve conter no máximo 14 caracteres' })
@MinLength(8, { message: 'O telefone deve conter pelo menos 8 caracteres' })
@IsOptional()
phoneNumber: string;
@MaxLength(8, { message: 'O CEP deve conter 8 caracteres' })
@IsOptional()
zipCode: string;
@IsOptional()
state: string;
@IsOptional()
city: string;
@IsOptional()
neighborhood: string;
@IsOptional()
address: string;
@IsOptional()
classification: PartnerClassification;
@IsOptional()
status: PartnerStatus;
@IsNumber()
@IsOptional()
memberNumber: number;
}
Para mais detalhes, veja nas alterações realizadas :D
@ThHenrique o CEP é obrigatório?
O CEP é opcional
Descrição da atividade
Criar rota que deverá ser consumida pelo front-end para edição de informações de parcerias. Deve ser possível editar todas as informações inseridas durante o cadastro.
DoR
DoD