From e3da2b718c0f4198b974481a5c70f8a7cb28ca22 Mon Sep 17 00:00:00 2001 From: jailton Date: Sun, 18 Jun 2023 04:54:40 +0000 Subject: [PATCH] =?UTF-8?q?servi=C3=A7o=20de=20cadastro=20de=20encomenda?= =?UTF-8?q?=20e=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/netunovendas/cliente/list/get.js | 23 ++++++++++++ server/services/netunovendas/cliente/post.js | 32 +++++++++++++++-- .../netunovendas/encomenda/list/post.js | 0 .../services/netunovendas/encomenda/post.js | 35 +++++++++++++++++++ 4 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 server/services/netunovendas/cliente/list/get.js create mode 100644 server/services/netunovendas/encomenda/list/post.js create mode 100644 server/services/netunovendas/encomenda/post.js diff --git a/server/services/netunovendas/cliente/list/get.js b/server/services/netunovendas/cliente/list/get.js new file mode 100644 index 0000000..5ea6110 --- /dev/null +++ b/server/services/netunovendas/cliente/list/get.js @@ -0,0 +1,23 @@ +const dbClientes = _db.query(` + SELECT + cliente.nome AS cliente_nome, cliente.email, cliente.uid, pais.nome AS pais_nome + FROM cliente + INNER JOIN pais ON pais.id = cliente.pais_id +`); + +const clientes = _val.list(); + +for (dbCliente of dbClientes) { + clientes.add( + _val.map() + .set("nome", dbCliente.getString("cliente_nome")) + .set("email", dbCliente.getString("email")) + .set("uid", dbCliente.getString("uid")) + .set("pais", dbCliente.getString("pais_nome")) + ) +}; + +_out.json( + _val.map() + .set("results",clientes) +) diff --git a/server/services/netunovendas/cliente/post.js b/server/services/netunovendas/cliente/post.js index cf9f8e5..48e732a 100644 --- a/server/services/netunovendas/cliente/post.js +++ b/server/services/netunovendas/cliente/post.js @@ -3,19 +3,45 @@ const email = _req.getString("email"); const telefone = _req.getString("telefone"); const pais = _req.getString("pais"); -const emailExists = _db.query( - `SELECT CASE WHEN COUNT(1) > 0 THEN TRUE ELSE FALSE END FROM cliente WHERE email = ?::varchar`, +const emailExists = _db.queryFirst( + `SELECT CASE WHEN COUNT(1) > 0 THEN TRUE ELSE FALSE END AS result FROM cliente WHERE email = ?::varchar`, _val.init() .add(email) ); -if (emailExists) { +if (emailExists.getBoolean("result")) { _header.status(400); _out.json( _val.map() .set("error",true) .set("message","email already exists!") ) + _exec.stop(); }; +const dbPais = _db.queryFirst(`SELECT id FROM pais WHERE uid = ?::uuid`,pais); + +if(dbPais == null){ + _header.status(400); + _out.json( + _val.map() + .set("error", true) + .set("message","country not exists!") + ); + _exec.stop(); +} + +_db.execute(` + INSERT INTO cliente + (nome, email, telefone, pais_id) + VALUES + (?::varchar, ?::varchar, ?::varchar, ?::int) +`,nome, email, telefone, dbPais.getInt("id")); + +_header.status(201); +_out.json( + _val.map() + .set("result", true) +) + diff --git a/server/services/netunovendas/encomenda/list/post.js b/server/services/netunovendas/encomenda/list/post.js new file mode 100644 index 0000000..e69de29 diff --git a/server/services/netunovendas/encomenda/post.js b/server/services/netunovendas/encomenda/post.js new file mode 100644 index 0000000..77082cf --- /dev/null +++ b/server/services/netunovendas/encomenda/post.js @@ -0,0 +1,35 @@ +const cliente = _req.getString("cliente"); +const itens = _req.getList("itens",_val.list()); +const valor = _req.getFloat("valor",0.0); + +if(itens.length == 0) { + _header.status(400); + _out.json( + _val.map() + .set("error",true) + .set("message","items list are empty!") + ) + _exec.stop(); +} + +const id = _db.insert( + 'encomenda', + _val.map() + .set('cliente_uid', cliente) + .set("valor", valor) +) + +for(const item of itens) { + _db.insert( + 'encomenda_item', + _val.map() + .set("encomenda_id",id) + .set("produto_uid", item.getString("produto")) + .set("quantidade", item.getInt("quantidade")) + ) +} + +_out.json( + _val.map() + .set("result",true) +)