feat(sync): implement Delta-Sync API and update clients to support offline-first workflow
Added `/ping/sync` endpoint with timestamp-based Delta-Sync functionality to efficiently support offline-first clients. Extended `PingApi` and frontend clients (`PingApiClient`, `PingApiKoinClient`) with `syncPings`. Updated repository, service, and controller logic for sync handling, including new JPA query `findByCreatedAtAfter`. Adjusted test doubles and completed unit tests for backend and frontend alignment. Documented sync approach and API usage.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
---
|
||||
type: Journal
|
||||
date: 2026-01-17
|
||||
author: Curator
|
||||
participants:
|
||||
- Backend Developer
|
||||
- Lead Architect
|
||||
status: COMPLETED
|
||||
---
|
||||
|
||||
# Session Log: 17. Jänner 2026
|
||||
|
||||
## Zielsetzung
|
||||
Erweiterung des `PingService` um Delta-Sync-Funktionalität (Phase 3) zur Unterstützung von Offline-First-Clients.
|
||||
|
||||
## Durchgeführte Arbeiten
|
||||
|
||||
### 1. Backend: Delta-Sync Implementierung
|
||||
* **Contract (`:contracts:ping-api`):**
|
||||
* Erweiterung des `PingApi` Interfaces um `syncPings(lastSyncTimestamp: Long): List<PingEvent>`.
|
||||
* Definition von `PingEvent` als DTO für Sync-Daten.
|
||||
* **Domain (`:backend:services:ping:ping-service`):**
|
||||
* Erweiterung von `PingUseCase` und `PingRepository` um Methoden zum Abrufen von Daten ab einem Zeitstempel.
|
||||
* **Infrastructure:**
|
||||
* Implementierung des Endpunkts `/ping/sync` im `PingController`.
|
||||
* Implementierung der JPA-Query `findByCreatedAtAfter` im Repository-Adapter.
|
||||
* **Testing:**
|
||||
* Erfolgreiche Implementierung von Unit-Tests für den neuen Endpunkt (`PingControllerTest`).
|
||||
* Behebung von Security-Problemen in Tests durch Deaktivierung von Filtern (`@AutoConfigureMockMvc(addFilters = false)`).
|
||||
|
||||
### 2. Frontend: Client-Anpassung
|
||||
* Aktualisierung von `PingApiClient` (Legacy) und `PingApiKoinClient` (Koin) zur Implementierung der neuen `syncPings`-Methode.
|
||||
* Anpassung des Test-Doubles `TestPingApiClient` zur Vermeidung von Build-Fehlern.
|
||||
|
||||
### 3. Dokumentation
|
||||
* Aktualisierung von `/docs/05_Backend/Services/PingService.md` mit Details zur Sync-Strategie.
|
||||
|
||||
## Ergebnisse
|
||||
* Der `PingService` unterstützt nun Delta-Sync.
|
||||
* Frontend und Backend sind synchronisiert (Contracts).
|
||||
* Build und Tests sind grün.
|
||||
|
||||
## Nächste Schritte
|
||||
* Integration der Sync-Logik in die Frontend-Applikation (durch Frontend Expert).
|
||||
* Validierung des Sync-Mechanismus mit echten Daten.
|
||||
Reference in New Issue
Block a user