|
19 | 19 | from sqlalchemy import and_, nullslast, or_, select |
20 | 20 | from sqlalchemy.orm import aliased |
21 | 21 | from sqlalchemy.exc import IntegrityError |
| 22 | +import marshmallow |
22 | 23 | from webargs import fields, validate |
23 | 24 | from webargs.flaskparser import use_args, use_kwargs |
24 | 25 | from reana_commons.config import WORKFLOW_TIME_FORMAT |
|
80 | 81 | { |
81 | 82 | "include_progress": fields.Bool(), |
82 | 83 | "include_workspace_size": fields.Bool(), |
83 | | - "search": fields.String(missing=""), |
84 | | - "sort": fields.String(missing="desc"), |
85 | | - "status": fields.String(missing=""), |
| 84 | + "search": fields.String(load_default=""), |
| 85 | + "sort": fields.String(load_default="desc"), |
| 86 | + "status": fields.String(load_default=""), |
86 | 87 | "type": fields.String(required=True), |
87 | 88 | "user": fields.String(required=True), |
88 | | - "verbose": fields.Bool(missing=False), |
| 89 | + "verbose": fields.Bool(load_default=False), |
89 | 90 | "workflow_id_or_name": fields.String(), |
90 | | - "shared": fields.Bool(missing=False), |
| 91 | + "shared": fields.Bool(load_default=False), |
91 | 92 | "shared_by": fields.String(), |
92 | 93 | "shared_with": fields.String(), |
93 | 94 | }, |
94 | 95 | location="query", |
| 96 | + unknown=marshmallow.EXCLUDE, |
95 | 97 | ) |
96 | 98 | def get_workflows(args, paginate=None): # noqa |
97 | 99 | r"""Get all workflows. |
@@ -318,7 +320,7 @@ def get_workflows(args, paginate=None): # noqa |
318 | 320 |
|
319 | 321 | try: |
320 | 322 |
|
321 | | - user = User.query.filter(User.id_ == user_uuid).first() |
| 323 | + user = Session.query(User).filter(User.id_ == user_uuid).first() |
322 | 324 | if not user: |
323 | 325 | return jsonify({"message": "User {} does not exist".format(user_uuid)}), 404 |
324 | 326 |
|
@@ -590,7 +592,7 @@ def create_workflow(): # noqa |
590 | 592 | """ |
591 | 593 | try: |
592 | 594 | user_uuid = request.args["user"] |
593 | | - user = User.query.filter(User.id_ == user_uuid).first() |
| 595 | + user = Session.query(User).filter(User.id_ == user_uuid).first() |
594 | 596 | if not user: |
595 | 597 | return ( |
596 | 598 | jsonify( |
@@ -946,7 +948,9 @@ def get_workflow_diff(workflow_id_or_name_a, workflow_id_or_name_b): # noqa |
946 | 948 |
|
947 | 949 |
|
948 | 950 | @blueprint.route("/workflows/<workflow_id_or_name>/retention_rules") |
949 | | -@use_kwargs({"user": fields.Str(required=True)}, location="query") |
| 951 | +@use_kwargs( |
| 952 | + {"user": fields.Str(required=True)}, location="query", unknown=marshmallow.EXCLUDE |
| 953 | +) |
950 | 954 | def get_workflow_retention_rules(workflow_id_or_name: str, user: str): |
951 | 955 | r"""Get the retention rules of a workflow. |
952 | 956 |
|
@@ -1058,7 +1062,9 @@ def get_workflow_retention_rules(workflow_id_or_name: str, user: str): |
1058 | 1062 |
|
1059 | 1063 |
|
1060 | 1064 | @blueprint.route("/workflows/<workflow_id_or_name>/share", methods=["POST"]) |
1061 | | -@use_kwargs({"user": fields.Str(required=True)}, location="query") |
| 1065 | +@use_kwargs( |
| 1066 | + {"user": fields.Str(required=True)}, location="query", unknown=marshmallow.EXCLUDE |
| 1067 | +) |
1062 | 1068 | @use_kwargs( |
1063 | 1069 | { |
1064 | 1070 | "user_email_to_share_with": fields.Str(required=True), |
@@ -1170,7 +1176,7 @@ def share_workflow( |
1170 | 1176 | valid_until = kwargs.get("valid_until") |
1171 | 1177 |
|
1172 | 1178 | try: |
1173 | | - sharer = User.query.filter(User.id_ == user).first() |
| 1179 | + sharer = Session.query(User).filter(User.id_ == user).first() |
1174 | 1180 | if not sharer: |
1175 | 1181 | return ( |
1176 | 1182 | jsonify({"message": f"User with id '{user}' does not exist."}), |
@@ -1243,6 +1249,7 @@ def share_workflow( |
1243 | 1249 | "user_email_to_unshare_with": fields.Str(required=True), |
1244 | 1250 | }, |
1245 | 1251 | location="query", |
| 1252 | + unknown=marshmallow.EXCLUDE, |
1246 | 1253 | ) |
1247 | 1254 | def unshare_workflow( |
1248 | 1255 | workflow_id_or_name: str, user: str, user_email_to_unshare_with: str |
@@ -1362,7 +1369,7 @@ def unshare_workflow( |
1362 | 1369 | } |
1363 | 1370 | """ |
1364 | 1371 | try: |
1365 | | - sharer = User.query.filter(User.id_ == user).first() |
| 1372 | + sharer = Session.query(User).filter(User.id_ == user).first() |
1366 | 1373 | if not sharer: |
1367 | 1374 | return ( |
1368 | 1375 | jsonify({"message": f"User with id '{sharer}' does not exist."}), |
@@ -1411,7 +1418,9 @@ def unshare_workflow( |
1411 | 1418 |
|
1412 | 1419 |
|
1413 | 1420 | @blueprint.route("/workflows/<workflow_id_or_name>/share-status", methods=["GET"]) |
1414 | | -@use_kwargs({"user": fields.Str(required=True)}, location="query") |
| 1421 | +@use_kwargs( |
| 1422 | + {"user": fields.Str(required=True)}, location="query", unknown=marshmallow.EXCLUDE |
| 1423 | +) |
1415 | 1424 | def get_workflow_share_status( |
1416 | 1425 | workflow_id_or_name: str, |
1417 | 1426 | user: str, |
|
0 commit comments