From 179c2a5157fca036acf8d0e6a51821d377860bc1 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 19 Jan 2021 19:04:46 +0100 Subject: [PATCH] Fixed contact cascading ref #104 --- src/controllers/GroupContactController.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/controllers/GroupContactController.ts b/src/controllers/GroupContactController.ts index 12518c2..3d6f83e 100644 --- a/src/controllers/GroupContactController.ts +++ b/src/controllers/GroupContactController.ts @@ -1,11 +1,12 @@ import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; -import { getConnectionManager, Repository } from 'typeorm'; +import { getConnection, getConnectionManager, Repository } from 'typeorm'; import { GroupContactIdsNotMatchingError, GroupContactNotFoundError } from '../errors/GroupContactErrors'; import { RunnerGroupNotFoundError } from '../errors/RunnerGroupErrors'; import { CreateGroupContact } from '../models/actions/create/CreateGroupContact'; import { UpdateGroupContact } from '../models/actions/update/UpdateGroupContact'; import { GroupContact } from '../models/entities/GroupContact'; +import { RunnerGroup } from '../models/entities/RunnerGroup'; import { ResponseEmpty } from '../models/responses/ResponseEmpty'; import { ResponseGroupContact } from '../models/responses/ResponseGroupContact'; @@ -95,6 +96,10 @@ export class GroupContactController { let contact = await this.contactRepository.findOne({ id: id }); if (!contact) { return null; } const responseContact = await this.contactRepository.findOne(contact, { relations: ['groups'] }); + for (let group of responseContact.groups) { + group.contact = null; + await getConnection().getRepository(RunnerGroup).save(group); + } await this.contactRepository.delete(contact); return responseContact.toResponse();