diff --git a/src/draw/draw.service.ts b/src/draw/draw.service.ts index 5f7566cda9d127173cbba11a8f2f92727a38f7dc..e1c416c70504f0d9b6df4814da79d1aed85a373f 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