X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2FUIProtocol.ts;h=265f376028f83692acb4be9e32497fb93efa7995;hb=55ae7b758f478a2beb4557bbc96363fb913dcc73;hp=6d2478924285e3b97dfa67c1de04b28c0272bee5;hpb=e7aeea18e189dd087c8f951cf77a253e2818ae90;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/UIProtocol.ts b/src/types/UIProtocol.ts index 6d247892..265f3760 100644 --- a/src/types/UIProtocol.ts +++ b/src/types/UIProtocol.ts @@ -1,22 +1,70 @@ -import { JsonType } 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' +} + +export enum AuthenticationType { + BASIC_AUTH = 'basic-auth' } export enum ProtocolVersion { - '0.0.1' = '0.0.1', + '0.0.1' = '0.0.1' } -export enum ProtocolCommand { +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_TEMPLATES = 'listTemplates', LIST_CHARGING_STATIONS = 'listChargingStations', + ADD_CHARGING_STATIONS = 'addChargingStations', + 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', - UNKNOWN = 'unknown', + 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 type ProtocolRequest = [ProtocolCommand, JsonType]; +export interface RequestPayload extends JsonObject { + hashIds?: string[] + connectorIds?: number[] +} -export type ProtocolRequestHandler = ( - payload: JsonType -) => void | Promise | JsonType | Promise; +export enum ResponseStatus { + SUCCESS = 'success', + FAILURE = 'failure' +} + +export interface ResponsePayload extends JsonObject { + status: ResponseStatus + hashIdsSucceeded?: string[] + hashIdsFailed?: string[] + responsesFailed?: BroadcastChannelResponsePayload[] +}