X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2FOCPPServiceUtils.ts;h=96b34218bae93f78a595545a29b2969fc91000fc;hb=91a4f151f35933f762d1287754a7463e12989b29;hp=c9bfdd564cfa33cfe275cb386fe863ee0a1e4c12;hpb=d5bd1c008c3b2fbe6426ae12e1e12afe97807c57;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index c9bfdd56..96b34218 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -1,8 +1,28 @@ +import type { DefinedError, ErrorObject } from 'ajv'; + +import { ErrorType } from '../../types/ocpp/ErrorType'; + export class OCPPServiceUtils { protected constructor() { // This is intentional } + public static ajvErrorsToErrorType(errors: ErrorObject[]): ErrorType { + for (const error of errors as DefinedError[]) { + switch (error.keyword) { + case 'type': + return ErrorType.TYPE_CONSTRAINT_VIOLATION; + case 'dependencies': + case 'required': + return ErrorType.OCCURRENCE_CONSTRAINT_VIOLATION; + case 'pattern': + case 'format': + return ErrorType.PROPERTY_CONSTRAINT_VIOLATION; + } + } + return ErrorType.FORMAT_VIOLATION; + } + protected static getLimitFromSampledValueTemplateCustomValue( value: string, limit: number,