| @ -0,0 +1,16 @@ | |||||
| const dbCategorias = _db.query(`SELECT uid, nome FROM categoria`); | |||||
| const categorias = _val.list(); | |||||
| for (const dbCategoria of dbCategorias) { | |||||
| categorias.add( | |||||
| _val.map() | |||||
| .set("uid", dbCategoria.getString("uid")) | |||||
| .set("nome", dbCategoria.getString("nome")) | |||||
| ) | |||||
| }; | |||||
| _out.json( | |||||
| _val.map() | |||||
| .set("result",categorias) | |||||
| ); | |||||
| @ -0,0 +1,21 @@ | |||||
| const nome = _req.getString("nome"); | |||||
| 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`, | |||||
| _val.init() | |||||
| .add(email) | |||||
| ); | |||||
| if (emailExists) { | |||||
| _header.status(400); | |||||
| _out.json( | |||||
| _val.map() | |||||
| .set("error",true) | |||||
| .set("message","email already exists!") | |||||
| ) | |||||
| }; | |||||
| @ -0,0 +1,52 @@ | |||||
| const pagination = _req.getValues("pagination",_val.map()); | |||||
| const filtro = _req.getValues("filtro",_val.map()); | |||||
| 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 | |||||
| } | |||||
| const queryFilter = _val.list() | |||||
| let queryWhere = ''; | |||||
| if(filtro != null) { | |||||
| if(filtro.getString("produto.nome") != '') { | |||||
| queryWhere += ' AND nome LIKE ?' | |||||
| queryFilter.add(`%${ filtro.getString('nome') }%`) | |||||
| } | |||||
| } | |||||
| const dbProdutos = _db.query(` | |||||
| SELECT | |||||
| produto.nome as produto_nome, | |||||
| produto.preco, | |||||
| produto.uid, | |||||
| categoria.nome as categoria_nome | |||||
| FROM produto | |||||
| INNER JOIN categoria ON categoria.id = produto.categoria_id | |||||
| WHERE 1 = 1 | |||||
| ${queryWhere} | |||||
| LIMIT ${page.size} OFFSET ${page.start} | |||||
| `,queryFilter); | |||||
| const resultados = _val.list(); | |||||
| for(const dbProduto of dbProdutos) { | |||||
| resultados.add( | |||||
| _val.map() | |||||
| .set("nome", dbProduto.getString("produto_nome")) | |||||
| .set("preco", dbProduto.getString("preco")) | |||||
| .set("uid",dbProduto.getString("uid")) | |||||
| .set("categoria", dbProduto.getString("categoria_nome")) | |||||
| ) | |||||
| } | |||||
| _out.json( | |||||
| _val.map() | |||||
| .set("results",resultados) | |||||
| .set("page",page) | |||||
| ) | |||||
| @ -0,0 +1,30 @@ | |||||
| const nome = _req.getString("nome"); | |||||
| const preco = _req.getFloat("preco"); | |||||
| const categoria = _req.getString("categoria"); | |||||
| const dbCategoria = _db.queryFirst(`SELECT id FROM categoria WHERE uid = ?::uuid`,categoria); | |||||
| if(dbCategoria == null){ | |||||
| _header.status(404); | |||||
| _out.json( | |||||
| _val.map() | |||||
| .set("error",true) | |||||
| .set("message","categoria não encontrada") | |||||
| ); | |||||
| _exec.stop(); | |||||
| } | |||||
| _db.execute(` | |||||
| INSERT INTO produto | |||||
| (nome, preco, categoria_id) | |||||
| VALUES | |||||
| (?::varchar, ?::float, ?::int) | |||||
| `,nome, preco, dbCategoria.getInt("id")) | |||||
| _header.status(201); | |||||
| _out.json( | |||||
| _val.map() | |||||
| .set("result",true) | |||||
| ) | |||||