Strong type sendMessageHandler response with generics
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / Responses.ts
index d134f545de2e9118152f348fe634ae14c79af428..d7e6db554f68456e79aac01709f4366b6bbaeb64 100644 (file)
@@ -1,9 +1,79 @@
-import { OCPP16BootNotificationResponse, OCPP16RegistrationStatus } from './1.6/Responses';
+import {
+  OCPP16AvailabilityStatus,
+  OCPP16BootNotificationResponse,
+  OCPP16ChargingProfileStatus,
+  OCPP16ClearChargingProfileStatus,
+  OCPP16ConfigurationStatus,
+  OCPP16HeartbeatResponse,
+  OCPP16RegistrationStatus,
+  OCPP16StatusNotificationResponse,
+  OCPP16TriggerMessageStatus,
+  OCPP16UnlockStatus,
+} from './1.6/Responses';
+
+import { JsonType } from '../JsonType';
+import { OCPP16MeterValuesResponse } from './1.6/MeterValues';
+
+export type ResponseHandler = (
+  payload: JsonType | string,
+  requestPayload?: JsonType
+) => void | Promise<void>;
 
 export type BootNotificationResponse = OCPP16BootNotificationResponse;
 
+export type HeartbeatResponse = OCPP16HeartbeatResponse;
+
+export type StatusNotificationResponse = OCPP16StatusNotificationResponse;
+
+export type MeterValuesResponse = OCPP16MeterValuesResponse;
+
+export enum DefaultStatus {
+  ACCEPTED = 'Accepted',
+  REJECTED = 'Rejected',
+}
+
+export interface DefaultResponse {
+  status: DefaultStatus;
+}
+
 export type RegistrationStatus = OCPP16RegistrationStatus;
 
 export const RegistrationStatus = {
-  ...OCPP16RegistrationStatus
+  ...OCPP16RegistrationStatus,
+};
+
+export type AvailabilityStatus = OCPP16AvailabilityStatus;
+
+export const AvailabilityStatus = {
+  ...OCPP16AvailabilityStatus,
+};
+
+export type ChargingProfileStatus = OCPP16ChargingProfileStatus;
+
+export const ChargingProfileStatus = {
+  ...OCPP16ChargingProfileStatus,
+};
+
+export type ClearChargingProfileStatus = OCPP16ClearChargingProfileStatus;
+
+export const ClearChargingProfileStatus = {
+  ...OCPP16ClearChargingProfileStatus,
+};
+
+export type ConfigurationStatus = OCPP16ConfigurationStatus;
+
+export const ConfigurationStatus = {
+  ...OCPP16ConfigurationStatus,
+};
+
+export type UnlockStatus = OCPP16UnlockStatus;
+
+export const UnlockStatus = {
+  ...OCPP16UnlockStatus,
+};
+
+export type TriggerMessageStatus = OCPP16TriggerMessageStatus;
+
+export const TriggerMessageStatus = {
+  ...OCPP16TriggerMessageStatus,
 };