From 2e30d3b84b03092d4858afd1641b487e230bf7ac Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Mon, 4 Apr 2022 17:10:11 +0200
Subject: [PATCH] Add option to sort on date / time for read endpoints for
 names and structures

---
 .../openepics/names/repository/DeviceGroupRepository.java    | 4 ++++
 .../org/openepics/names/repository/DeviceTypeRepository.java | 4 ++++
 .../org/openepics/names/repository/DisciplineRepository.java | 4 ++++
 .../java/org/openepics/names/repository/NameRepository.java  | 4 ++++
 .../org/openepics/names/repository/SubsystemRepository.java  | 4 ++++
 .../openepics/names/repository/SystemGroupRepository.java    | 4 ++++
 .../org/openepics/names/repository/SystemRepository.java     | 4 ++++
 src/main/java/org/openepics/names/rest/api/v1/INames.java    | 5 ++---
 .../java/org/openepics/names/rest/api/v1/IStructures.java    | 5 ++---
 src/main/java/org/openepics/names/rest/beans/FieldName.java  | 3 ++-
 .../java/org/openepics/names/rest/beans/FieldStructure.java  | 3 ++-
 11 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java b/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java
index 9d608063..f157efe2 100644
--- a/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java
+++ b/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java
@@ -183,6 +183,8 @@ public class DeviceGroupRepository {
                     cq.orderBy(cb.asc(cb.function("get_mnemonic_path_devicegroup", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -197,6 +199,8 @@ public class DeviceGroupRepository {
                     cq.orderBy(cb.desc(cb.function("get_mnemonic_path_devicegroup", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("name")));
                 }
diff --git a/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java b/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java
index 133a728c..e6d3c5bf 100644
--- a/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java
+++ b/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java
@@ -183,6 +183,8 @@ public class DeviceTypeRepository {
                     cq.orderBy(cb.asc(cb.function("get_mnemonic_path_devicetype", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -197,6 +199,8 @@ public class DeviceTypeRepository {
                     cq.orderBy(cb.desc(cb.function("get_mnemonic_path_devicetype", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("name")));
                 }
diff --git a/src/main/java/org/openepics/names/repository/DisciplineRepository.java b/src/main/java/org/openepics/names/repository/DisciplineRepository.java
index 44e99978..4d6e8adb 100644
--- a/src/main/java/org/openepics/names/repository/DisciplineRepository.java
+++ b/src/main/java/org/openepics/names/repository/DisciplineRepository.java
@@ -183,6 +183,8 @@ public class DisciplineRepository {
                     cq.orderBy(cb.asc(from.get("mnemonic")));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -197,6 +199,8 @@ public class DisciplineRepository {
                     cq.orderBy(cb.asc(from.get("mnemonic")));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("name")));
                 }
diff --git a/src/main/java/org/openepics/names/repository/NameRepository.java b/src/main/java/org/openepics/names/repository/NameRepository.java
index be1ef023..d31a74f5 100644
--- a/src/main/java/org/openepics/names/repository/NameRepository.java
+++ b/src/main/java/org/openepics/names/repository/NameRepository.java
@@ -173,6 +173,8 @@ public class NameRepository {
                     cq.orderBy(cb.asc(cb.function("get_mnemonic_path_device_structure", String.class, from.get("convention_name"))));
                 } else if (FieldName.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldName.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -187,6 +189,8 @@ public class NameRepository {
                     cq.orderBy(cb.desc(cb.function("get_mnemonic_path_device_structure", String.class, from.get("convention_name"))));
                 } else if (FieldName.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldName.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("convention_name")));
                 }
diff --git a/src/main/java/org/openepics/names/repository/SubsystemRepository.java b/src/main/java/org/openepics/names/repository/SubsystemRepository.java
index da5c5b79..2be94490 100644
--- a/src/main/java/org/openepics/names/repository/SubsystemRepository.java
+++ b/src/main/java/org/openepics/names/repository/SubsystemRepository.java
@@ -183,6 +183,8 @@ public class SubsystemRepository {
                     cq.orderBy(cb.asc(cb.function("get_mnemonic_path_subsystem", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -197,6 +199,8 @@ public class SubsystemRepository {
                     cq.orderBy(cb.desc(cb.function("get_mnemonic_path_subsystem", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("name")));
                 }
diff --git a/src/main/java/org/openepics/names/repository/SystemGroupRepository.java b/src/main/java/org/openepics/names/repository/SystemGroupRepository.java
index 1dac1430..ebefc1f7 100644
--- a/src/main/java/org/openepics/names/repository/SystemGroupRepository.java
+++ b/src/main/java/org/openepics/names/repository/SystemGroupRepository.java
@@ -179,6 +179,8 @@ public class SystemGroupRepository {
                     cq.orderBy(cb.asc(from.get("mnemonic")));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -193,6 +195,8 @@ public class SystemGroupRepository {
                     cq.orderBy(cb.desc(from.get("mnemonic")));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("name")));
                 }
diff --git a/src/main/java/org/openepics/names/repository/SystemRepository.java b/src/main/java/org/openepics/names/repository/SystemRepository.java
index 90c2fc73..0403e349 100644
--- a/src/main/java/org/openepics/names/repository/SystemRepository.java
+++ b/src/main/java/org/openepics/names/repository/SystemRepository.java
@@ -183,6 +183,8 @@ public class SystemRepository {
                     cq.orderBy(cb.asc(cb.function("get_mnemonic_path_system", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.asc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.asc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.asc(from.get("convention_name")));
                 }
@@ -197,6 +199,8 @@ public class SystemRepository {
                     cq.orderBy(cb.desc(cb.function("get_mnemonic_path_system", String.class, from.get("uuid"))));
                 } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
                     cq.orderBy(cb.desc(from.get("description")));
+                } else if (FieldStructure.WHEN.equals(orderBy)) {
+                    cq.orderBy(cb.desc(from.get("requested")));
                 } else {
                     cq.orderBy(cb.desc(from.get("name")));
                 }
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 9fa26817..0fdcf3be 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
@@ -107,9 +107,8 @@ public interface INames {
            read      GET    /names/{name} - both name and uuid (name - exact and search, uuid exact)
      */
 
-    public static final String DEFAULT_FALSE     = "false";
-    public static final String DEFAULT_PAGE      = "0";
-    public static final String DEFAULT_PAGE_SIZE = "100";
+    public static final String DEFAULT_PAGE       = "0";
+    public static final String DEFAULT_PAGE_SIZE  = "100";
 
     /**
      * Create names by list of name elements.
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 f8606bbb..c28d0976 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
@@ -114,9 +114,8 @@ public interface IStructures {
            update    PATCH  /structures/reject                                - rejectStructures               (List<StructureElement>)
      */
 
-    public static final String DEFAULT_FALSE     = "false";
-    public static final String DEFAULT_PAGE      = "0";
-    public static final String DEFAULT_PAGE_SIZE = "100";
+    public static final String DEFAULT_PAGE       = "0";
+    public static final String DEFAULT_PAGE_SIZE  = "100";
 
     /**
      * Create (propose) structures by list of structure elements.
diff --git a/src/main/java/org/openepics/names/rest/beans/FieldName.java b/src/main/java/org/openepics/names/rest/beans/FieldName.java
index 5ed6b831..f73973c7 100644
--- a/src/main/java/org/openepics/names/rest/beans/FieldName.java
+++ b/src/main/java/org/openepics/names/rest/beans/FieldName.java
@@ -30,6 +30,7 @@ public enum FieldName {
     NAMEEQUIVALENCE,
     SYSTEMSTRUCTURE,
     DEVICESTRUCTURE,
-    DESCRIPTION;
+    DESCRIPTION,
+    WHEN;
 
 }
diff --git a/src/main/java/org/openepics/names/rest/beans/FieldStructure.java b/src/main/java/org/openepics/names/rest/beans/FieldStructure.java
index 2958fd8d..f8cf33e9 100644
--- a/src/main/java/org/openepics/names/rest/beans/FieldStructure.java
+++ b/src/main/java/org/openepics/names/rest/beans/FieldStructure.java
@@ -31,6 +31,7 @@ public enum FieldStructure {
     MNEMONIC,
     MNEMONICEQUIVALENCE,
     MNEMONICPATH,
-    DESCRIPTION;
+    DESCRIPTION,
+    WHEN;
 
 }
-- 
GitLab