Page MenuHomeSoftware Heritage

D7308.diff
No OneTemporary

D7308.diff

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

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

Event Timeline