- protected handleIncomingRequestError(commandName: IncomingRequestCommand, error: Error, ocppResponse?): unknown {
- logger.error(this.chargingStation.logPrefix() + ' Incoming request command ' + commandName + ' error: %j', error);
- if (ocppResponse) {
- return ocppResponse;
+ protected handleIncomingRequestError<T>(
+ chargingStation: ChargingStation,
+ commandName: IncomingRequestCommand,
+ error: Error,
+ params: HandleErrorParams<T> = { throwError: true }
+ ): T {
+ logger.error(
+ `${chargingStation.logPrefix()} ${moduleName}.handleIncomingRequestError: Incoming request command '${commandName}' error:`,
+ error
+ );
+ if (!params?.throwError && params?.errorResponse) {
+ return params?.errorResponse;
+ }
+ if (params?.throwError && !params?.errorResponse) {
+ throw error;
+ }
+ if (params?.throwError && params?.errorResponse) {
+ return params?.errorResponse;
+ }
+ }
+
+ protected validateIncomingRequestPayload<T extends JsonType>(
+ chargingStation: ChargingStation,
+ commandName: IncomingRequestCommand,
+ schema: JSONSchemaType<T>,
+ payload: T
+ ): boolean {
+ if (!chargingStation.getPayloadSchemaValidation()) {
+ return true;
+ }
+ const validate = this.ajv.compile(schema);
+ if (validate(payload)) {
+ return true;