CreateJob.ts 772 B

1234567891011121314151617181920212223242526
  1. import DataModule from "../DataModule";
  2. import DataModuleJob from "./DataModuleJob";
  3. export default abstract class CreateJob extends DataModuleJob {
  4. protected override async _validate() {
  5. if (typeof this._payload !== "object" || this._payload === null)
  6. throw new Error("Payload must be an object");
  7. if (typeof this._payload.query !== "object")
  8. throw new Error("Query is not an object");
  9. if (Object.keys(this._payload.query).length === 0)
  10. throw new Error("Empty query object provided");
  11. }
  12. protected async _execute() {
  13. const { query } = this._payload;
  14. const model = await DataModule.getModel(this.getModelName());
  15. if (model.schema.path("createdBy"))
  16. query.createdBy = (await this._context.getUser())._id;
  17. return model.create(query);
  18. }
  19. }