From f0a82307cc602ab47e5aef58505acf918cf4aa79 Mon Sep 17 00:00:00 2001
From: Tim Repke <repke@mcc-berlin.net>
Date: Mon, 18 Dec 2023 15:41:22 +0100
Subject: [PATCH] assignment with nql

---
 server/api/routes/annotations.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/server/api/routes/annotations.py b/server/api/routes/annotations.py
index 01c527d..f438593 100644
--- a/server/api/routes/annotations.py
+++ b/server/api/routes/annotations.py
@@ -73,6 +73,7 @@ from nacsos_data.util.annotations.validation import (
 )
 from nacsos_data.util.annotations.assignments.random import random_assignments
 from nacsos_data.util.annotations.assignments.random_exclusion import random_assignments_with_exclusion
+from nacsos_data.util.annotations.assignments.random_nql import random_assignments_with_nql
 
 from server.api.errors import (
     SaveFailedError,
@@ -389,6 +390,17 @@ async def make_assignments(payload: MakeAssignmentsRequestModel,
         except ValueError as e:
             raise HTTPException(status_code=http_status.HTTP_400_BAD_REQUEST,
                                 detail=str(e))
+    elif payload.config.config_type == 'random_nql':
+        try:
+            assignments = await random_assignments_with_nql(
+                assignment_scope_id=payload.scope_id,
+                annotation_scheme_id=payload.annotation_scheme_id,
+                project_id=permissions.permissions.project_id,
+                config=payload.config,  # type: ignore[arg-type] # FIXME
+                engine=db_engine)
+        except ValueError as e:
+            raise HTTPException(status_code=http_status.HTTP_400_BAD_REQUEST,
+                                detail=str(e))
     else:
         raise HTTPException(status_code=http_status.HTTP_501_NOT_IMPLEMENTED,
                             detail=f'Method "{payload.config.config_type}" is unknown.')
-- 
GitLab