X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2FUIProtocol.ts;h=00d939317c5e93fbacb20c01487b116da27bb9e6;hb=276e05aec38f4e8b4a8d5ebd8cbbcb30592b414d;hp=3a76bd0007302ec8a11540a6c317bd59fd3c4675;hpb=c6e110c2f44b18fc7badf29f934269e0b0421254;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/UIProtocol.ts b/src/types/UIProtocol.ts index 3a76bd00..00d93931 100644 --- a/src/types/UIProtocol.ts +++ b/src/types/UIProtocol.ts @@ -1,49 +1,88 @@ -import type { JsonObject } from './JsonType'; +import type { JsonObject } from './JsonType.js' +import type { BroadcastChannelResponsePayload } from './WorkerBroadcastChannel.js' export enum Protocol { - UI = 'ui', + UI = 'ui' } export enum ApplicationProtocol { HTTP = 'http', - WS = 'ws', + WS = 'ws' +} + +export enum AuthenticationType { + BASIC_AUTH = 'basic-auth', + PROTOCOL_BASIC_AUTH = 'protocol-basic-auth' } export enum ProtocolVersion { - '0.0.1' = '0.0.1', + '0.0.1' = '0.0.1' } -export type ProtocolRequest = [string, ProcedureName, RequestPayload]; -export type ProtocolResponse = [string, ResponsePayload]; +export type ProtocolRequest = [ + `${string}-${string}-${string}-${string}-${string}`, + ProcedureName, + RequestPayload +] +export type ProtocolResponse = [ + `${string}-${string}-${string}-${string}-${string}`, + ResponsePayload +] export type ProtocolRequestHandler = ( - uuid?: string, + uuid?: `${string}-${string}-${string}-${string}-${string}`, + procedureName?: ProcedureName, payload?: RequestPayload -) => undefined | Promise | ResponsePayload | Promise; +) => undefined | Promise | ResponsePayload | Promise export enum ProcedureName { + SIMULATOR_STATE = 'simulatorState', + START_SIMULATOR = 'startSimulator', + STOP_SIMULATOR = 'stopSimulator', + LIST_TEMPLATES = 'listTemplates', LIST_CHARGING_STATIONS = 'listChargingStations', + ADD_CHARGING_STATIONS = 'addChargingStations', + DELETE_CHARGING_STATIONS = 'deleteChargingStations', + PERFORMANCE_STATISTICS = 'performanceStatistics', START_CHARGING_STATION = 'startChargingStation', STOP_CHARGING_STATION = 'stopChargingStation', - START_TRANSACTION = 'startTransaction', - STOP_TRANSACTION = 'stopTransaction', - START_SIMULATOR = 'startSimulator', - STOP_SIMULATOR = 'stopSimulator', 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', + 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 { - hashId?: string; - hashIds?: string[]; + hashIds?: string[] + connectorIds?: number[] } export enum ResponseStatus { SUCCESS = 'success', - FAILURE = 'failure', + FAILURE = 'failure' } export interface ResponsePayload extends JsonObject { - status: ResponseStatus; - hashIds?: string[]; + status: ResponseStatus + hashIdsSucceeded?: string[] + hashIdsFailed?: string[] + responsesFailed?: BroadcastChannelResponsePayload[] +} + +export interface TemplateStatistics extends JsonObject { + configured: number + added: number + started: number + indexes: number[] }