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});