From 1c1409104c7b24937fdadbb7d60e3800c421df0c Mon Sep 17 00:00:00 2001
From: Mattia Mancini <mancini@astron.nl>
Date: Thu, 27 Jan 2022 15:33:35 +0100
Subject: [PATCH] First commit

---
 atdb/requirements/base.txt |  2 +-
 atdb/taskdatabase/urls.py  |  3 +++
 atdb/taskdatabase/views.py | 15 +++++++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/atdb/requirements/base.txt b/atdb/requirements/base.txt
index c52d7065..ac71b471 100644
--- a/atdb/requirements/base.txt
+++ b/atdb/requirements/base.txt
@@ -1,7 +1,7 @@
 Django==3.1.4
 djangorestframework==3.12.2
 django-filter==2.3.0
-psycopg2==2.8.6
+psycopg2-binary==2.9.3
 django-cors-headers==3.6.0
 django-extensions==3.1.0
 django-bootstrap-pagination==1.7.0
diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py
index df6c25f0..e669d729 100644
--- a/atdb/taskdatabase/urls.py
+++ b/atdb/taskdatabase/urls.py
@@ -61,6 +61,9 @@ urlpatterns = [
     path('tasks/get_size/', views.GetSizeView.as_view(), name='get-size-view'),
     # /atdb/get_min_start_and_max_end_time?sas_id=65005
     path('get_min_start_and_max_end_time/', views.GetMinMaxTimeView.as_view(), name='get-min-start-and-max-end-time-view'),
+    # /atdb/get_unique_values_for_key/<aggregation_key>
+    path('get_unique_values_for_key/<str:aggregation_key>', views.GetUniqueValuesForKey.as_view(),
+         name='get-unique-values-for-key-view'),
 
     # --- controller resources ---
     path('tasks/<int:pk>/setstatus/<new_status>/<page>', views.TaskSetStatus, name='task-setstatus-view'),
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index a3542fd6..f71b1d0f 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -777,6 +777,21 @@ class GetMinMaxTimeView(generics.ListAPIView):
                 'start_time': start_time,
                 'end_time': end_time,
             })
+        except Exception as error:
+            return Response({
+                'error': str(error)
+            })
+
+# /atdb/get_unique_values_for_key/{key}
+class GetUniqueValuesForKey(generics.ListAPIView):
+    queryset = Task.objects.all()
+
+    # override list and generate a custom response
+    def list(self, request, aggregation_key, **kwargs):
+        try:
+            print(aggregation_key)
+            return Response({'aggregation_key': aggregation_key
+            })
         except Exception as error:
             return Response({
                 'error': str(error)
-- 
GitLab