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