diff --git a/packages/server/src/tag/services/training-set.service.ts b/packages/server/src/tag/services/training-set.service.ts index ea576006..6601afc9 100644 --- a/packages/server/src/tag/services/training-set.service.ts +++ b/packages/server/src/tag/services/training-set.service.ts @@ -1,13 +1,21 @@ import { Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; +import { MongooseMiddlewareService } from 'src/shared/service/mongoose-callback.service'; import { Entry } from '../../entry/models/entry.model'; import { Study } from '../../study/study.model'; import { TrainingSet } from '../models/training-set'; @Injectable() export class TrainingSetService { - constructor(@InjectModel(TrainingSet.name) private readonly trainingSetModel: Model) {} + constructor( + @InjectModel(TrainingSet.name) private readonly trainingSetModel: Model, + middlewareService: MongooseMiddlewareService + ) { + middlewareService.register(Study.name, 'deleteOne', async (study: Study) => { + await this.removeForStudy(study); + }); + } async create(study: Study, entries: Entry[]): Promise { return this.trainingSetModel.create({ @@ -19,4 +27,8 @@ export class TrainingSetService { async findByStudy(study: Study): Promise { return this.trainingSetModel.findOne({ study: study._id }); } + + private async removeForStudy(study: Study): Promise { + await this.trainingSetModel.deleteOne({ study: study._id }); + } }