Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F6930306
D7308.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
D7308.diff
View Options
diff --git a/swh/deposit/api/private/deposit_list.py b/swh/deposit/api/private/deposit_list.py
--- a/swh/deposit/api/private/deposit_list.py
+++ b/swh/deposit/api/private/deposit_list.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2021 The Software Heritage developers
+# Copyright (C) 2018-2022 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
@@ -22,8 +22,32 @@
serializer_class = DepositSerializer
pagination_class = DefaultPagination
+ def paginate_queryset(self, queryset):
+ """Return a single page of results. This enriches the queryset results with
+ metadata if any.
+
+ """
+ page_result = self.paginator.paginate_queryset(
+ queryset, self.request, view=self
+ )
+
+ deposits = []
+ for deposit in page_result:
+ deposit_requests = deposit.depositrequest_set.filter(
+ type="metadata"
+ ).order_by("-id")
+ # enrich deposit with raw metadata when we have some
+ if deposit_requests and len(deposit_requests) > 0:
+ raw_meta = deposit_requests[0].raw_metadata
+ if raw_meta:
+ deposit.set_raw_metadata(raw_meta)
+
+ deposits.append(deposit)
+
+ return deposits
+
def get_queryset(self):
- """Retrieve iterable of deposits (with some optional filtering)."""
+ """Retrieve queryset of deposits (with some optional filtering)."""
params = self.request.query_params
exclude_like = params.get("exclude")
username = params.get("username")
@@ -41,17 +65,4 @@
# https://docs.djangoproject.com/en/3.0/topics/security/#sql-injection-protection # noqa
deposits_qs = deposits_qs.exclude(external_id__startswith=exclude_like)
- deposits = []
- for deposit in deposits_qs.order_by("id"):
- deposit_requests = deposit.depositrequest_set.filter(
- type="metadata"
- ).order_by("-id")
- # enrich deposit with raw metadata when we have some
- if deposit_requests and len(deposit_requests) > 0:
- raw_meta = deposit_requests[0].raw_metadata
- if raw_meta:
- deposit.set_raw_metadata(raw_meta)
-
- deposits.append(deposit)
-
- return deposits
+ return deposits_qs.order_by("id")
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Jul 27 2024, 10:58 AM (11 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3216883
Attached To
D7308: deposit_list: Only enrich deposit metadata in page
Event Timeline
Log In to Comment