NestJS BaseService
An opinionated base service for NestJS
Built with :heartpulse: at Vizzuality.
Roadmap
License
(C) Copyright Vizzuality 2020-2021.
Distributed under the MIT license.
Usage
Filtering on listing GET requests
- Add the necessary decorator to your request parsing, on your controller method, like so:
import {
FetchSpecification,
ProcessFetchSpecification,
} from 'nestjs-base-service';
@Controller(`/api/v1/some-model`)
@ApiTags(someModelResource.className)
export class SomeModelController {
constructor(public readonly someModelsService: SomeModelsService) {}
@Get()
async findAll(
@ProcessFetchSpecification(['status'])
fetchSpecification: FetchSpecification,
): Promise<SomeModel> {
const results = await this.someModelsService.findAllPaginated(
fetchSpecification,
);
return this.someModelsService.serialize(results.data, results.metadata);
}
}
- Ensure your service class extends the included
BaseService
class. - On your controller decorator argument, optionally pass a whitelist of filtering parameters (recommended).