From 8870b26ce63d6294567863c76d9dcfccd18e681d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 5 Dec 2020 12:24:38 +0100 Subject: [PATCH] Deletes now work based on EntityFromParam ref #14 --- src/controllers/UserController.ts | 12 +++++------- src/controllers/UserGroupController.ts | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/controllers/UserController.ts b/src/controllers/UserController.ts index dbc4d3a..01e743e 100644 --- a/src/controllers/UserController.ts +++ b/src/controllers/UserController.ts @@ -1,7 +1,7 @@ import { Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; -import { EntityFromBody } from 'typeorm-routing-controllers-extensions'; +import { EntityFromBody, EntityFromParam } from 'typeorm-routing-controllers-extensions'; import { UserGroupNotFoundError, UserIdsNotMatchingError, UserNotFoundError } from '../errors/UserErrors'; import { CreateUser } from '../models/creation/CreateUser'; import { User } from '../models/entities/User'; @@ -73,14 +73,12 @@ export class UserController { @ResponseSchema(User) @ResponseSchema(UserNotFoundError, { statusCode: 404 }) @OpenAPI({ description: 'Delete a specified runner (if it exists).' }) - async remove(@Param('id') id: number) { - let runner = await this.userRepository.findOne({ id: id }); - - if (!runner) { + async remove(@EntityFromParam('id') user: User) { + if (!user) { throw new UserNotFoundError(); } - await this.userRepository.delete(runner); - return runner; + await this.userRepository.delete(user); + return user; } } diff --git a/src/controllers/UserGroupController.ts b/src/controllers/UserGroupController.ts index fb158ed..c937f36 100644 --- a/src/controllers/UserGroupController.ts +++ b/src/controllers/UserGroupController.ts @@ -1,7 +1,7 @@ import { Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; -import { EntityFromBody } from 'typeorm-routing-controllers-extensions'; +import { EntityFromBody, EntityFromParam } from 'typeorm-routing-controllers-extensions'; import { UserGroupIdsNotMatchingError, UserGroupNotFoundError } from '../errors/UserGroupErrors'; import { CreateUserGroup } from '../models/creation/CreateUserGroup'; import { UserGroup } from '../models/entities/UserGroup'; @@ -73,14 +73,12 @@ export class UserGroupController { @ResponseSchema(UserGroup) @ResponseSchema(UserGroupNotFoundError, { statusCode: 404 }) @OpenAPI({ description: 'Delete a specified usergroup (if it exists).' }) - async remove(@Param('id') id: number) { - let userGroup = await this.userGroupsRepository.findOne({ id: id }); - - if (!userGroup) { + async remove(@EntityFromParam('id') group: UserGroup) { + if (!group) { throw new UserGroupNotFoundError(); } - await this.userGroupsRepository.delete(userGroup); - return userGroup; + await this.userGroupsRepository.delete(group); + return group; } }