From 6683fa1b4e19b77d4f62eeb863287eadfaa44441 Mon Sep 17 00:00:00 2001 From: Ronnie Friman <L4168@student.jamk.fi> Date: Sun, 21 Jul 2019 08:46:27 +0300 Subject: [PATCH] add createHistory helper function --- src/draw/draw.service.ts | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/draw/draw.service.ts b/src/draw/draw.service.ts index 5f7566c..e1c416c 100644 --- a/src/draw/draw.service.ts +++ b/src/draw/draw.service.ts @@ -30,13 +30,7 @@ export class DrawService { drawing.faction = gameperson.faction; const mapDrawing = await this.mapDrawingRepository.insert(drawing); // create a history entity and insert it - const history = await this.mapDrawHistoryRepository.create({ - data: data.data, - drawingIsActive: data.drawingIsActive, - mapdrawing: mapDrawing.identifiers[0]['mapDrawingId'], - timestamp: Date.now(), - }); - await this.mapDrawHistoryRepository.insert(history); + await this.createHistory(data, gameperson, mapDrawing); return mapDrawing.identifiers; } // get ref from db @@ -46,13 +40,7 @@ export class DrawService { }); if (await draw.ownershipCheck(gameperson.faction, gameperson.role)) { // else update the existing instance - const history = await this.mapDrawHistoryRepository.create({ - data: data.data, - drawingIsActive: data.drawingIsActive, - mapdrawing: data.mapDrawingId, - timestamp: Date.now(), - }); - await this.mapDrawHistoryRepository.insert(history); + await this.createHistory(data, gameperson); return await this.mapDrawingRepository.save(drawing); } @@ -62,6 +50,22 @@ export class DrawService { ); } + // used to create mapDrawing history entity entry + private async createHistory(data, gameperson, mapDrawing?) { + // create a history entity and insert it + const history = await this.mapDrawHistoryRepository.create({ + data: data.data, + drawingIsActive: data.drawingIsActive, + mapdrawing: + data.mapDrawingId || mapDrawing.identifiers[0]['mapDrawingId'], + timestamp: Date.now(), + }); + history.data['faction'] = gameperson.faction + ? gameperson.faction.factionName + : 'admin'; + await this.mapDrawHistoryRepository.insert(history); + } + // draw map based on game and gameperson faction async drawMap(gameperson, gameId) { // return all active drawings if admin -- GitLab