From c84a4011549fc9507ec78c07eee0ec738f1adc4d Mon Sep 17 00:00:00 2001 From: jailton Date: Sat, 24 Jun 2023 04:29:07 +0000 Subject: [PATCH] =?UTF-8?q?Finalizando=20servi=C3=A7os=20de=20listagem=20c?= =?UTF-8?q?om=20filtro=20e=20delete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/netunovendas/cliente/delete.js | 21 +++++ .../services/netunovendas/cliente/list/get.js | 23 ------ .../netunovendas/cliente/list/post.js | 61 ++++++++++++++ server/services/netunovendas/cliente/post.js | 10 ++- .../netunovendas/encomenda/list/post.js | 79 +++++++++++++++++++ server/services/netunovendas/pais/list/get.js | 16 ++++ 6 files changed, 183 insertions(+), 27 deletions(-) create mode 100644 server/services/netunovendas/cliente/delete.js delete mode 100644 server/services/netunovendas/cliente/list/get.js create mode 100644 server/services/netunovendas/cliente/list/post.js create mode 100644 server/services/netunovendas/pais/list/get.js diff --git a/server/services/netunovendas/cliente/delete.js b/server/services/netunovendas/cliente/delete.js new file mode 100644 index 0000000..d75fe89 --- /dev/null +++ b/server/services/netunovendas/cliente/delete.js @@ -0,0 +1,21 @@ +const uid = _req.getString('uid',''); + +if (uid == '') { + _out.json( + _val.map() + .set("error",true) + .set("message", "UID is invalid!") + ) + _exec.stop(); +} + +_db.execute("DELETE FROM cliente WHERE uid = ?::UUID", + _val.init() + .add(_req.getUUID('uid')) +) + +_out.json( + _val.map() + .set("result", true) + .set("uid", uid) +) diff --git a/server/services/netunovendas/cliente/list/get.js b/server/services/netunovendas/cliente/list/get.js deleted file mode 100644 index 5ea6110..0000000 --- a/server/services/netunovendas/cliente/list/get.js +++ /dev/null @@ -1,23 +0,0 @@ -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/list/post.js b/server/services/netunovendas/cliente/list/post.js new file mode 100644 index 0000000..be6606c --- /dev/null +++ b/server/services/netunovendas/cliente/list/post.js @@ -0,0 +1,61 @@ +const pagination = _req.getValues('pagination'); +const filter = _req.getValues('filter'); + +const pageSize = 5; +const page = {start:0,size:pageSize}; + +if (pagination != null) { + page.size = pagination.getInt('pageSize', pageSize); + page.start = (pagination.getInt('current', 1) - 1 ) * page.size; +} +if (page.size > 100) { + page.size = 100; +} + +let queryWhere = ''; +const queryFilter = _val.list(); + +if (filter != null) { + if (filter.getString('nome') != null) { + queryWhere += ` AND cliente.nome LIKE ?`; + queryFilter.add(`%${ filter.getString('nome') }%`); + } +} + +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.uid = cliente.pais_uid + WHERE 1 = 1 + ${queryWhere} + ORDER BY cliente.id + LIMIT ${page.size} OFFSET ${page.start} +`,queryFilter); + +const clientes = _val.list(); + +for (const 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", + _val.map() + .set("nome",dbCliente.getString('pais_nome')) + ) + ) +}; + +_out.json( + _val.map() + .set("result", clientes) + .set("total", + _db.queryFirst(` + SELECT COUNT(1) AS total + FROM cliente + WHERE 1 = 1 + ${queryWhere}`,queryFilter).getInt('total') + ) +) diff --git a/server/services/netunovendas/cliente/post.js b/server/services/netunovendas/cliente/post.js index 48e732a..891a7c1 100644 --- a/server/services/netunovendas/cliente/post.js +++ b/server/services/netunovendas/cliente/post.js @@ -1,7 +1,7 @@ const nome = _req.getString("nome"); const email = _req.getString("email"); const telefone = _req.getString("telefone"); -const pais = _req.getString("pais"); +const pais = _req.getValues("pais",_val.map()); const emailExists = _db.queryFirst( `SELECT CASE WHEN COUNT(1) > 0 THEN TRUE ELSE FALSE END AS result FROM cliente WHERE email = ?::varchar`, @@ -19,6 +19,7 @@ if (emailExists.getBoolean("result")) { _exec.stop(); }; +/* const dbPais = _db.queryFirst(`SELECT id FROM pais WHERE uid = ?::uuid`,pais); if(dbPais == null){ @@ -30,13 +31,14 @@ if(dbPais == null){ ); _exec.stop(); } +*/ _db.execute(` INSERT INTO cliente - (nome, email, telefone, pais_id) + (nome, email, telefone, pais_uid) VALUES - (?::varchar, ?::varchar, ?::varchar, ?::int) -`,nome, email, telefone, dbPais.getInt("id")); + (?::varchar, ?::varchar, ?::varchar, ?::UUID) +`,nome, email, telefone, pais.getUUID('uid')) _header.status(201); _out.json( diff --git a/server/services/netunovendas/encomenda/list/post.js b/server/services/netunovendas/encomenda/list/post.js index e69de29..0df152b 100644 --- a/server/services/netunovendas/encomenda/list/post.js +++ b/server/services/netunovendas/encomenda/list/post.js @@ -0,0 +1,79 @@ +const pagination = _req.getValues('pagination',_val.map()); +const filter = _req.getValues('filter',_val.map()); + +const pageSize = 10; + +let page = { start: 0, size: pageSize } + +if (pagination != null) { + page.size = pagination.getInt('pageSize', pageSize); + page.start = (pagination.getInt('current', 1) - 1) * page.size; +} + +if (page.size > 100){ + page.page = 100; +} + + +const queryFilter = _val.list(); +let queryWhere = ''; + +if (filter != null) { + if (filter.getString('data_criacao') != '') { + queryWhere += ' AND encomenda.data_criacao = ?::date'; + queryFilter.add(`${ filter.getString('data_criacao') }`); + } + if (filter.getString('data_envio') != '') { + queryWhere += ' AND encomenda.data_envio = ?::date'; + queryFilter.add(`${ filter.getString('data_envio') }`); + } + if (filter.getInt('status') > 0) { + queryWhere += ' AND encomenda.status = ?::int'; + queryFilter.add(`${ filter.getInt('status') }`); + } +} + +const dbEncomendas = _db.query(` + SELECT + encomenda.uid, + encomenda.valor, + encomenda.data_criacao, + encomenda.data_envio, + status_encomenda.status as status_nome, + status_encomenda.id as status_id + FROM encomenda + INNER JOIN status_encomenda ON status_encomenda.id = encomenda.status + WHERE 1 = 1 + ${queryWhere} + LIMIT ${page.size} OFFSET ${page.start} +`, queryFilter); + +const encomendas = _val.list(); + +for (const encomenda of dbEncomendas) { + encomendas.add( + _val.map() + .set("uid", encomenda.getString('uid')) + .set("data_criacao", encomenda.getString('data_criacao')) + .set("data_envio", encomenda.getString('data_envio')) + .set("valor", encomenda.getFloat('valor').toFixed(2)) + .set("status", + _val.map() + .set('nome', encomenda.getString('status_nome')) + .set('id', encomenda.getInt('status_id')) + ) + ) +} + +_out.json( + _val.map() + .set("results", encomendas) + .set("total", + _db.queryFirst(` + SELECT COUNT(1) AS total + FROM encomenda + WHERE 1 = 1 + ${queryWhere} + `, queryFilter).getInt('total') + ) +); diff --git a/server/services/netunovendas/pais/list/get.js b/server/services/netunovendas/pais/list/get.js new file mode 100644 index 0000000..4d5a747 --- /dev/null +++ b/server/services/netunovendas/pais/list/get.js @@ -0,0 +1,16 @@ +const dbPaises = _db.query("SELECT pais.uid, pais.nome FROM pais"); + +const paises = _val.list(); + +for (const dbPais of dbPaises) { + paises.add( + _val.map() + .set("uid", dbPais.getString('uid')) + .set("nome", dbPais.getString('nome')) + ) +} + +_out.json( + _val.map() + .set("result", paises) +);