From b499a5bc213e4d91d4a36ae0c623ba4a122a101d Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Tue, 8 Mar 2022 11:07:04 +0100
Subject: [PATCH] Add default values for page and page size in paged response

---
 .../openepics/names/rest/api/v1/INames.java   | 23 +++++++++++--------
 .../names/rest/api/v1/IStructures.java        | 23 +++++++++++--------
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/openepics/names/rest/api/v1/INames.java b/src/main/java/org/openepics/names/rest/api/v1/INames.java
index 382e0086..a70b1649 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/INames.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/INames.java
@@ -106,6 +106,9 @@ public interface INames {
            read      GET    /names/{name} - both name and uuid (name - exact and search, uuid exact)
      */
 
+	public static final String DEFAULT_PAGE      = "0";
+	public static final String DEFAULT_PAGE_SIZE = "100";
+
     /**
      * Create names by list of name elements.
      * Return list of created name elements.
@@ -176,8 +179,8 @@ public interface INames {
             @Parameter(in = ParameterIn.QUERY, description = "search values corresponding to search fields") @RequestParam(required = false) String[] queryValues,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldName orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find valid names by name or uuid (search).
@@ -208,8 +211,8 @@ public interface INames {
             @Parameter(in = ParameterIn.PATH,  description = "name or uuid to search for") @PathVariable("name") String name,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldName orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find valid names by system structure mnemonic path (search).
@@ -240,8 +243,8 @@ public interface INames {
             @Parameter(in = ParameterIn.PATH,  description = "mnemonic path to search for") @PathVariable("mnemonicpath") String mnemonicpath,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldName orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find valid names by device structure mnemonic path (search).
@@ -272,8 +275,8 @@ public interface INames {
             @Parameter(in = ParameterIn.PATH,  description = "mnemonic path to search for") @PathVariable("mnemonicpath") String mnemonicpath,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldName orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find history for name by uuid (exact match).
@@ -304,8 +307,8 @@ public interface INames {
             @Parameter(in = ParameterIn.PATH,  description = "uuid to find history for") @PathVariable("uuid") String uuid,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldName orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     // ----------------------------------------------------------------------------------------------------
 
diff --git a/src/main/java/org/openepics/names/rest/api/v1/IStructures.java b/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
index 24c2d5b9..a64c6334 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
@@ -113,6 +113,9 @@ public interface IStructures {
            update    PATCH  /structures/reject                                - rejectStructures               (List<StructureElement>)
      */
 
+	public static final String DEFAULT_PAGE      = "0";
+	public static final String DEFAULT_PAGE_SIZE = "100";
+
     /**
      * Create (propose) structures by list of structure elements.
      * Return list of created structure elements (proposals).
@@ -197,8 +200,8 @@ public interface IStructures {
             @Parameter(in = ParameterIn.QUERY, description = "search values corresponding to search fields") @RequestParam(required = false) String[] queryValues,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldStructure orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find valid children structures by type and parent uuid (exact match).
@@ -231,8 +234,8 @@ public interface IStructures {
             @Parameter(in = ParameterIn.PATH,  description = "uuid to find structure for") @PathVariable("uuid") String uuid,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldStructure orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find valid structures by mnemonic (search).
@@ -264,8 +267,8 @@ public interface IStructures {
             @Parameter(in = ParameterIn.PATH,  description = "mnemonic to search for") @PathVariable("mnemonic") String mnemonic,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldStructure orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find valid structures by mnemonic path (search).
@@ -297,8 +300,8 @@ public interface IStructures {
             @Parameter(in = ParameterIn.PATH,  description = "mnemonic path to search for") @PathVariable("mnemonicpath") String mnemonicpath,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldStructure orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     /**
      * Find history for structure by uuid (exact match).
@@ -331,8 +334,8 @@ public interface IStructures {
             @Parameter(in = ParameterIn.QUERY, description = "type of structure to search in") @RequestParam(required = false) Type type,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldStructure orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
-            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false) Integer page,
-            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false) Integer pageSize);
+            @Parameter(in = ParameterIn.QUERY, description = "page starting from 0, offset") @RequestParam(required = false, defaultValue = DEFAULT_PAGE) Integer page,
+            @Parameter(in = ParameterIn.QUERY, description = "page size, limit") @RequestParam(required = false, defaultValue = DEFAULT_PAGE_SIZE) Integer pageSize);
 
     // ----------------------------------------------------------------------------------------------------
 
-- 
GitLab