diff --git a/server/api/routes/annotations.py b/server/api/routes/annotations.py index 01c527d6716e871b533ec495261460cb791f5c95..f4385931f784cfa490c1ed1d774b6c52cf760c3c 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.')