From cad30c7f6326d288173223e77df59f90696576da Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 17 Dec 2020 16:26:33 +0100 Subject: [PATCH] Fixed the dynamic class creation --- src/controllers/ImportController.ts | 21 ++++++++++++++------- src/models/actions/ImportSchoolRunner.ts | 3 ++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/controllers/ImportController.ts b/src/controllers/ImportController.ts index 843e9ba..746fbe8 100644 --- a/src/controllers/ImportController.ts +++ b/src/controllers/ImportController.ts @@ -1,25 +1,31 @@ -import { ContentType, Controller, Post, Req, UseBefore } from 'routing-controllers'; +import { Body, ContentType, Controller, Post, Req, UseBefore } from 'routing-controllers'; import { OpenAPI } from 'routing-controllers-openapi'; import RawBodyMiddleware from '../middlewares/RawBody'; +import { ImportSchoolRunner } from '../models/actions/ImportSchoolRunner'; +import { ResponseRunner } from '../models/responses/ResponseRunner'; +import { RunnerController } from './RunnerController'; @Controller() //@Authorized("IMPORT:read") export class ImportController { - // private runnerRepository: Repository; + private runnerController: RunnerController; /** * Gets the repository of this controller's model/entity. */ constructor() { - //this.runnerRepository = getConnectionManager().get().getRepository(Runner); + this.runnerController = new RunnerController(); } @Post('/runners/import') - @ContentType("application.json") + @ContentType("application/json") @OpenAPI({ description: "Create new runners from json" }) - postJSON(@Req() request: any) { - console.log(request.rawBody.toString()) - return request.rawBody.toString(); + async postJSON(@Body({ validate: true, type: ImportSchoolRunner }) importRunners: ImportSchoolRunner[]) { + let responseRunners: ResponseRunner[] = new Array(); + for await (let runner of importRunners) { + responseRunners.push(await this.runnerController.post(await runner.toCreateRunner(1))); + } + return responseRunners; } @Post('/runners/import/csv') @@ -27,6 +33,7 @@ export class ImportController { @UseBefore(RawBodyMiddleware) @OpenAPI({ description: "Create new runners from csv" }) postCSV(@Req() request: any) { + console.log(request.rawBody.toString()) throw new Error("Not implemented yet."); } } \ No newline at end of file diff --git a/src/models/actions/ImportSchoolRunner.ts b/src/models/actions/ImportSchoolRunner.ts index 59320b7..9964442 100644 --- a/src/models/actions/ImportSchoolRunner.ts +++ b/src/models/actions/ImportSchoolRunner.ts @@ -25,6 +25,7 @@ export class ImportSchoolRunner extends ImportRunner { newRunner.middlename = this.middlename; newRunner.lastname = this.lastname; newRunner.group = (await this.getGroup(orgID)).id; + console.log(newRunner.group) return newRunner; } @@ -44,7 +45,7 @@ export class ImportSchoolRunner extends ImportRunner { let newRunnerTeam: RunnerTeam = new RunnerTeam(); newRunnerTeam.name = this.class; newRunnerTeam.parentGroup = org; - team = await getConnectionManager().get().getRepository(RunnerTeam).create(newRunnerTeam); + team = await getConnectionManager().get().getRepository(RunnerTeam).save(newRunnerTeam); } return team;