Rückkanal: Caseverwaltung [ZSD 1.15.3]
Warum?
Relevante Links und Bemerkungen
- Mithilfe der in #510 (closed) eingestellten Client-ID im Case kann man nun implementieren:
- Cases auflisten (
GET /v1/cases) - Casedetails abrufen (
GET /v1/cases/{caseId}) Case aktualisieren (offen halten, schließen) (PATCH /v1/cases/{caseId})
- Cases auflisten (
Akzeptanzkriterien
-
(outdated: 02.08.23) Der Case wurde in der Datenbank um einen StatuscaseState, deractiveoderclosedsein kann, erweitert. -
(outdated: 02.08.23) Der Case wurde in der Datenbank um ein AblaufdatumcloseTime(Zeitpunkt) erweitert. Nach Erreichen dercloseTimewird dercaseStateaufclosedgesetzt. -
Sender und Subscriber können sich alle ihren aktiven (Cases auflisten lassen (caseState == active)GET /v1/cases) -
Sender und Subscriber können die Details eines Cases abfragen ( GET /v1/cases/{caseId}) -
(outdated: 02.08.23) Sender und Subscriber können einen Case offen halten (PATCH /v1/cases/{caseId}mit{ "caseState": "active" }). Hierdurch wird diecloseTimeauf den Startwert zurückgesetzt. -
(outdated: 02.08.23) Sender und Subscriber können einen Case schließen (PATCH /v1/cases/{caseId}mit{ "caseState": "closed" }). Hierdurch wird dercaseStateaufclosedgesetzt. -
(outdated: 02.08.23) Wenn dercaseStateaufclosedgesetzt, wird vom Zustelldienst ein Close Case Event erzeugt. -
Der Zugriff des Senders wird über den subClaim geprüft. -
Der Zugriff des Subscribers wird über die Destination einer Submission des Cases geprüft. -
Fehlercodes in API-Spec und Doku auf Vollständigkeit prüfen/korrigieren.→ verschoben nach #1291 (closed) und #1227 (closed) -
Entwurf der Event Payload Schemata wurde im Rahmen der Implementierung nochmals geprüft und bei Bedarf angepasst -
NEU: (27.07.23) (outdated: 02.08.23) Der EndpunktGET /cases/{uuid}wird erweitert um das Attributbidirectional -
NEU: (27.07.23) (outdated: 02.08.23) API-Spezifikation:bidirectional-Attribut in Response desGET /cases/{uuid}ergänzen -
NEU: (27.07.23) Bei einem Berechtigungsfehler wird mit dem HTTP Status Code 403 geantwortet. -
NEU: (27.07.23) Sender darf all seine Cases sehen (Prüfung des subject claims im Token) -
NEU: (27.07.23) Subscriber: muss Scope subscribe:destination:<id>haben. -
NEU: (02.08.23) Der CaseState und die CaseCloseTime sind wieder ausgebaut.
TODOs
-
Bestehende Implementierung übernehmen und prüfen -
Akzeptanz Kriterien gegen den aktuellen Stand der Implementierung prüfen -
Spring Boot Tests für die bereits implementierten API Endpunkte umsetzen -
Ggf. Unit-Tests an kritischen Stellen "nach-implementieren" -
API Spezifikation anpassen: -
manage:destination:<id>für die oben beschriebenen Endpunkte entfernen -
(outdated 02.08.23) bidirectional-Flag bei dem GET-Endpunkt im Response Objekt zurückgeben
-
-
Validierungsregeln in den Endpunkten überprüfen -
Event Payload Schemata nochmal prüfen -
case-closedevent fällt weg (NEU: 27.07.23)
-
-
CaseState und CloseTime nach Entscheidung vom 27.07.23 und 02.08.23 wieder aus dem zustelldienst ausbauen -
CaseState UND CloseTime aus der Api Spezifikation ausbauen → siehe submission-api!169 (merged) -
CaseState UND CloseTime aus Datenbank ausbauen → erledigt mit https://git.fitko.de/fit-connect/zustelldienst/-/merge_requests/245/diffs?commit_id=bbbcc237a8b2f409606c7bf88a6784b3e10f7a83 -
CaseState UND CloseTime aus Java Code ausbauen → erledigt mit https://git.fitko.de/fit-connect/zustelldienst/-/merge_requests/245/diffs?commit_id=bbbcc237a8b2f409606c7bf88a6784b3e10f7a83
-
-
Prüfen der Berechtigungsprüfung der Endpunkte der CaseApi(ggf.@PreAuthorize()nutzen)
Edited by Christoph Metzger