1
0

DeleteByIdJob.ts 629 B

123456789101112131415161718192021
  1. import { isObjectIdOrHexString } from "mongoose";
  2. import DataModule from "../DataModule";
  3. import DataModuleJob from "./DataModuleJob";
  4. export default abstract class DeleteByIdJob extends DataModuleJob {
  5. protected override async _validate() {
  6. if (typeof this._payload !== "object" || this._payload === null)
  7. throw new Error("Payload must be an object");
  8. if (!isObjectIdOrHexString(this._payload._id))
  9. throw new Error("_id is not an ObjectId");
  10. }
  11. protected async _execute() {
  12. const { _id } = this._payload;
  13. const model = await DataModule.getModel(this.getModelName());
  14. return model.deleteOne({ _id });
  15. }
  16. }