Erweiterung der Destination- und Client Listen-Endpunkte

User Story

Als Anbindungsprojekt möchte ich alle meine Zustellpunkte und Clients im SSP sehen können. Im Falle einer großen Zahl von Zustellpunkten / Clients möchte ich suchen und blättern können.

Warum

Um eine kundenorientierte Pagination mit Suchfunktion umzusetzen, benötigen wir einen Ausbau der bestehenden Listen-Endpunkte. Bei einer großen Zahl von Clients / Zustellpunkten ist es dabei für des SSP aus Performancegründen wichtig, die Datenmengen klein zu halten.

Links, Hinweise, Bemerkungen

Akzeptanzkriterien

  1. Es gibt einen Parameter minimal(Typ Boolean) beim Destination Listen-Endpunkt.
    1. Default ist false.
    2. Wenn true, dann wird eine minimal Destination zurückgegeben, die destinationId, name, status und clientCount enthält.
    3. Wenn false, dann wird die vollständige Destination zurückgegeben.
    4. Beispiel: https://zustelldienst/.../destinations?minimal=true
  2. Es gibt einen Parameter minimal(Typ Boolean) beim Client Listen-Endpunkt. NICHT BENÖTIGT
    1. Default ist false.
    2. Wenn true, dann wird ein minimal Client zurückgegeben, der clientId, name, type und destinationCount enthält.
    3. Wenn false, dann wird der vollständige Client zurückgegeben.
    4. Beispiel: https://zustelldienst/.../clients?minimal=true
  3. Es gibt einen Parameter search in beiden Listen-Endpunkten
    1. Durchsucht destinationId/clientId und name
    2. Entspricht effektiv .*{searchvalue}.*
    3. Beispiel: https://zustelldienst/.../destinations?search=Landkreis
  4. Es gibt einen Parameter status beim Destination Listen-Endpunkt
    1. Akzeptiert eine Kommagetrennte Liste von String Representation der verfügbaren Destination-Status Akzeptiert Mehrfachnennung des Parameters.
    2. Gibt nur Destinations zurück, die einem der States entsprechen
    3. Beispiel: https://zustelldienst/.../destinations?status=created&status=active
  5. Es gibt einen Parameter type beim Client Listen-Endpunkt
    1. Akzeptiert eine String Representation der verfügbaren Client Arten (SENDER, SUBSCRIBER)
    2. Gibt nur Clients zurück, die dem Typ entsprechen
    3. Beispiel: https://zustelldienst/.../clients?type=SENDER. Auch hier ist der Konsistenz wegen eine Mehrfachnennung möglich type=SENDER&type=SUBSCRIBER, was aber fachlich nur dem Weglassen des Parameters entspricht.
  6. Dies ist zusätzlich zur bestehenden Pagination Funktion

Mögliche Folgeaktivitäten (vom Entwickler zu ergänzen)

Edited by Fabian Sudau