diff --git a/CHANGELOG.md b/CHANGELOG.md index 241043cc0a58bedaf2df610bbd8bfc0e1649fc65..e5cfd85fe089873de24115676d2311f981a1bc4c 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 0000000000000000000000000000000000000000..0395cd65c583fcb9f747243bf24bc512acebecb8 --- /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 a9be4c865b832836310ccd6d95fe2ae3a3db48e8..98f64cc99346aa15f86b1184b41967c817cef9a8 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'