From e39fe84f20beac194c047314988487e212a327c8 Mon Sep 17 00:00:00 2001
From: David Schwarzmann <david.schwarzmann@codecentric.de>
Date: Tue, 21 Sep 2021 12:44:20 +0200
Subject: [PATCH] feat(api#87): Add query parameters for pagination

---
 spec/endpoints/destinations/index.yaml       | 3 +++
 spec/endpoints/submissions/events/index.yaml | 3 +++
 spec/endpoints/submissions/index.yaml        | 2 ++
 spec/parameters/pagination/limit.yaml        | 9 +++++++++
 spec/parameters/pagination/offset.yaml       | 8 ++++++++
 spec/submission-api.yaml                     | 4 ++++
 6 files changed, 29 insertions(+)
 create mode 100644 spec/parameters/pagination/limit.yaml
 create mode 100644 spec/parameters/pagination/offset.yaml

diff --git a/spec/endpoints/destinations/index.yaml b/spec/endpoints/destinations/index.yaml
index c6ac9959..e2ea21b5 100644
--- a/spec/endpoints/destinations/index.yaml
+++ b/spec/endpoints/destinations/index.yaml
@@ -8,6 +8,9 @@ get:
     - OAuth2:
         - 'subscribe:destination:<id>'
         - 'manage:destination:<id>'
+  parameters:
+    - $ref: '../../parameters/pagination/limit.yaml'
+    - $ref: '../../parameters/pagination/offset.yaml'
   responses:
     '200':
       description: OK
diff --git a/spec/endpoints/submissions/events/index.yaml b/spec/endpoints/submissions/events/index.yaml
index 6f20be9b..4c3fa793 100644
--- a/spec/endpoints/submissions/events/index.yaml
+++ b/spec/endpoints/submissions/events/index.yaml
@@ -16,6 +16,9 @@ get:
         - 'manage:destination:<id>'
         - 'send:region:DE<region-id>+send:service:<service-uri>'
         - 'send:region:DE<region-id>'
+  parameters:
+    - $ref: '../../../parameters/pagination/limit.yaml'
+    - $ref: '../../../parameters/pagination/offset.yaml'
   responses:
     '200':
       description: OK
diff --git a/spec/endpoints/submissions/index.yaml b/spec/endpoints/submissions/index.yaml
index a75097f0..49cddbd0 100644
--- a/spec/endpoints/submissions/index.yaml
+++ b/spec/endpoints/submissions/index.yaml
@@ -9,6 +9,8 @@ get:
         - 'subscribe:destination:<id>'
   parameters:
     - $ref: '../../parameters/destinationIdInQuery.yaml'
+    - $ref: '../../parameters/pagination/limit.yaml'
+    - $ref: '../../parameters/pagination/offset.yaml'
   responses:
     '200':
       description: OK
diff --git a/spec/parameters/pagination/limit.yaml b/spec/parameters/pagination/limit.yaml
new file mode 100644
index 00000000..73f0dc2d
--- /dev/null
+++ b/spec/parameters/pagination/limit.yaml
@@ -0,0 +1,9 @@
+name: limit
+in: query
+description: Anzahl der Teilmenge der Ergebnismenge. Maximum ist 500. Standard ist 100.
+required: false
+schema:
+  type: integer
+  format: int32
+  minimum: 1
+  maximum: 500
diff --git a/spec/parameters/pagination/offset.yaml b/spec/parameters/pagination/offset.yaml
new file mode 100644
index 00000000..8d2f08cc
--- /dev/null
+++ b/spec/parameters/pagination/offset.yaml
@@ -0,0 +1,8 @@
+name: offset
+in: query
+description: Startposition der Teilmenge der Ergebnismenge. Standard ist 0.
+required: false
+schema:
+  type: integer
+  format: int32
+  minimum: 0
diff --git a/spec/submission-api.yaml b/spec/submission-api.yaml
index 726f0a09..77d466b9 100644
--- a/spec/submission-api.yaml
+++ b/spec/submission-api.yaml
@@ -75,6 +75,10 @@ components:
       $ref: './parameters/destinationIdInQuery.yaml'
     attachmentId:
       $ref: './parameters/attachmentId.yaml'
+    limit:
+      $ref: './parameters/pagination/limit.yaml'
+    offset:
+      $ref: './parameters/pagination/offset.yaml'
 
   schemas:
     Submission:
-- 
GitLab