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