@@ -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