1
0

FindManyByIdJob.ts 605 B

1234567891011121314151617181920212223242526272829
  1. import Joi from "joi";
  2. import DataModule from "../DataModule";
  3. import DataModuleJob from "./DataModuleJob";
  4. export default abstract class FindManyByIdJob extends DataModuleJob {
  5. protected static _isBulk = true;
  6. protected static _payloadSchema = Joi.object({
  7. _ids: Joi.array()
  8. .items(
  9. Joi.string()
  10. .pattern(/^[0-9a-fA-F]{24}$/)
  11. .required()
  12. )
  13. .min(1)
  14. .required()
  15. });
  16. protected async _execute() {
  17. const model = await DataModule.getModel(this.getModelName());
  18. const { _ids } = this._payload;
  19. const query = model.find({
  20. _id: _ids
  21. });
  22. return query.exec();
  23. }
  24. }