Benachrichtigungseinstellungen

Mit dem @notification-settings Endpoint können die Benachrichtigungseinstellungen des aktuellen Benutzers ausgelesen und angepasst werden. Der Endpoint steht nur auf Stufe PloneSite zur Verfügung.

Auslesen (GET)

Gibt die Benachrichtigungseinstellungen des aktuellen Benutzers zurück.

Request:

GET /@notification-settings HTTP/1.1
Accept: application/json

Response:

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

{
  "@id": "http://localhost:8080/fd/@notification-settings",
  "activities": {
    "@id": "http://localhost:8080/fd/@notification-settings/activities",
    "items": [
      {
        "@id": "http://localhost:8080/fd/@notification-settings/activities/task-added-or-reassigned",
        "badge": {
          "regular_watcher": true,
          "task_issuer": true,
          "task_responsible": true
        },
        "digest": {
          "regular_watcher": false,
          "task_issuer": false,
          "task_responsible": false
        },
        "group": "task",
        "id": "task-added-or-reassigned",
        "kind": "task-added-or-reassigned",
        "mail": {
          "regular_watcher": true,
          "task_issuer": false,
          "task_responsible": true
        },
        "personal": false,
        "title": "Aufgabe erstellt / neu zugewiesen"
      },
      { "...": "..." },
    ]
  },
  "general": {
    "@id": "http://localhost:8080/fd/@notification-settings/general",
    "items": [
      {
        "@id": "http://localhost:8080/fd/@notification-settings/general/notify_own_actions",
        "group": "general",
        "help_text": "Standardmässig werden für selbst ausgeführte Aktionen keine Benachrichtigungen ausgelöst. Mit dieser Option kann dieses Verhalten verändert werden. Persönlich vorgenommene Benachrichtigungseinstellungen pro Aktionstyp gelten dabei nach wie vor.",
        "id": "notify_own_actions",
        "personal": false,
        "title": "Benachrichtigung für eigene Aktionen aktivieren",
        "value": false
      },
      { "...": "..." },
    ]
  },
  "translations": [
    {
      "id": "task_responsible",
      "title": "Auftragnehmer"
    },
    {
      "id": "task_issuer",
      "title": "Auftraggeber"
    },
    { "...": "..." },
  ]
}

Ändern einer Benachrichtigungseinstellung (PATCH)

Die Einstellungen für den aktuellen Benutzer können via PATCH Request geändert werden. Dabei wird zwischen generellen Benachrichtigungseinstellungen und Einstellungen für Aktivitätsbenachrichtigungen unterschieden.

Beispiel-Request fürs Ändern einer generellen Benachrichtigungseinstellung:

PATCH /@notification-settings/general/notify_own_actions HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "value": true,
}

Response:

HTTP/1.1 204 No Content
Content-Type: application/json

Bei den Einstellungen für Aktivitätsbenachrichtigungen kann gewählt werden, in welcher Rolle man per GEVER-Benachrichtigung (badge) , E-Mail (mail) und Tageszusammenfassung (digest) benachrichtigt werden will. Dabei müssen pro Benachrichtigungstyp alle Rollen mitgegeben werden, in denen man benachrichtigt werden will:

Beispiel-Request fürs Ändern einer Einstellung für Aktivitätsbenachrichtigungen:

PATCH /@notification-settings/activity/task-added-or-reassigned HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "mail": {
    "task_issuer": true,
    "regular_watcher": true
  },
  "digest": {
    "regular_watcher": true
  }
}

Response:

HTTP/1.1 204 No Content
Content-Type: application/json

Gleich wie bei anderen PATCH Requests ist es auch hier möglich, die Repräsentation als Response zu erhalten, hierzu muss ein Prefer Header mit dem Wert return=representation gesetzt werden.

Zurücksetzen einer Benachrichtigungseinstellung (PATCH)

Die Einstellungen für den aktuellen Benutzer können via PATCH Request auf den Standard zurückgesetzt werden.

Request:

PATCH /@notification-settings/activity/task-added-or-reassigned HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "reset": true
}

Response:

HTTP/1.1 204 No Content
Content-Type: application/json