Source code for swh.deposit.api.private.deposit_releases
# Copyright (C) 2024 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
from typing import Any, Tuple
from rest_framework import status
from swh.deposit.api.common import APIGet
from swh.deposit.api.private import APIPrivateView
from swh.deposit.api.utils import DepositSerializer
from swh.deposit.models import Deposit
from swh.deposit.utils import get_releases
[docs]
class APIReleases(APIPrivateView, APIGet):
    """Deposit request class to list releases related to a deposit.
    HTTP verbs supported: GET
    """
[docs]
    def process_get(
        self, request, collection_name: str, deposit: Deposit
    ) -> Tuple[int, Any, str]:
        """Create a list of releases related to the ``deposit``.
        Args:
            request (Request):
            collection_name: Collection owning the deposit
            deposit: Deposit concerned by the reading
        Returns:
            Tuple status, a list of deposits as dicts (sorted by increasing date),
            content-type
        """
        releases = DepositSerializer(get_releases(deposit), many=True)
        return status.HTTP_200_OK, releases.data, "application/json"