From 60f1c5a0de6d2484ac1ce29b3a87087cc97e280d Mon Sep 17 00:00:00 2001 From: Fenris Wolf Date: Tue, 14 Oct 2025 23:31:05 +0200 Subject: [PATCH] [mod] api:action:events:hash mit ausgeben --- source/api/actions/events.ts | 7 +++++++ source/services/calendar.ts | 25 ++++++++++++++++++++++++- source/types.ts | 6 ++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/source/api/actions/events.ts b/source/api/actions/events.ts index e175393..a04e540 100644 --- a/source/api/actions/events.ts +++ b/source/api/actions/events.ts @@ -32,6 +32,7 @@ namespace _zeitbild.api ( Array< { + hash : _zeitbild.type_event_hash; calendar_id : int; calendar_name : string; hue : float; @@ -73,6 +74,10 @@ namespace _zeitbild.api "type": "object", "additionalProperties": false, "properties": { + "hash": { + "nullable": false, + "type": "string", + }, "calendar_id": { "nullable": false, "type": "number", @@ -191,6 +196,8 @@ namespace _zeitbild.api data .map( (entry) => ({ + // todo + "hash": entry.hash, "calendar_id": entry.calendar_id, "calendar_name": entry.calendar_name, "hue": entry.hue, diff --git a/source/services/calendar.ts b/source/services/calendar.ts index b0f09dc..122a8f2 100644 --- a/source/services/calendar.ts +++ b/source/services/calendar.ts @@ -298,13 +298,14 @@ namespace _zeitbild.service.calendar Array< { id : (null | _zeitbild.type_local_resource_event_id); + hash : _zeitbild.type_event_hash; object : _zeitbild.type_event_object; } > > { const calendar_object : _zeitbild.type_calendar_object = await _zeitbild.repository.calendar.read(calendar_id); - return wrap_check_access_level>( + return wrap_check_access_level>( calendar_object, user_id, _zeitbild.enum_access_level.view, @@ -325,6 +326,13 @@ namespace _zeitbild.service.calendar (event_object) => Promise.resolve( { "id": event_id, + "hash": lib_plankton.string.coin( + "{{calendar_id}}:{{event_id}}", + { + "calendar_id": calendar_id.toFixed(0), + "event_id": event_id.toFixed(0), + } + ), "object": event_object, } ) @@ -449,6 +457,19 @@ namespace _zeitbild.service.calendar .map( (event) => ({ "id": null, + "hash": lib_plankton.string.coin( + "{{calendar_id}}~{{hash}}", + { + "calendar_id": calendar_id.toFixed(0), + "hash": lib_plankton.call.convey( + event, + [ + (x : any) => lib_plankton.json.encode(x), + (x : string) => lib_plankton.base64.encode(x), + ] + ) + } + ), "object": event, }) ) @@ -531,6 +552,7 @@ namespace _zeitbild.service.calendar const events : Array< { id : (null | _zeitbild.type_local_resource_event_id); + hash : _zeitbild.type_event_hash; object : _zeitbild.type_event_object; } > = await get_events( @@ -543,6 +565,7 @@ namespace _zeitbild.service.calendar events .map( (event_entry) => ({ + "hash": event_entry.hash, "calendar_id": calendar_id, "calendar_name": calendar_object.name, "hue": calendar_object.hue, diff --git a/source/types.ts b/source/types.ts index 76d40b7..d917bef 100644 --- a/source/types.ts +++ b/source/types.ts @@ -140,9 +140,15 @@ namespace _zeitbild }; + /** + */ + export type type_event_hash = string; + + /** */ export type type_event_extended = { + hash : type_event_hash; calendar_id : type_calendar_id; calendar_name : string; hue : float;