@@ -1,3 +1,4 @@
|
||||
import csv from 'csvtojson';
|
||||
import { Body, ContentType, Controller, Param, Post, QueryParam, Req, UseBefore } from 'routing-controllers';
|
||||
import { OpenAPI } from 'routing-controllers-openapi';
|
||||
import { RunnerGroupNeededError } from '../errors/RunnerErrors';
|
||||
@@ -44,12 +45,35 @@ export class ImportController {
|
||||
return await this.postJSON(importRunners, id)
|
||||
}
|
||||
|
||||
@Post('/runners/import/csv')
|
||||
@ContentType("text/csv")
|
||||
@Post('/import/csv')
|
||||
@UseBefore(RawBodyMiddleware)
|
||||
@OpenAPI({ description: "Create new runners from csv" })
|
||||
postCSV(@Req() request: any) {
|
||||
console.log(request.rawBody.toString())
|
||||
throw new Error("Not implemented yet.");
|
||||
async postCSV(@Req() request: any, @QueryParam("group") groupID: number) {
|
||||
let csvParse = await csv({ delimiter: [",", ";"], trim: true }).fromString(request.rawBody.toString());
|
||||
let importRunners: ImportRunner[] = new Array<ImportRunner>();
|
||||
for await (let runner of csvParse) {
|
||||
let newImportRunner = new ImportRunner();
|
||||
newImportRunner.firstname = runner.firstname;
|
||||
newImportRunner.middlename = runner.middlename;
|
||||
newImportRunner.lastname = runner.lastname;
|
||||
if (runner.class === undefined) { newImportRunner.team = runner.team; }
|
||||
else { newImportRunner.class = runner.class; }
|
||||
importRunners.push(newImportRunner);
|
||||
}
|
||||
return await this.postJSON(importRunners, groupID);
|
||||
}
|
||||
|
||||
@Post('/organisations/:id/import/csv')
|
||||
@UseBefore(RawBodyMiddleware)
|
||||
@OpenAPI({ description: "Create new runners from csv" })
|
||||
async postOrgsCSV(@Req() request: any, @Param("id") id: number) {
|
||||
return await this.postCSV(request, id);
|
||||
}
|
||||
|
||||
@Post('/teams/:id/import/csv')
|
||||
@UseBefore(RawBodyMiddleware)
|
||||
@OpenAPI({ description: "Create new runners from csv" })
|
||||
async postTeamsCSV(@Req() request: any, @Param("id") id: number) {
|
||||
return await this.postCSV(request, id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user