refactor(simulator): factor out data transfer response
[e-mobility-charging-stations-simulator.git] / src / performance / storage / MongoDBStorage.ts
index d941d7c188ad920a036f804838056f26ae13b887..7dd505d3732f4a3316e4f40c1710d98ea7025afa 100644 (file)
@@ -1,11 +1,11 @@
-// Copyright Jerome Benoit. 2021. All Rights Reserved.
+// Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
 
 import { MongoClient } from 'mongodb';
 
-import Statistics from '../../types/Statistics';
-import { StorageType } from '../../types/Storage';
-import Constants from '../../utils/Constants';
 import { Storage } from './Storage';
+import { BaseError } from '../../exception';
+import { type Statistics, StorageType } from '../../types';
+import { Constants } from '../../utils';
 
 export class MongoDBStorage extends Storage {
   private readonly client: MongoClient | null;
@@ -24,7 +24,7 @@ export class MongoDBStorage extends Storage {
     try {
       this.checkDBConnection();
       await this.client
-        .db(this.dbName)
+        ?.db(this.dbName)
         .collection<Statistics>(Constants.PERFORMANCE_RECORDS_TABLE)
         .insertOne(performanceStatistics);
     } catch (error) {
@@ -56,14 +56,14 @@ 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`
       );
     }
     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`