X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futils%2FErrorUtils.ts;h=0a444c6b1f5d945e5577dd7fbebc6ec235df16e6;hb=b8e3363a179fcf79d8bb66f47724b377d4d38a75;hp=36a5f04ca944df16e9b37bb186e1deb54dd01c12;hpb=48847bc0d5e594c3e4c0b81c580ac6df48052668;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/ErrorUtils.ts b/src/utils/ErrorUtils.ts index 36a5f04c..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,23 +83,48 @@ export const handleFileException = ( export const handleSendMessageError = ( chargingStation: ChargingStation, commandName: RequestCommand | IncomingRequestCommand, + messageType: MessageType, error: Error, 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 } }