From 8aada4d93736393a1a7539b1ee4912b62a2a271b Mon Sep 17 00:00:00 2001 From: Fabian Sudau <fabian.sudau@sinc.de> Date: Tue, 21 Jan 2025 15:57:24 +0100 Subject: [PATCH] feat: Add endpoints `PUT /v1/cases/{caseId}/callback` and `DELETE /v1/cases/{caseId}/callback` (planning#1668) --- CHANGELOG.md | 4 + spec/endpoints/cases/callback/index.yaml | 103 +++++++++++++++++++++++ spec/submission-api.yaml | 3 + 3 files changed, 110 insertions(+) create mode 100644 spec/endpoints/cases/callback/index.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 241043cc..e5cfd85f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,10 @@ Don’t forget to tag @ https://git.fitko.de/fit-connect/submission-api/-/tags ## Unreleased +### Added + +* Fügt die neuen Endpunkte `PUT /v1/cases/{caseId}/callback` und `DELETE /v1/cases/{caseId}/callback` hinzu ([planning#1668](https://git.fitko.de/fit-connect/planning/-/issues/1668)). + ## [1.13.0] ### Added diff --git a/spec/endpoints/cases/callback/index.yaml b/spec/endpoints/cases/callback/index.yaml new file mode 100644 index 00000000..0395cd65 --- /dev/null +++ b/spec/endpoints/cases/callback/index.yaml @@ -0,0 +1,103 @@ +parameters: + - $ref: '../../../parameters/caseId.yaml' + +put: + operationId: put-callback + summary: Callback-Adresse und Secret des Case überschreiben + description: > + Onlinedienste (`sender`) können am Case eine Callback-URL und ein Secret hinterlegen, um über Ereignisse vom + Case informiert zu werden (siehe [Callbacks](https://docs.fitko.de/fit-connect/docs/details/callbacks/)). + Die beiden Felder können auch in der initialen Submission, welche den Case anlegt, angegeben werden. + Dieser Endpunkt dient lediglich dazu, den Callback eines bestehenden Case zu aktualisieren. + Zugriff ist nur demjenigen Client gestattet, der den Case angelegt hat. + tags: + - Vorgangsverwaltung + security: + - OAuth2: + - 'https://schema.fitko.de/fit-connect/oauth/scopes/send-submissions' + requestBody: + required: true + content: + application/json: + schema: + $ref: '../../../schemas/create-callback.yaml' + responses: + '204': + description: No Content - Aktualisierung erfolgreich + headers: + Cache-Control: + $ref: '../../../headers/cache-control-no-cache.yaml' + '400': + description: Bad Request + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '401': + description: Unauthorized + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '403': + description: Forbidden + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '404': + description: Case not found + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '422': + description: Bad Request + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' +delete: + operationId: delete-callback + summary: Callback des Case entfernen + description: > + Onlinedienste (`sender`) können am Case eine Callback-URL und ein Secret hinterlegen, um über Ereignisse vom + Case informiert zu werden (siehe [Callbacks](https://docs.fitko.de/fit-connect/docs/details/callbacks/)). + Falls am angegeben Case ein Callback gesetzt ist, entfernt ihn ein Aufruf dieses Endpunktes und + stellt damit Benachrichtigungen ab. + Zugriff ist nur demjenigen Client gestattet, der den Case angelegt hat. + tags: + - Vorgangsverwaltung + security: + - OAuth2: + - 'https://schema.fitko.de/fit-connect/oauth/scopes/send-submissions' + responses: + '204': + description: No Content - Entfernen erfolgreich + headers: + Cache-Control: + $ref: '../../../headers/cache-control-no-cache.yaml' + '400': + description: Bad Request + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '401': + description: Unauthorized + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '403': + description: Forbidden + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' + '404': + description: Case not found + content: + application/problem+json: + schema: + $ref: '../../../schemas/error.yaml' diff --git a/spec/submission-api.yaml b/spec/submission-api.yaml index a9be4c86..98f64cc9 100644 --- a/spec/submission-api.yaml +++ b/spec/submission-api.yaml @@ -58,6 +58,9 @@ paths: /v1/cases/{caseId}/limits: $ref: './endpoints/cases/limits/index.yaml' + /v1/cases/{caseId}/callback: + $ref: './endpoints/cases/callback/index.yaml' + /v1/cases/{caseId}: $ref: './endpoints/cases/uuid.yaml' -- GitLab