Code Monkey home page Code Monkey logo

Comments (2)

ppetzold avatar ppetzold commented on September 15, 2024 1

Hi there :)

You can probably achieve this right now by using the query builder. Something like this should work:

const queryBuilder = this.usersRepository
    .createQueryBuilder('user')
    .leftJoinAndSelect('user.profile', 'profile')
    .where('profile.name LIKE :name', { name: `%${query.search}%` })

paginate(query, queryBuilder, {
    sortableColumns: ['id', 'username'],
    searchableColumns: ['username'],
    defaultSortBy: [
        ['id', 'DESC'],
        ['username', 'ASC'],
    ],
})

Otherwise you may want to tackle #81 - happy to accept proposal / pr :)

from nestjs-paginate.

jeongbin-park avatar jeongbin-park commented on September 15, 2024 1

Thank you for your quick and sincere answer :)

I posted a question yesterday and thought about it. It's a similar idea!

The code that I wrote is as follows.

relation: capaTest -- 1 : N --- capaTestType

situation: I want to filter the evaluation questions with tags.

query: {{HOST_URL}}/api/contents/capa-tests?filter.capaTestType=TAG-A,TAG-B

image

const builder = await this.createQueryBuilder('capaTest')
      .leftJoinAndSelect('capaTest.capaTestType', 'capaTestType')
      .select([
        'capaTest.capaTestId',
        'capaTest.question',
        'capaTest.createdAt',
        'capaTest.updatedAt',
        'capaTestType.capaTestTypeId',
        'capaTestType.name',
      ]);

if (query.filter?.capaTestType) {
      const names = query.filter?.capaTestType as string;
      builder.where('capaTestType.name IN (:nameList)', { nameList: names.split(',') });
}

However, when I set PageNateOption as follows, an error occurred.

const result = await paginate(query, builder, {
      sortableColumns: ['updatedAt'],
      searchableColumns: ['question'],
      defaultSortBy: [['createdAt', 'DESC']],
 });

image

So this time, I added the settings as follows.

const result = await paginate(query, builder, {
      filterableColumns: {},
      sortableColumns: ['updatedAt'],
      searchableColumns: ['question'],
      defaultSortBy: [['createdAt', 'DESC']],
 });

As a result, the following query was actually executed and the desired action was performed.

image

I don't know if this is the right way, but I'm happy to get the results I wanted.

Thanks to you, I can easily implement Pagination, content search, and tag filter functions.

I am so grateful for your talent donation.

from nestjs-paginate.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.