Beteiligungen

Der @participations Endpoint behandelt Dossierbeteiligungen.

Die participant_id und participant_title Felder sind überholt und wurden durch das participant_actor Feld ersetzt.

Auflistung

Ein Beteiligter kann in verschiedenen Rollen an einem Dossier beteiligt sein. Mittels eines GET-Requests können alle Beteiligten eines Dossiers und ihre Rollen abgefragt werden.

Beispiel-Request:

GET /dossier-1/@participations HTTP/1.1
Accept: application/json

Beispiel-Response:

HTTP/1.1 200 OK
Content-Type: application/json


{
  "@id": "https://example.org/ordnungssystem/fuehrung/dossier-1/@participations",
  "available_roles": [
    {
      "title": "Kenntnisnahme",
      "token": "regard",
      "active": true,
    },
    {
      "title": "Mitwirkung",
      "token": "participation",
      "active": true,
    },
    {
      "title": "Schlusszeichnung",
      "token": "final-drawing",
      "active": true,
    }
  ],
  "items": [
    {
      "@id": "https://example.org/ordnungssystem/fuehrung/dossier-1/@participations/contact:james-bond",
      "participant_id": "contact:james-bond",
      "participant_title": "Bond James (james@example.com)",
      "participant_actor": {
        "@id": "https://example.org/@actors/contact:james-bond",
        "identifier": "contact:james-bond"
      },
      "roles": [
        "final-drawing"
      ]
    },
    {
      "@id": "https://example.org/ordnungssystem/fuehrung/dossier-1/@participations/rolf.ziegler",
      "participant_id": "rolf.ziegler",
      "participant_title": "Ziegler Rolf (rolf.ziegler)",
      "participant_actor": {
        "@id": "https://example.org/@actors/rolf.ziegler",
        "identifier": "rolf.ziegler"
      },
      "roles": [
        "regard",
        "participation"
      ]
    }
  ],
  "items_total": 2,
  "primary_participation_roles": [
    {
      "title": "Schlusszeichnung",
      "token": "final-drawing"
    }
  ]
}

Beteiligungen als erweiterbare Komponente

Die Beteilgungen können als Kompomente eines Dossiers direkt über den expand-Parameter eingebettet werden, so dass keine zusätzliche Abfrage nötig ist.

Beispiel-Request:

GET /dossier-1?expand=participations HTTP/1.1
Accept: application/json

Beispiel-Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@id": "https://example.org/ordnungssystem/fuehrung/dossier-1?expand=participations",
  "@components": {
    "participations": {
      "@id": "https://example.org/ordnungssystem/fuehrung/dossier-1/@participations",
      "available_roles": ["..."],
      "items": ["..."],
      "items_total": 2
    }
  },
  "...": "..."
}

Beteiligung hinzufügen

Eine Beteiligung kann mittels POST-Requests hinzugefügt werden.

Beispiel-Request:

POST /dossier-1/@participations HTTP/1.1
Accept: application/json

{
  "participant_id": "peter.mueller"
  "roles": ["regard"]
}

Beispiel-Response:

HTTP/1.1 204 No content

Rollen einer Beteiligung bearbeiten

Rollen einer Beteiligung können mittels PATCH-Requests bearbeitet werden.

Beispiel-Request:

POST /dossier-1/@participations/rolf.ziegler HTTP/1.1
Accept: application/json

{
  "roles": ["regard", "final-drawing"]
}

Beispiel-Response:

HTTP/1.1 204 No content

Beteiligung entfernen

Mittels DELETE-Requests kann eine Beteiligung wieder entfernt werden.

Beispiel-Request:

DELETE /dossier-1/@participations/rolf.ziegler HTTP/1.1
Accept: application/json

Beispiel-Response:

HTTP/1.1 204 No content

Liste von möglichen Beteiligten

Der @possible-participants-Endpoint liefert eine Liste von Aktoren, welche als Beteiligte für den aktuellen Kontext hinzugefügt werden können. Der Endpoint steht nur für Dossiers zur Verfügung.

Beispiel-Request:

GET /dossier-1/@possible-participants HTTP/1.1
Accept: application/json

Beispiel-Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@id": "https://example.org/ordnungssystem/fuehrung/dossier-1//@possible-particpants",
  "items": [
    {
      "title": "Bond James (james@example.com)",
      "token": "contact:james.bond"
    },
    {
      "title": "Ziegler Rolf (rolf.ziegler)",
      "token": "rolf.ziegler"
    },
    { "...": "..." },
  ],
  "items_total": 17
}

Paginierung

Die Paginierung funktioniert gleich wie bei anderen Auflistungen auch (siehe Kapitel Paginierung).