Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ClientesApi {
- constructor () {
- this.api = new api('/api/pessoas');
- this.criterioAnterior = null
- }
- pesquisar (criterio = {}) {
- const query = this.api.query()
- if (equalObjects(criterio, this.criterioAnterior)) {
- return
- }
- if (isNull(this.criterioAnterior) || !equalObjects(criterio, this.criterioAnterior)) {
- this.criterioAnterior = Object.assign({}, criterio)
- }
- //Pesquisa por nome ou cpf
- if (isString(criterio.nome) && !isEmpty(criterio.nome)) {
- const cpf = somenteNumeros(criterio.nome)
- const campoPesquisa = isNull(cpf) ? 'nome' : 'cod_cpf_cgc'
- const valorPesquisa = isNull(cpf) ? criterio.nome : cpf
- query.like(campoPesquisa, valorPesquisa + "%")
- }
- if (criterio.titulos) {
- query.filter('PessoasByVencimentos', [criterio.titulos])
- }
- if (criterio.ativos) {
- query.filter('PessoasByConexao', [1])
- }
- if (criterio.bloqueados) {
- query.filter('PessoasByConexao', [0])
- }
- if (criterio.bloqueados && criterio.ativos) {
- query.removeFilter('PessoasByConexao')
- }
- if (isNumber(criterio.contas)) {
- query.filter('PessoasByConta', [criterio.contas])
- }
- if (isNumber(criterio.cidades)) {
- query.equal('ref_cidade', criterio.cidades)
- }
- if (isNumber(criterio.page)) {
- query.paginate(criterio.size || PER_PAGE, criterio.page)
- }
- return query.find()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement