Commit | Line | Data |
---|---|---|
66a7748d JB |
1 | import type { JsonObject } from './JsonType.js' |
2 | import type { BroadcastChannelResponsePayload } from './WorkerBroadcastChannel.js' | |
d1888640 | 3 | |
4198ad5c | 4 | export enum Protocol { |
a223d9be | 5 | UI = 'ui' |
4198ad5c | 6 | } |
8244f5f0 | 7 | |
675fa8e3 JB |
8 | export enum ApplicationProtocol { |
9 | HTTP = 'http', | |
a223d9be | 10 | WS = 'ws' |
675fa8e3 JB |
11 | } |
12 | ||
eb3abc4f | 13 | export enum AuthenticationType { |
329eab0e JB |
14 | BASIC_AUTH = 'basic-auth', |
15 | PROTOCOL_BASIC_AUTH = 'protocol-basic-auth' | |
eb3abc4f JB |
16 | } |
17 | ||
8244f5f0 | 18 | export enum ProtocolVersion { |
a223d9be | 19 | '0.0.1' = '0.0.1' |
8244f5f0 JB |
20 | } |
21 | ||
66a7748d JB |
22 | export type ProtocolRequest = [string, ProcedureName, RequestPayload] |
23 | export type ProtocolResponse = [string, ResponsePayload] | |
89b7a234 JB |
24 | |
25 | export type ProtocolRequestHandler = ( | |
4e3ff94d | 26 | uuid?: string, |
5e8e29f4 | 27 | procedureName?: ProcedureName, |
66a7748d JB |
28 | payload?: RequestPayload |
29 | ) => undefined | Promise<undefined> | ResponsePayload | Promise<ResponsePayload> | |
89b7a234 | 30 | |
32de5a57 | 31 | export enum ProcedureName { |
5e8e29f4 JB |
32 | START_SIMULATOR = 'startSimulator', |
33 | STOP_SIMULATOR = 'stopSimulator', | |
42e341c4 | 34 | LIST_TEMPLATES = 'listTemplates', |
ee0f106b | 35 | LIST_CHARGING_STATIONS = 'listChargingStations', |
c5ecc04d | 36 | ADD_CHARGING_STATIONS = 'addChargingStations', |
09e5a7a8 | 37 | DELETE_CHARGING_STATIONS = 'deleteChargingStations', |
a66bbcfe | 38 | PERFORMANCE_STATISTICS = 'performanceStatistics', |
89b7a234 JB |
39 | START_CHARGING_STATION = 'startChargingStation', |
40 | STOP_CHARGING_STATION = 'stopChargingStation', | |
db2336d9 JB |
41 | OPEN_CONNECTION = 'openConnection', |
42 | CLOSE_CONNECTION = 'closeConnection', | |
4f69be04 JB |
43 | START_AUTOMATIC_TRANSACTION_GENERATOR = 'startAutomaticTransactionGenerator', |
44 | STOP_AUTOMATIC_TRANSACTION_GENERATOR = 'stopAutomaticTransactionGenerator', | |
269de583 | 45 | SET_SUPERVISION_URL = 'setSupervisionUrl', |
5e8e29f4 JB |
46 | START_TRANSACTION = 'startTransaction', |
47 | STOP_TRANSACTION = 'stopTransaction', | |
1984f194 | 48 | AUTHORIZE = 'authorize', |
8bfbc743 | 49 | BOOT_NOTIFICATION = 'bootNotification', |
a9ed42b2 | 50 | STATUS_NOTIFICATION = 'statusNotification', |
10db00b2 | 51 | HEARTBEAT = 'heartbeat', |
d3195f0a | 52 | METER_VALUES = 'meterValues', |
91a7d3ea | 53 | DATA_TRANSFER = 'dataTransfer', |
c9a4f9ea | 54 | DIAGNOSTICS_STATUS_NOTIFICATION = 'diagnosticsStatusNotification', |
a223d9be | 55 | FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification' |
8244f5f0 | 56 | } |
5612b691 | 57 | |
89b7a234 | 58 | export interface RequestPayload extends JsonObject { |
66a7748d JB |
59 | hashIds?: string[] |
60 | connectorIds?: number[] | |
89b7a234 | 61 | } |
8244f5f0 | 62 | |
32de5a57 LM |
63 | export enum ResponseStatus { |
64 | SUCCESS = 'success', | |
a223d9be | 65 | FAILURE = 'failure' |
32de5a57 LM |
66 | } |
67 | ||
68 | export interface ResponsePayload extends JsonObject { | |
66a7748d JB |
69 | status: ResponseStatus |
70 | hashIdsSucceeded?: string[] | |
71 | hashIdsFailed?: string[] | |
72 | responsesFailed?: BroadcastChannelResponsePayload[] | |
32de5a57 | 73 | } |