From bc3439298074e8139f9d8af8438a224616cf681a Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Mon, 31 Jul 2023 09:01:15 +0300 Subject: Fix bugs. Return resource without data items. * Fix bugs introduced while attempting pagination. * Return resource object without attached data items. --- gn3/auth/authorisation/resources/models.py | 7 +++---- gn3/auth/authorisation/resources/views.py | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'gn3/auth/authorisation') diff --git a/gn3/auth/authorisation/resources/models.py b/gn3/auth/authorisation/resources/models.py index b634a35..45d316c 100644 --- a/gn3/auth/authorisation/resources/models.py +++ b/gn3/auth/authorisation/resources/models.py @@ -243,8 +243,7 @@ def mrna_resource_data(cursor: db.DbCursor, "INNER JOIN linked_mrna_data AS lmr " "ON mr.data_link_id=lmr.data_link_id " "WHERE mr.resource_id=?") + ( - f" LIMIT {limit}" if bool(limit) else "") ( - f" LIMIT {limit} OFFSET {offset}" if bool(limit) else "")), + f" LIMIT {limit} OFFSET {offset}" if bool(limit) else "")), (str(resource_id),)) return cursor.fetchall() @@ -294,11 +293,11 @@ def resource_by_id( {"id": str(resource_id)}) row = cursor.fetchone() if row: - return attach_resource_data(cursor, Resource( + return Resource( group_by_id(conn, UUID(row["group_id"])), UUID(row["resource_id"]), row["resource_name"], resource_category_by_id(conn, row["resource_category_id"]), - bool(int(row["public"])))) + bool(int(row["public"]))) raise NotFoundError(f"Could not find a resource with id '{resource_id}'") diff --git a/gn3/auth/authorisation/resources/views.py b/gn3/auth/authorisation/resources/views.py index 2e6c244..c39d4ab 100644 --- a/gn3/auth/authorisation/resources/views.py +++ b/gn3/auth/authorisation/resources/views.py @@ -96,13 +96,13 @@ def view_resource_data(resource_id: uuid.UUID) -> Response: with require_oauth.acquire("profile group resource") as the_token: db_uri = app.config["AUTH_DB"] count_per_page = __safe_get_requests_count__("count_per_page") - page = (__safe_get_requests_page__("page") - 1) + offset = (__safe_get_requests_page__("page") - 1) with db.connection(db_uri) as conn: resource = resource_by_id(conn, the_token.user, resource_id) return jsonify(resource_data( conn, resource, - ((page * count_per_page) if bool(count_per_page) else page), + ((offset * count_per_page) if bool(count_per_page) else offset), count_per_page)) @resources.route("/data/link", methods=["POST"]) -- cgit v1.2.3