X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Fui-server%2FAbstractUIServer.ts;h=e689441633b47e0c7a6b52cd4c90fb1de58221be;hb=9c6983d1f7acf05a0a4b69ddb233c8331063a79c;hp=f69b9b3419924cf47a79dc5aeb0a8e6f4e5cdc00;hpb=78202038ffd2aca15aa97f45bc66ba42f40f2ec4;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 f69b9b34..e6894416 100644 --- a/src/charging-station/ui-server/AbstractUIServer.ts +++ b/src/charging-station/ui-server/AbstractUIServer.ts @@ -1,20 +1,21 @@ -import { type IncomingMessage, Server, type ServerResponse } from 'http'; +import { type IncomingMessage, Server, type ServerResponse } from 'node:http'; import type { WebSocket } from 'ws'; -import type AbstractUIService from './ui-services/AbstractUIService'; -import UIServiceFactory from './ui-services/UIServiceFactory'; -import type { ChargingStationData } from '../../types/ChargingStationWorker'; -import type { UIServerConfiguration } from '../../types/ConfigurationData'; +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, -} from '../../types/UIProtocol'; + type UIServerConfiguration, +} from '../../types'; export abstract class AbstractUIServer { public readonly chargingStations: Map; @@ -45,6 +46,16 @@ export abstract class AbstractUIServer { this.chargingStations.clear(); } + public async sendInternalRequest(request: ProtocolRequest): Promise { + const protocolVersion = ProtocolVersion['0.0.1']; + this.registerProtocolVersionUIService(protocolVersion); + return this.uiServices.get(protocolVersion)?.requestHandler(request); + } + + public hasResponseHandler(id: string): boolean { + return this.responseHandlers.has(id); + } + protected startHttpServer(): void { if (this.httpServer.listening === false) { this.httpServer.listen(this.uiServerConfiguration.options); @@ -60,7 +71,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(); }