X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=ui%2Fweb%2Fsrc%2Fcomposables%2FUIClient.ts;h=9522c59213c666a526d48927447024f3e8fc065a;hb=9312c9d319ab997598eb1fe198f0615f12e766f4;hp=781854dbb759fdfc542aa535573fa7f61eb1e606;hpb=2c5c744359d7b1c65da4eb255db1d67da7b604f3;p=e-mobility-charging-stations-simulator.git diff --git a/ui/web/src/composables/UIClient.ts b/ui/web/src/composables/UIClient.ts index 781854db..9522c592 100644 --- a/ui/web/src/composables/UIClient.ts +++ b/ui/web/src/composables/UIClient.ts @@ -12,7 +12,7 @@ import { type UIServerConfigurationSection } from '@/types' -import { randomUUID } from './Utils' +import { randomUUID, validateUUID } from './Utils' type ResponseHandler = { procedureName: ProcedureName @@ -238,21 +238,27 @@ export class UIClient { private responseHandler(messageEvent: MessageEvent): void { let response: ProtocolResponse try { - response = JSON.parse(messageEvent.data) as ProtocolResponse + response = JSON.parse(messageEvent.data) } catch (error) { - useToast().error('Invalid response format') - console.error('Invalid response format', error) + useToast().error('Invalid response JSON format') + console.error('Invalid response JSON format', error) return } if (!Array.isArray(response)) { - useToast().error(`Response not an array`) - console.error(`Response not an array:`, response) + useToast().error('Response not an array') + console.error('Response not an array:', response) return } const [uuid, responsePayload] = response + if (!validateUUID(uuid)) { + useToast().error('Response UUID field is invalid') + console.error('Response UUID field is invalid:', response) + return + } + if (this.responseHandlers.has(uuid)) { const { procedureName, resolve, reject } = this.responseHandlers.get(uuid)! switch (responsePayload.status) {