This commit is contained in:
relikd
2023-10-02 23:39:20 +02:00
commit 8629b01da3
47 changed files with 1412 additions and 0 deletions

32
backend/app/views.py Normal file
View File

@@ -0,0 +1,32 @@
from django.conf import settings
from django.http import HttpRequest, HttpResponse
from django.shortcuts import get_object_or_404
from django.views import View
from django.views.static import serve
from app.models import Member
class EncryptedJsonREST(View):
http_method_names = ['get']
def get(self, request: HttpRequest, *args, **kwargs):
return serveStaticJson(request, **kwargs)
# return serveDynamicJson(**kwargs)
def memberOr404(kwargs: 'dict[str, str]'):
org, uuid = kwargs['org'], kwargs['uuid']
return get_object_or_404(Member, uuid=uuid, organization__slug=org)
def serveStaticJson(request: HttpRequest, **kwargs):
org, uuid = kwargs['org'], kwargs['uuid']
return serve(
request, path=f'{org}/{uuid}', document_root=settings.EXPORT_PATH)
def serveDynamicJson(**kwargs):
mem = memberOr404(kwargs)
return HttpResponse(
mem.json_encrypted, content_type='application/octet-stream')