X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16ResponseService.ts;h=dc68dd74beb7b2b342af9bd56c5ee0f6b5586bd3;hb=1c3cfd4f4074733491c8e9ceee59c044a0d0800b;hp=e3e87d4c59d31180e1b0e1a3cbda1c1482c17d68;hpb=b52c969dc8bfbd4bc2a2b6f1fc74e3868c4a091d;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts b/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts index e3e87d4c..dc68dd74 100644 --- a/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts +++ b/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts @@ -165,6 +165,7 @@ export default class OCPP16ResponseService extends OCPPResponseService { ) as JSONSchemaType, ], ]); + this.validatePayload.bind(this); } public async responseHandler( @@ -179,21 +180,10 @@ export default class OCPP16ResponseService extends OCPPResponseService { ChargingStationUtils.isRequestCommandSupported(commandName, chargingStation) ) { try { - if (this.jsonSchemas.has(commandName)) { - this.validateResponsePayload( - chargingStation, - commandName, - this.jsonSchemas.get(commandName), - payload - ); - } else { - logger.warn( - `${chargingStation.logPrefix()} ${moduleName}.responseHandler: No JSON schema found for command ${commandName} PDU validation` - ); - } + this.validatePayload(chargingStation, commandName, payload); await this.responseHandlers.get(commandName)(chargingStation, payload, requestPayload); } catch (error) { - logger.error(chargingStation.logPrefix() + ' Handle request response error: %j', error); + logger.error(chargingStation.logPrefix() + ' Handle request response error:', error); throw error; } } else { @@ -223,6 +213,25 @@ export default class OCPP16ResponseService extends OCPPResponseService { } } + private validatePayload( + chargingStation: ChargingStation, + commandName: OCPP16RequestCommand, + payload: JsonType + ): boolean { + if (this.jsonSchemas.has(commandName)) { + return this.validateResponsePayload( + chargingStation, + commandName, + this.jsonSchemas.get(commandName), + payload + ); + } + logger.warn( + `${chargingStation.logPrefix()} ${moduleName}.validatePayload: No JSON schema found for command ${commandName} PDU validation` + ); + return false; + } + private handleResponseBootNotification( chargingStation: ChargingStation, payload: OCPP16BootNotificationResponse