Add initial code structure for update firmware simulation
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / UIHttpServer.ts
index 822244f96081305ef939ae7f107d67f9c840c1a4..223c5bbbff1664dc111b0e62508436c726168673 100644 (file)
@@ -16,7 +16,7 @@ import {
 import logger from '../../utils/Logger';
 import Utils from '../../utils/Utils';
 import { AbstractUIServer } from './AbstractUIServer';
-import { UIServiceUtils } from './ui-services/UIServiceUtils';
+import { UIServerUtils } from './UIServerUtils';
 
 const moduleName = 'UIHttpServer';
 
@@ -27,9 +27,7 @@ export default class UIHttpServer extends AbstractUIServer {
 
   public start(): void {
     this.httpServer.on('request', this.requestListener.bind(this) as RequestListener);
-    if (this.httpServer.listening === false) {
-      this.httpServer.listen(this.uiServerConfiguration.options);
-    }
+    this.startHttpServer();
   }
 
   // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -47,7 +45,6 @@ export default class UIHttpServer extends AbstractUIServer {
             'Content-Type': 'application/json',
           })
           .end(JSON.stringify(payload));
-        this.responseHandlers.delete(uuid);
       } else {
         logger.error(
           `${this.logPrefix(moduleName, 'sendResponse')} Response for unknown request id: ${uuid}`
@@ -58,6 +55,8 @@ export default class UIHttpServer extends AbstractUIServer {
         `${this.logPrefix(moduleName, 'sendResponse')} Error at sending response id '${uuid}':`,
         error
       );
+    } finally {
+      this.responseHandlers.delete(uuid);
     }
   }
 
@@ -90,8 +89,9 @@ export default class UIHttpServer extends AbstractUIServer {
     const uuid = Utils.generateUUID();
     this.responseHandlers.set(uuid, res);
     try {
-      if (UIServiceUtils.isProtocolAndVersionSupported(protocol, version) === false) {
-        throw new BaseError(`Unsupported UI protocol version: '/${protocol}/${version}'`);
+      const fullProtocol = `${protocol}${version}`;
+      if (UIServerUtils.isProtocolAndVersionSupported(fullProtocol) === false) {
+        throw new BaseError(`Unsupported UI protocol version: '${fullProtocol}'`);
       }
       this.registerProtocolVersionUIService(version);
       req.on('error', (error) => {