Browse Source

Finalizando serviços de listagem com filtro e delete

master
jailton 3 years ago
parent
commit
c84a401154
6 changed files with 183 additions and 27 deletions
  1. +21
    -0
      server/services/netunovendas/cliente/delete.js
  2. +0
    -23
      server/services/netunovendas/cliente/list/get.js
  3. +61
    -0
      server/services/netunovendas/cliente/list/post.js
  4. +6
    -4
      server/services/netunovendas/cliente/post.js
  5. +79
    -0
      server/services/netunovendas/encomenda/list/post.js
  6. +16
    -0
      server/services/netunovendas/pais/list/get.js

+ 21
- 0
server/services/netunovendas/cliente/delete.js View File

@ -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)
)

+ 0
- 23
server/services/netunovendas/cliente/list/get.js View File

@ -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)
)

+ 61
- 0
server/services/netunovendas/cliente/list/post.js View File

@ -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')
)
)

+ 6
- 4
server/services/netunovendas/cliente/post.js View File

@ -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(


+ 79
- 0
server/services/netunovendas/encomenda/list/post.js View File

@ -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')
)
);

+ 16
- 0
server/services/netunovendas/pais/list/get.js View File

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

Loading…
Cancel
Save