Implemented cascading scan, track and card deletion

ref #78
This commit is contained in:
Nicolai Ort 2021-01-09 15:43:52 +01:00
parent 9013b9492c
commit 3d07aac944
5 changed files with 20 additions and 6 deletions

View File

@ -97,7 +97,7 @@ export class RunnerCardController {
}
const scanController = new ScanController;
for (let scan of cardScans) {
scanController.remove(scan.id, force);
await scanController.remove(scan.id, force);
}
await this.cardRepository.delete(card);

View File

@ -8,6 +8,8 @@ import { UpdateRunner } from '../models/actions/UpdateRunner';
import { Runner } from '../models/entities/Runner';
import { ResponseEmpty } from '../models/responses/ResponseEmpty';
import { ResponseRunner } from '../models/responses/ResponseRunner';
import { RunnerCardController } from './RunnerCardController';
import { ScanController } from './ScanController';
@JsonController('/runners')
@OpenAPI({ security: [{ "AuthToken": [] }, { "RefreshTokenCookie": [] }] })
@ -100,6 +102,18 @@ export class RunnerController {
throw new RunnerNotFoundError();
}
const runnerCards = (await this.runnerRepository.findOne({ id: runner.id }, { relations: ["cards"] })).cards;
const cardController = new RunnerCardController;
for (let scan of runnerCards) {
await cardController.remove(scan.id, force);
}
const runnerScans = (await this.runnerRepository.findOne({ id: runner.id }, { relations: ["scans"] })).scans;
const scanController = new ScanController;
for (let scan of runnerScans) {
await scanController.remove(scan.id, force);
}
await this.runnerRepository.delete(runner);
return new ResponseRunner(responseRunner);
}

View File

@ -98,7 +98,7 @@ export class ScanStationController {
}
const scanController = new ScanController;
for (let scan of stationScans) {
scanController.remove(scan.id, force);
await scanController.remove(scan.id, force);
}
const responseStation = await this.stationRepository.findOne({ id: station.id }, { relations: ["track"] });

View File

@ -94,9 +94,9 @@ export class TrackController {
if (trackStations.length != 0 && !force) {
throw new TrackHasScanStationsError();
}
const scanController = new ScanStationController;
const stationController = new ScanStationController;
for (let station of trackStations) {
scanController.remove(station.id, force);
await stationController.remove(station.id, force);
}
await this.trackRepository.delete(track);

View File

@ -88,9 +88,9 @@ export class UserGroupController {
if (!group) { return null; }
const responseGroup = await this.userGroupsRepository.findOne({ id: id }, { relations: ['permissions'] });
const permissionControler = new PermissionController();
const permissionController = new PermissionController();
for (let permission of responseGroup.permissions) {
await permissionControler.remove(permission.id, true);
await permissionController.remove(permission.id, true);
}
await this.userGroupsRepository.delete(group);