37 lines
1 KiB
Python
37 lines
1 KiB
Python
from django.views.generic.edit import View
|
|
from django.http import JsonResponse
|
|
|
|
from evidence.xapian import search
|
|
from dpp.models import Proof
|
|
from dpp.api_dlt import ALGORITHM
|
|
|
|
|
|
class ProofView(View):
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
timestamp = kwargs.get("proof_id")
|
|
proof = Proof.objects.filter(timestamp=timestamp).first()
|
|
if not proof:
|
|
return JsonResponse({}, status=404)
|
|
|
|
ev_uuid = 'uuid:"{}"'.format(proof.uuid)
|
|
matches = search(None, ev_uuid, limit=1)
|
|
if not matches or matches.size() < 1:
|
|
return JsonResponse({}, status=404)
|
|
|
|
for x in matches:
|
|
snap = x.document.get_data()
|
|
|
|
data = {
|
|
"algorithm": ALGORITHM,
|
|
"document": snap
|
|
}
|
|
|
|
d = {
|
|
'@context': ['https://ereuse.org/proof0.json'],
|
|
'data': data,
|
|
}
|
|
return JsonResponse(d, status=200)
|
|
|
|
return JsonResponse({}, status=404)
|