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.
1.8 KiB
1.8 KiB
| type | date | author | participants | status | ||
|---|---|---|---|---|---|---|
| Journal | 2026-01-17 | Curator |
|
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
PingApiInterfaces umsyncPings(lastSyncTimestamp: Long): List<PingEvent>. - Definition von
PingEventals DTO für Sync-Daten.
- Erweiterung des
- Domain (
:backend:services:ping:ping-service):- Erweiterung von
PingUseCaseundPingRepositoryum Methoden zum Abrufen von Daten ab einem Zeitstempel.
- Erweiterung von
- Infrastructure:
- Implementierung des Endpunkts
/ping/syncimPingController. - Implementierung der JPA-Query
findByCreatedAtAfterim Repository-Adapter.
- Implementierung des Endpunkts
- 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)).
- Erfolgreiche Implementierung von Unit-Tests für den neuen Endpunkt (
2. Frontend: Client-Anpassung
- Aktualisierung von
PingApiClient(Legacy) undPingApiKoinClient(Koin) zur Implementierung der neuensyncPings-Methode. - Anpassung des Test-Doubles
TestPingApiClientzur Vermeidung von Build-Fehlern.
3. Dokumentation
- Aktualisierung von
/docs/05_Backend/Services/PingService.mdmit Details zur Sync-Strategie.
Ergebnisse
- Der
PingServiceunterstü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.