X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=ui%2Fweb%2Fsrc%2Fcomposables%2FUIClient.ts;h=d056f6314e68fc71011ef1e5e2d66704f393c9b1;hb=cfab8dc9ea7801746461d4e8d6ac9852deb678b5;hp=10f2d3dea0b42ad2fe08fe549b7f1fb475802d41;hpb=68220b423c52da387fdf41967dd8c738da0ff52e;p=e-mobility-charging-stations-simulator.git diff --git a/ui/web/src/composables/UIClient.ts b/ui/web/src/composables/UIClient.ts index 10f2d3de..d056f631 100644 --- a/ui/web/src/composables/UIClient.ts +++ b/ui/web/src/composables/UIClient.ts @@ -3,9 +3,9 @@ import { type ProtocolResponse, type RequestPayload, type ResponsePayload, - ResponseStatus, + ResponseStatus } from '@/types' -import config from '@/assets/config' +import configuration from '@/assets/config' type ResponseHandler = { procedureName: ProcedureName @@ -57,13 +57,13 @@ export class UIClient { public async openConnection(hashId: string): Promise { return this.sendRequest(ProcedureName.OPEN_CONNECTION, { - hashIds: [hashId], + hashIds: [hashId] }) } public async closeConnection(hashId: string): Promise { return this.sendRequest(ProcedureName.CLOSE_CONNECTION, { - hashIds: [hashId], + hashIds: [hashId] }) } @@ -75,7 +75,7 @@ export class UIClient { return this.sendRequest(ProcedureName.START_TRANSACTION, { hashIds: [hashId], connectorId, - idTag, + idTag }) } @@ -85,7 +85,7 @@ export class UIClient { ): Promise { return this.sendRequest(ProcedureName.STOP_TRANSACTION, { hashIds: [hashId], - transactionId, + transactionId }) } @@ -95,7 +95,7 @@ export class UIClient { ): Promise { return this.sendRequest(ProcedureName.START_AUTOMATIC_TRANSACTION_GENERATOR, { hashIds: [hashId], - connectorIds: [connectorId], + connectorIds: [connectorId] }) } @@ -105,44 +105,27 @@ export class UIClient { ): Promise { return this.sendRequest(ProcedureName.STOP_AUTOMATIC_TRANSACTION_GENERATOR, { hashIds: [hashId], - connectorIds: [connectorId], + connectorIds: [connectorId] }) } private openWS(): void { this.ws = new WebSocket( - `ws://${config.uiServer.host}:${config.uiServer.port}`, - config.uiServer.protocol + `ws://${configuration.uiServer.host}:${configuration.uiServer.port}`, + configuration.uiServer.protocol ) this.ws.onmessage = this.responseHandler.bind(this) - this.ws.onerror = (errorEvent) => { + this.ws.onerror = errorEvent => { console.error('WebSocket error: ', errorEvent) } - this.ws.onclose = (closeEvent) => { + this.ws.onclose = closeEvent => { console.info('WebSocket closed: ', closeEvent) } } - private setResponseHandler( - id: string, - procedureName: ProcedureName, - resolve: (value: ResponsePayload | PromiseLike) => void, - reject: (reason?: unknown) => void - ): void { - this.responseHandlers.set(id, { procedureName, resolve, reject }) - } - - private getResponseHandler(id: string): ResponseHandler | undefined { - return this.responseHandlers.get(id) - } - - private deleteResponseHandler(id: string): boolean { - return this.responseHandlers.delete(id) - } - private async sendRequest( - command: ProcedureName, - data: RequestPayload + procedureName: ProcedureName, + payload: RequestPayload ): Promise { return new Promise((resolve, reject) => { if (this.ws.readyState !== WebSocket.OPEN) { @@ -150,22 +133,22 @@ export class UIClient { } if (this.ws.readyState === WebSocket.OPEN) { const uuid = crypto.randomUUID() - const msg = JSON.stringify([uuid, command, data]) + const msg = JSON.stringify([uuid, procedureName, payload]) const sendTimeout = setTimeout(() => { - this.deleteResponseHandler(uuid) - return reject(new Error(`Send request '${command}' message timeout`)) + this.responseHandlers.delete(uuid) + return reject(new Error(`Send request '${procedureName}' message timeout`)) }, 60 * 1000) try { this.ws.send(msg) - this.setResponseHandler(uuid, command, resolve, reject) + this.responseHandlers.set(uuid, { procedureName, resolve, reject }) } catch (error) { - this.deleteResponseHandler(uuid) + this.responseHandlers.delete(uuid) reject(error) } finally { clearTimeout(sendTimeout) } } else { - throw new Error(`Send request '${command}' message: connection not opened`) + throw new Error(`Send request '${procedureName}' message: connection not opened`) } }) } @@ -180,7 +163,7 @@ export class UIClient { const [uuid, responsePayload] = response if (this.responseHandlers.has(uuid) === true) { - const { procedureName, resolve, reject } = this.getResponseHandler(uuid)! + const { procedureName, resolve, reject } = this.responseHandlers.get(uuid)! switch (responsePayload.status) { case ResponseStatus.SUCCESS: resolve(responsePayload) @@ -193,7 +176,7 @@ export class UIClient { `Response status for procedure '${procedureName}' not supported: '${responsePayload.status}'` ) } - this.deleteResponseHandler(uuid) + this.responseHandlers.delete(uuid) } else { throw new Error(`Not a response to a request: ${JSON.stringify(response, undefined, 2)}`) }