fix: fix gap in schedule periods in composeChargingSchedules()
[e-mobility-charging-stations-simulator.git] / src / performance / storage / MongoDBStorage.ts
index cefab6f39a4b1cadb4f5681e51218adc592b81a6..3e1abd2bb59da44ae1ddff32ac4e1a0b3d297278 100644 (file)
@@ -1,10 +1,11 @@
-// Copyright Jerome Benoit. 2021. All Rights Reserved.
+// Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
 
-import Constants from '../../utils/Constants';
 import { MongoClient } from 'mongodb';
-import Statistics from '../../types/Statistics';
+
 import { Storage } from './Storage';
-import { StorageType } from '../../types/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;
@@ -23,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) {
@@ -55,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`,
       );
     }
   }