Enforce singleton design pattern for the logger
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPIncomingRequestService.ts
CommitLineData
c0560973
JB
1import ChargingStation from '../ChargingStation';
2import { IncomingRequestCommand } from '../../types/ocpp/Requests';
d1888640 3import { JsonType } from '../../types/JsonType';
bc464bb1 4import getLogger from '../../utils/Logger';
c0560973
JB
5
6export default abstract class OCPPIncomingRequestService {
7 protected chargingStation: ChargingStation;
8
9 constructor(chargingStation: ChargingStation) {
10 this.chargingStation = chargingStation;
11 }
12
d4bc21e0 13 protected handleIncomingRequestError<T>(commandName: IncomingRequestCommand, error: Error, errorOcppResponse?: T): T {
bc464bb1 14 getLogger().error(this.chargingStation.logPrefix() + ' Incoming request command %s error: %j', commandName, error);
6c5fc6c3
JB
15 if (errorOcppResponse) {
16 return errorOcppResponse;
e64c0923 17 }
47e22477
JB
18 throw error;
19 }
20
d1888640 21 public abstract handleRequest(messageId: string, commandName: IncomingRequestCommand, commandPayload: JsonType): Promise<void>;
c0560973 22}