X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Fui-server%2FAbstractUIServer.ts;h=8552a572f4bf08ab3134da682f3c444f2aa54773;hb=fca8bc64968004b4018a4d766b2121ced4fee943;hp=f2429ae1746b739f3429963686ef3059bfd2f453;hpb=4c3c0d59f56be4d58e906e938c00390b41e0ca7f;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ui-server/AbstractUIServer.ts b/src/charging-station/ui-server/AbstractUIServer.ts index f2429ae1..8552a572 100644 --- a/src/charging-station/ui-server/AbstractUIServer.ts +++ b/src/charging-station/ui-server/AbstractUIServer.ts @@ -4,13 +4,14 @@ import type { WebSocket } from 'ws'; import type { AbstractUIService } from './ui-services/AbstractUIService'; import { UIServiceFactory } from './ui-services/UIServiceFactory'; +import { BaseError } from '../../exception'; import { AuthenticationType, type ChargingStationData, type ProcedureName, type ProtocolRequest, type ProtocolResponse, - type ProtocolVersion, + ProtocolVersion, type RequestPayload, type ResponsePayload, type UIServerConfiguration, @@ -45,6 +46,12 @@ export abstract class AbstractUIServer { this.chargingStations.clear(); } + public async sendRequestOnBroadcastChannel(request: ProtocolRequest): Promise { + const protocolVersion = ProtocolVersion['0.0.1']; + this.registerProtocolVersionUIService(protocolVersion); + return this.uiServices.get(protocolVersion)?.requestHandler(request); + } + protected startHttpServer(): void { if (this.httpServer.listening === false) { this.httpServer.listen(this.uiServerConfiguration.options); @@ -60,7 +67,7 @@ export abstract class AbstractUIServer { protected authenticate(req: IncomingMessage, next: (err?: Error) => void): void { if (this.isBasicAuthEnabled() === true) { if (this.isValidBasicAuth(req) === false) { - next(new Error('Unauthorized')); + next(new BaseError('Unauthorized')); } next(); }