X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FMongoDBStorage.ts;h=568f70953edc4a2a6db290dae0e51a1634e7cb68;hb=6501eda9e69fff639911308b3f2de26593ae18c9;hp=54fc43349b2f3cbe8dbabc36ec3cd53dbc692936;hpb=78202038ffd2aca15aa97f45bc66ba42f40f2ec4;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/MongoDBStorage.ts b/src/performance/storage/MongoDBStorage.ts index 54fc4334..568f7095 100644 --- a/src/performance/storage/MongoDBStorage.ts +++ b/src/performance/storage/MongoDBStorage.ts @@ -3,12 +3,12 @@ import { MongoClient } from 'mongodb'; import { Storage } from './Storage'; -import type { Statistics } from '../../types/Statistics'; -import { StorageType } from '../../types/Storage'; -import Constants from '../../utils/Constants'; +import { BaseError } from '../../exception'; +import { type Statistics, StorageType } from '../../types'; +import { Constants } from '../../utils'; export class MongoDBStorage extends Storage { - private readonly client: MongoClient | null; + private readonly client?: MongoClient; private connected: boolean; constructor(storageUri: string, logPrefix: string) { @@ -24,9 +24,9 @@ export class MongoDBStorage extends Storage { try { this.checkDBConnection(); await this.client - .db(this.dbName) + ?.db(this.dbName) .collection(Constants.PERFORMANCE_RECORDS_TABLE) - .insertOne(performanceStatistics); + .replaceOne({ id: performanceStatistics.id }, performanceStatistics, { upsert: true }); } catch (error) { this.handleDBError(StorageType.MONGO_DB, error as Error, Constants.PERFORMANCE_RECORDS_TABLE); } @@ -56,17 +56,17 @@ export class MongoDBStorage extends Storage { private checkDBConnection() { if (!this?.client) { - throw new Error( + throw new BaseError( `${this.logPrefix} ${this.getDBNameFromStorageType( - StorageType.MONGO_DB - )} client initialization failed while trying to issue a request` + StorageType.MONGO_DB, + )} client initialization failed while trying to issue a request`, ); } if (!this.connected) { - throw new Error( + throw new BaseError( `${this.logPrefix} ${this.getDBNameFromStorageType( - StorageType.MONGO_DB - )} connection not opened while trying to issue a request` + StorageType.MONGO_DB, + )} connection not opened while trying to issue a request`, ); } }