From 436569b1470c8e6187c63d974304bd1b99f35ba3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 5 Jun 2024 01:17:08 +0200 Subject: [PATCH] refactor: refine OCPP message sending error handling MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../ocpp/OCPPRequestService.ts | 37 ++++++++++++++----- src/utils/ErrorUtils.ts | 8 +++- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/charging-station/ocpp/OCPPRequestService.ts b/src/charging-station/ocpp/OCPPRequestService.ts index a3eca070..d396f354 100644 --- a/src/charging-station/ocpp/OCPPRequestService.ts +++ b/src/charging-station/ocpp/OCPPRequestService.ts @@ -28,7 +28,7 @@ import { } from '../../utils/index.js' import { OCPPConstants } from './OCPPConstants.js' import type { OCPPResponseService } from './OCPPResponseService.js' -import { OCPPServiceUtils } from './OCPPServiceUtils.js' +import { getMessageTypeString, OCPPServiceUtils } from './OCPPServiceUtils.js' type Ajv = _Ajv.default // eslint-disable-next-line @typescript-eslint/no-redeclare const Ajv = _Ajv.default @@ -94,9 +94,15 @@ export abstract class OCPPRequestService { commandName ) } catch (error) { - handleSendMessageError(chargingStation, commandName, error as Error, { - throwError: true - }) + handleSendMessageError( + chargingStation, + commandName, + MessageType.CALL_RESULT_MESSAGE, + error as Error, + { + throwError: true + } + ) return null } } @@ -117,7 +123,12 @@ export abstract class OCPPRequestService { commandName ) } catch (error) { - handleSendMessageError(chargingStation, commandName, error as Error) + handleSendMessageError( + chargingStation, + commandName, + MessageType.CALL_ERROR_MESSAGE, + error as Error + ) return null } } @@ -143,9 +154,15 @@ export abstract class OCPPRequestService { params ) } catch (error) { - handleSendMessageError(chargingStation, commandName, error as Error, { - throwError: params.throwError - }) + handleSendMessageError( + chargingStation, + commandName, + MessageType.CALL_MESSAGE, + error as Error, + { + throwError: params.throwError + } + ) return null } } @@ -291,7 +308,7 @@ export abstract class OCPPRequestService { ) } logger.error( - `${chargingStation.logPrefix()} Error occurred at ${OCPPServiceUtils.getMessageTypeString( + `${chargingStation.logPrefix()} Error occurred at ${getMessageTypeString( messageType )} command ${commandName} with PDU %j:`, messagePayload, @@ -358,7 +375,7 @@ export abstract class OCPPRequestService { clearTimeout(sendTimeout) if (error == null) { logger.debug( - `${chargingStation.logPrefix()} >> Command '${commandName}' sent ${OCPPServiceUtils.getMessageTypeString( + `${chargingStation.logPrefix()} >> Command '${commandName}' sent ${getMessageTypeString( messageType )} payload: ${messageToSend}` ) diff --git a/src/utils/ErrorUtils.ts b/src/utils/ErrorUtils.ts index 36a5f04c..f74c48e8 100644 --- a/src/utils/ErrorUtils.ts +++ b/src/utils/ErrorUtils.ts @@ -3,12 +3,14 @@ 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' @@ -79,6 +81,7 @@ export const handleFileException = ( export const handleSendMessageError = ( chargingStation: ChargingStation, commandName: RequestCommand | IncomingRequestCommand, + messageType: MessageType, error: Error, params: HandleErrorParams = { throwError: false, @@ -86,7 +89,10 @@ export const handleSendMessageError = ( } ): void => { setDefaultErrorParams(params, { throwError: false, consoleOut: false }) - logger.error(`${chargingStation.logPrefix()} Request command '${commandName}' error:`, error) + logger.error( + `${chargingStation.logPrefix()} Send ${getMessageTypeString(messageType)} command '${commandName}' error:`, + error + ) if (params.throwError === true) { throw error } -- 2.43.0