Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

204
Visualizações
How do I do this in typescript/adonis?

I found an example on bitbucket of paginating the results of a query, but it was written in java script, and I'm having a little trouble declaring the types.

and getting this error on this line

const pagination:TPagination = usersResults.toJSON()

The type '{ meta: any; data: ModelObject[]; }' does not have the following properties of type

        ***sample code****
          async index ({ view, params, request, response }) {
            const page = params.page || 1
            const search = request.input('search') || ''
            const employees = await Employee.query()
                                            .where('name', 'LIKE', '%' + search + '%')
                                            .paginate(page, 10)
            const pagination = employees.toJSON()
            pagination.route = 'employees.pagination'
            if(pagination.lastPage < page && page != 1) {
              response.route(pagination.route, { page: 1 }, null, true)
            }
            else {
              pagination.offset = (pagination.page - 1) * pagination.perPage
              pagination.search = search
              return view.render('employees.index', { employees: pagination })
            }
          }

        }
         ***my code***
        public async searchByName ({request,params, response}: HttpContextContract) {   
                interface TPagination {
                    route: string;
                    lastPage: number;
                    offset:number;
                    search:string;
                    page:number;
                    perPage:number;
                    [key: string]: any;
                    meta: any;
                    data: ModelObject[];

                           
                } 
                try {
                    const page = params.page || 1
                    const search = request.input('search') || ''
                    const usersResults = await User.query()
                                                    .where('name', 'LIKE', '%' + search + '%')
                                                    .orWhere('cns','LIKE','%'+   search +'%')
                                                    .paginate(page, 10)
                    const pagination:TPagination = usersResults.toJSON()
                    pagination.route = 'pagination.users'
                    if(pagination.lastPage < page && page != 1) {
                        response.redirect().toRoute(pagination.route, { page: 1 })
                    }
                    else {
                      pagination.offset = (pagination.page - 1) * pagination.perPage
                      pagination.search = search
                    }

                } catch {
                    return response.status(400).json('{"error":"Usuário não encontrado!"}');
                }
            
            }   
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda