X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2FUIProtocol.ts;h=f48119433d3f7508c783658cdbfe1db63987baff;hb=f26233c0fd267bc2ef00636ca7531a0877bb5dbe;hp=f7a4ac0c9fa286b2908bbec3ae8c38ab1aa48113;hpb=32de5a575189d226213641f5ee36004f8454cb50;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/UIProtocol.ts b/src/types/UIProtocol.ts index f7a4ac0c..f4811943 100644 --- a/src/types/UIProtocol.ts +++ b/src/types/UIProtocol.ts @@ -1,4 +1,5 @@ -import { JsonObject, JsonType } from './JsonType'; +import type { JsonObject } from './JsonType'; +import type { BroadcastChannelResponsePayload } from './WorkerBroadcastChannel'; export enum Protocol { UI = 'ui', @@ -9,16 +10,49 @@ export enum ApplicationProtocol { WS = 'ws', } +export enum AuthenticationType { + BASIC_AUTH = 'basic-auth', +} + export enum ProtocolVersion { '0.0.1' = '0.0.1', } +export type ProtocolRequest = [string, ProcedureName, RequestPayload]; +export type ProtocolResponse = [string, ResponsePayload]; + +export type ProtocolRequestHandler = ( + uuid?: string, + procedureName?: ProcedureName, + payload?: RequestPayload, +) => undefined | Promise | ResponsePayload | Promise; + export enum ProcedureName { + START_SIMULATOR = 'startSimulator', + STOP_SIMULATOR = 'stopSimulator', LIST_CHARGING_STATIONS = 'listChargingStations', + START_CHARGING_STATION = 'startChargingStation', + STOP_CHARGING_STATION = 'stopChargingStation', + OPEN_CONNECTION = 'openConnection', + CLOSE_CONNECTION = 'closeConnection', + START_AUTOMATIC_TRANSACTION_GENERATOR = 'startAutomaticTransactionGenerator', + STOP_AUTOMATIC_TRANSACTION_GENERATOR = 'stopAutomaticTransactionGenerator', + SET_SUPERVISION_URL = 'setSupervisionUrl', START_TRANSACTION = 'startTransaction', STOP_TRANSACTION = 'stopTransaction', - START_SIMULATOR = 'startSimulator', - STOP_SIMULATOR = 'stopSimulator', + AUTHORIZE = 'authorize', + BOOT_NOTIFICATION = 'bootNotification', + STATUS_NOTIFICATION = 'statusNotification', + HEARTBEAT = 'heartbeat', + METER_VALUES = 'meterValues', + DATA_TRANSFER = 'dataTransfer', + DIAGNOSTICS_STATUS_NOTIFICATION = 'diagnosticsStatusNotification', + FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification', +} + +export interface RequestPayload extends JsonObject { + hashIds?: string[]; + connectorIds?: number[]; } export enum ResponseStatus { @@ -28,11 +62,7 @@ export enum ResponseStatus { export interface ResponsePayload extends JsonObject { status: ResponseStatus; + hashIdsSucceeded?: string[]; + hashIdsFailed?: string[]; + responsesFailed?: BroadcastChannelResponsePayload[]; } - -export type ProtocolRequest = [string, ProcedureName, JsonType]; -export type ProtocolResponse = [string, ResponsePayload]; - -export type ProtocolRequestHandler = ( - payload: JsonType -) => void | Promise | ResponsePayload | Promise;