diff --git a/dbs/clinica.mv.db b/dbs/clinica.mv.db index f593b66..5fdf874 100644 Binary files a/dbs/clinica.mv.db and b/dbs/clinica.mv.db differ diff --git a/server/services/pacientes/post.in.json b/server/services/pacientes/post.in.json index 5709e89..f98f4c8 100644 --- a/server/services/pacientes/post.in.json +++ b/server/services/pacientes/post.in.json @@ -23,9 +23,24 @@ }, "telefone": { "type": "string" + }, + "convenios": { + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "nome", "cpf", "rg", "data_de_nascimento", "endereco", "telefone" - ] + "nome", "cpf", "rg", "data_de_nascimento", "endereco", "telefone", "convenios" + ], + "example": { + "nome": "José da Silva", + "cpf": "123-456-789-01", + "rg": "12.345.678", + "data_de_nascimento": "1970-03-20", + "endereco": "Rua das Flores, 123, Bairro Central, São Paulo, SP, 01000-000", + "telefone": "(31) 91234-5678", + "convenios": ["7ded552a-07cf-4f7b-bee4-6947944ec324"] + } } diff --git a/server/services/pacientes/post.js b/server/services/pacientes/post.js index 2230c9d..8e8c5c1 100644 --- a/server/services/pacientes/post.js +++ b/server/services/pacientes/post.js @@ -4,6 +4,7 @@ const cpf = _req.getString("cpf") const data_de_nascimento = _req.getString("data_de_nascimento") const endereco = _req.getString("endereco") const telefone = _req.getString("telefone") +const convenios = _req.getList("convenios"); const dbPaciente = _db.form('paciente') .where(_db.where('c_p_f').equal(cpf).or('r_g').equal(rg)) @@ -15,6 +16,18 @@ if (dbPaciente) { _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( 'paciente', _val.map() @@ -26,4 +39,21 @@ const insertedData = _db.insertIfNotExists( .set("telefone", telefone) ); +const paciente_id = _db.form('paciente') + .where(_db.where('c_p_f').equal(cpf)) + .first() + .get('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( + 'paciente_convenio', + { paciente_id, convenio_id } + ); +} + _out.json({insertedData})