nestjs-base-service
v0.11.1
Published
An opinionated base service for NestJS apps
Downloads
260
Readme
NestJS BaseService
An opinionated base service for NestJS
Built with :heartpulse: at Vizzuality.
Roadmap
- [ ] Add tutorial
- [ ] Add tests
- [ ] Implement transaction support
- [ ] Implement opinionated batching
- [ ] Add support for validation (via plugin?)
- [ ] Add support for auditing (via plugin?)
- [ ] Add support for pagination
- [ ] Add support for serialization
- [ ] Add support for batching of operations
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).