Refine connector id validation error message
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / Requests.ts
index 7ce4979e84352c97c9d29c5b7120399f5486f503..9934f1671292158bb5d4f3d47d03f95f3e7c361a 100644 (file)
@@ -1,11 +1,76 @@
-import { IncomingRequestCommand } from './1.6/Requests';
-import { MessageType } from './MessageType';
-import OCPPError from '../../charging-station/OcppError';
+import type ChargingStation from '../../charging-station/ChargingStation';
+import type OCPPError from '../../exception/OCPPError';
+import type { JsonType } from '../JsonType';
+import { OCPP16DiagnosticsStatus } from './1.6/DiagnosticsStatus';
+import type { OCPP16MeterValuesRequest } from './1.6/MeterValues';
+import {
+  OCPP16AvailabilityType,
+  OCPP16BootNotificationRequest,
+  OCPP16HeartbeatRequest,
+  OCPP16IncomingRequestCommand,
+  OCPP16MessageTrigger,
+  OCPP16RequestCommand,
+  OCPP16StatusNotificationRequest,
+} from './1.6/Requests';
+import type { MessageType } from './MessageType';
 
-export default interface Requests {
-  [id: string]: Request;
-}
+export type RequestCommand = OCPP16RequestCommand;
 
-export type Request = [(payload?: Record<string, unknown>, requestPayload?: Record<string, unknown>) => void, (error?: OCPPError) => void, Record<string, unknown>];
+export const RequestCommand = {
+  ...OCPP16RequestCommand,
+};
 
-export type IncomingRequest = [MessageType, string, IncomingRequestCommand, Record<string, unknown> | string, Record<string, unknown>];
+export type OutgoingRequest = [MessageType.CALL_MESSAGE, string, RequestCommand, JsonType];
+
+export type RequestParams = {
+  skipBufferingOnError?: boolean;
+  triggerMessage?: boolean;
+};
+
+export type IncomingRequestCommand = OCPP16IncomingRequestCommand;
+
+export const IncomingRequestCommand = {
+  ...OCPP16IncomingRequestCommand,
+};
+
+export type IncomingRequest = [MessageType.CALL_MESSAGE, string, IncomingRequestCommand, JsonType];
+
+export type CachedRequest = [
+  (payload: JsonType, requestPayload: JsonType) => void,
+  (error: OCPPError, requestStatistic?: boolean) => void,
+  RequestCommand | IncomingRequestCommand,
+  JsonType
+];
+
+export type MessageTrigger = OCPP16MessageTrigger;
+
+export const MessageTrigger = {
+  ...OCPP16MessageTrigger,
+};
+
+export type BootNotificationRequest = OCPP16BootNotificationRequest;
+
+export type HeartbeatRequest = OCPP16HeartbeatRequest;
+
+export type StatusNotificationRequest = OCPP16StatusNotificationRequest;
+
+export type MeterValuesRequest = OCPP16MeterValuesRequest;
+
+export type IncomingRequestHandler = (
+  chargingStation: ChargingStation,
+  commandPayload: JsonType
+) => JsonType | Promise<JsonType>;
+
+export type AvailabilityType = OCPP16AvailabilityType;
+
+export const AvailabilityType = {
+  ...OCPP16AvailabilityType,
+};
+
+export type DiagnosticsStatus = OCPP16DiagnosticsStatus;
+
+export const DiagnosticsStatus = {
+  ...OCPP16DiagnosticsStatus,
+};
+
+export type ResponseType = JsonType | OCPPError;