The-Bugger-Ducks / owl-partners-back

API do projeto "Owl Partners" (5º DSM - 2023, FATEC Profº Jessen Vidal - SJC)
https://owlpartners.onrender.com/api
2 stars 0 forks source link

[#0106] Edição de parceria #5

Closed gioliveirass closed 1 year ago

gioliveirass commented 1 year ago

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

ThHenrique commented 1 year ago

Documentação

Descrição

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.

Tecnologias

NestJS, Prisma, PostgresSQL e Insomnia

Disable Partner

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

gioliveirass commented 1 year ago

@ThHenrique o CEP é obrigatório?

ThHenrique commented 1 year ago

O CEP é opcional