X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FErrorUtils.ts;h=0a444c6b1f5d945e5577dd7fbebc6ec235df16e6;hb=2d4928a7237a906158f2e9652e08f0392eeabdcd;hp=9c243a299e769f67c4e70859aae110651a3444cd;hpb=16c46962f43a692c996b1c89a94dc572fea52d63;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/ErrorUtils.ts b/src/utils/ErrorUtils.ts index 9c243a29..0a444c6b 100644 --- a/src/utils/ErrorUtils.ts +++ b/src/utils/ErrorUtils.ts @@ -3,17 +3,21 @@ import process from 'node:process' import chalk from 'chalk' import type { ChargingStation } from '../charging-station/index.js' +import { getMessageTypeString } from '../charging-station/ocpp/OCPPServiceUtils.js' import type { EmptyObject, FileType, HandleErrorParams, IncomingRequestCommand, JsonType, + MessageType, RequestCommand } from '../types/index.js' import { logger } from './Logger.js' import { isNotEmptyString } from './Utils.js' +const moduleName = 'ErrorUtils' + const defaultErrorParams = { throwError: true, consoleOut: false @@ -38,7 +42,7 @@ export const handleFileException = ( logPrefix: string, params: HandleErrorParams = defaultErrorParams ): void => { - setDefaultErrorParams(params) + params = setDefaultErrorParams(params) const prefix = isNotEmptyString(logPrefix) ? `${logPrefix} ` : '' let logMsg: string switch (error.code) { @@ -79,20 +83,48 @@ export const handleFileException = ( export const handleSendMessageError = ( chargingStation: ChargingStation, commandName: RequestCommand | IncomingRequestCommand, + messageType: MessageType, error: Error, - params: HandleErrorParams = { throwError: false, consoleOut: false } + params: HandleErrorParams = { + throwError: false, + consoleOut: false + } ): void => { - setDefaultErrorParams(params, { throwError: false, consoleOut: false }) - logger.error(`${chargingStation.logPrefix()} Request command '${commandName}' error:`, error) + params = setDefaultErrorParams(params, { throwError: false, consoleOut: false }) + logger.error( + `${chargingStation.logPrefix()} ${moduleName}.handleSendMessageError: Send ${getMessageTypeString(messageType)} command '${commandName}' error:`, + error + ) if (params.throwError === true) { throw error } } +export const handleIncomingRequestError = ( + chargingStation: ChargingStation, + commandName: IncomingRequestCommand, + error: Error, + params: HandleErrorParams = { throwError: true, consoleOut: false } +): T | undefined => { + params = setDefaultErrorParams(params) + logger.error( + `${chargingStation.logPrefix()} ${moduleName}.handleIncomingRequestError: Incoming request command '${commandName}' error:`, + error + ) + if (params.throwError === false && params.errorResponse != null) { + return params.errorResponse + } + if (params.throwError === true && params.errorResponse == null) { + throw error + } + if (params.throwError === true && params.errorResponse != null) { + return params.errorResponse + } +} + export const setDefaultErrorParams = ( params: HandleErrorParams, defaultParams: HandleErrorParams = defaultErrorParams ): HandleErrorParams => { - params = { ...defaultParams, ...params } - return params + return { ...defaultParams, ...params } }