1.1.9 • Published 1 year ago

nestjs-paginate-relations-filter-middleware v1.1.9

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Nestjs-Paginate-Relations-Filter-Middleware

An enhanced middleware for capturing unrelated filters for nestjs-paginate lib

npm version npm download by month

Description

Nestjs-Paginate-Relations-Filter-Middleware An enhanced middleware for capturing unrelated filters for nestjs-paginate lib.

Install

$ npm i nestjs-paginate-relations-filter-middleware

Why was this package developed?

First of all, this package was developed for nestjs-paginate lib. So don't forget to install nestjs-paginate before using this package

When sending relation via Swagger, it was supposed to come as relation[] but the server was giving 500 because it came as relation, we solved this problem with decals. The other problem is that if we try to filter about that package without sending a relation, we were getting 500 because the relation was not sent. This package was developed to solve the problems here.

Example;

Wrong Use: http://localhost:3000/patient-consent?filter.consentForm.id=86190245-1246-415b-a5e8-7c5813535f25

Correct Use: http://localhost:3000/patient-consent?relations=consentForm&filter.consentForm.id=86190245-1246-415b-a5e8-7c5813535f25

Error you will get with wrong usage without Nestjs-paginate-relations-filter-middleware

{
    "statusCode": 500,
    "error": "Internal Server Error"
}

Error you will get with wrong usage with Nestjs-paginate-relations-filter-middleware

{
    "statusCode": 400,
    "message": "You need to type the Relation of the Filter you type. Example; WrongLink: http://localhost:3000/patient-consent?filter.consentForm.id=86190245-1246-415b-a5e8-7c5813535f25&relations=patient, CorrectLink: http://localhost:3000/patient-consent?relations=consentForm&filter.consentForm.id=86190245-1246-415b-a5e8-7c5813535f25&relations=patient",
    "error": "Bad Request"
}

With this package, we are now preventing the server from pulling(500). Also you can safely send relation from swagger.

Quick Start

# For import
$ import { RelationFilterMiddleware,RelationDecorator } from 'nestjs-paginate-relations-filter-middleware';

Injecting MiddleWare

export class AppModule {
  configure(consumer: MiddlewareConsumer): void {
    consumer.apply(RelationFilterMiddleware).forRoutes({
      path: '*',
      method: RequestMethod.ALL,
    });
  }
}

How to Use In Controller

@Get()
@ApiQuery({ name: 'relations', required: false, type: [String], isArray: true }) // For Swagger
findAll(@Paginate() query: PaginateQuery, @RelationDecorator() relation: any) {
  return this.patientGdprService.findAll(query, relation);
}

More Options

* For Multi Relation Access

  http://localhost:3000/patient-consent?relations=consentForm,patient,surrogate

Send it separated by commas.

* For Multi Filter Access

  http://localhost:3000/patient-consent?relations=consentForm&filter.consentForm.id=86190245-1246-415b-a5e8-7c5813535f25&filter.consentForm.status=pending&filter.code=302

Send it separated by ampersand. You can find more details with nestjs-paginate lib.

Stay in touch

  • Author - Mustafa Kendigüzel

License

Nestjs-file-mimetype-filter MIT licensed.

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago