Source code for swh.deposit.api.content
# Copyright (C) 2017-2020 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 django.http import HttpResponse
from django.shortcuts import render
from rest_framework import status
from swh.deposit.api.common import APIBase, get_deposit_by_id
from swh.deposit.models import DEPOSIT_STATUS_DETAIL, DepositRequest
[docs]
class ContentAPI(APIBase):
"""Deposit request class defining api endpoints for sword deposit.
What's known as 'Cont-IRI' and 'File-IRI' in the sword specification.
HTTP verbs supported: GET
"""
[docs]
def get( # type: ignore
self, req, collection_name: str, deposit_id: int
) -> HttpResponse:
deposit = get_deposit_by_id(deposit_id, collection_name)
self.checks(req, collection_name, deposit)
requests = DepositRequest.objects.filter(deposit=deposit)
context = {
"deposit": deposit,
"status_detail": DEPOSIT_STATUS_DETAIL[deposit.status],
"requests": requests,
}
return render(
req,
"deposit/content.xml",
context=context,
content_type="application/xml",
status=status.HTTP_200_OK,
)