Skip to content

Commit

Permalink
Desenvolvendo issue #87
Browse files Browse the repository at this point in the history
Metódos para atualizar o usuário do tipo profissional
  • Loading branch information
SamuelSSan28 committed Jun 24, 2021
1 parent 7168cb1 commit 59dc843
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 1 deletion.
19 changes: 18 additions & 1 deletion backend/src/controllers/ProfessionalController.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Request, Response } from 'express'
import { ProfessionalService } from '../services/ProfessionalService';
import { UserService } from '../services/UserService';

class ProfessionalController {
Expand All @@ -13,10 +14,26 @@ class ProfessionalController {

return response.status(200).json({ message:"Profissional criado com sucesso!"});
} catch (error) {
return response.status(400).json({ error: 'Um erro inesperado ocorreu. Tente novamente!',error_dev:error.message });
return response.status(400).json({message:error.message });
}
}

async update(request: Request, response: Response){
try{
const {name,email,password,crm_crp,speciality,id,association_code} = request.body;

const professionalService = new ProfessionalService();

await professionalService.update({name,crm_crp,speciality,email,password,association_code,id})

return response.status(200).json({ message:"Profissional atualizado com sucesso!"});

}catch(error){
return response.status(400).json({ message:error.message });
}

}

}

export { ProfessionalController }
33 changes: 33 additions & 0 deletions backend/src/services/ProfessionalService.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { getRepository, Repository } from 'typeorm';
import { Professional } from "../entities/Professional";
import { UserService } from './UserService';

interface ProfessionalInterface{
name:string;
Expand All @@ -9,6 +10,16 @@ interface ProfessionalInterface{
user_id:string;
}

interface UpdateClientInterface{
name?:string;
crm_crp?:string;
speciality?:string;
association_code?:string;
email?:string;
password?:string;
id:string;
}

class ProfessionalService {
private professionalRepository: Repository<Professional>;

Expand All @@ -27,6 +38,28 @@ class ProfessionalService {
await this.professionalRepository.save(newProfessional);

}

async update({name,crm_crp,speciality,association_code,email,password,id}:UpdateClientInterface){

const professional = await this.professionalRepository.findOne({where:[{id}],relations:['user']})
const professional_new_values = {name,crm_crp,speciality,association_code}

if(professional){
await this.professionalRepository.save({
...professional
,...professional_new_values});

const userService = new UserService();

await userService.updateUser({
id:professional.user_id,
email,
password
})
}else
throw new Error(`Profissional não encontrado`)

}
}

export { ProfessionalService }

0 comments on commit 59dc843

Please sign in to comment.