You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

76 lines
1.9 KiB

const nome = _req.getString("nome");
const crm = _req.getString("crm");
const especialidades = _req.getList("especialidades");
const convenios = _req.getList("convenios");
const dbMedico = _db.form('medico')
.where(_db.where('c_r_m').equal(crm))
.first();
if (dbMedico) {
_header.status(409);
_out.json({ insertedData: 0, error: "esse CRM já está cadastrado no sistema" });
_exec.stop();
}
for (const especialidade_uid of especialidades) {
const dbEspecialidade = _db.form('especialidade')
.where(_db.where('uid').equal(especialidade_uid))
.first();
if (!dbEspecialidade) {
_header.status(404);
_out.json({result: false, error: true, reason: 'especialidade-não-encontrada'});
_exec.stop();
}
}
for (const convenio_uid of convenios) {
const dbConvenio = _db.form('convenio')
.where(_db.where('uid').equal(convenio_uid))
.first();
if (!dbConvenio) {
_header.status(404);
_out.json({result: false, error: true, reason: 'convenio-não-encontrado'});
_exec.stop();
}
}
const insertedData = _db.insertIfNotExists(
'medico',
_val.map()
.set("nome", nome)
.set("c_r_m", crm)
)
const medico_id = _db.form('medico')
.where(_db.where('c_r_m').equal(crm))
.first()
.get('id');
for (const especialidade_uid of especialidades) {
const especialidade_id = _db.form('especialidade')
.where(_db.where('uid').equal(especialidade_uid))
.first()
.get('id');
_db.insertIfNotExists(
'medico_especialidade',
{ medico_id, especialidade_id }
);
}
for (const convenio_uid of convenios) {
const convenio_id = _db.form('convenio')
.where(_db.where('uid').equal(convenio_uid))
.first()
.get('id');
_db.insertIfNotExists(
'medico_convenio',
{ medico_id, convenio_id }
);
}
_out.json({insertedData});