X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2FUIProtocol.ts;h=3a76bd0007302ec8a11540a6c317bd59fd3c4675;hb=cb886184464ed30ee14f538581e511710131b6ef;hp=3e4d6232ba6202ca395fa57791fe8886b0f332e5;hpb=ee0f106b09f38b1561d970ea4377eb199389298e;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/UIProtocol.ts b/src/types/UIProtocol.ts index 3e4d6232..3a76bd00 100644 --- a/src/types/UIProtocol.ts +++ b/src/types/UIProtocol.ts @@ -1,16 +1,49 @@ +import type { JsonObject } from './JsonType'; + +export enum Protocol { + UI = 'ui', +} + +export enum ApplicationProtocol { + HTTP = 'http', + WS = 'ws', +} export enum ProtocolVersion { '0.0.1' = '0.0.1', - '0.0.2' = '0.0.2', } -export enum ProtocolCommand { +export type ProtocolRequest = [string, ProcedureName, RequestPayload]; +export type ProtocolResponse = [string, ResponsePayload]; + +export type ProtocolRequestHandler = ( + uuid?: string, + payload?: RequestPayload +) => undefined | Promise | ResponsePayload | Promise; + +export enum ProcedureName { LIST_CHARGING_STATIONS = 'listChargingStations', + START_CHARGING_STATION = 'startChargingStation', + STOP_CHARGING_STATION = 'stopChargingStation', START_TRANSACTION = 'startTransaction', STOP_TRANSACTION = 'stopTransaction', - UNKNOWN = 'unknown', + START_SIMULATOR = 'startSimulator', + STOP_SIMULATOR = 'stopSimulator', + OPEN_CONNECTION = 'openConnection', + CLOSE_CONNECTION = 'closeConnection', } -export type ProtocolRequest = [ProtocolVersion, ProtocolCommand, Record]; +export interface RequestPayload extends JsonObject { + hashId?: string; + hashIds?: string[]; +} -export type ProtocolRequestHandler = (payload: Record) => Record | Promise>; +export enum ResponseStatus { + SUCCESS = 'success', + FAILURE = 'failure', +} + +export interface ResponsePayload extends JsonObject { + status: ResponseStatus; + hashIds?: string[]; +}