import logging import json import base64 import dropbox from django.http import JsonResponse from django.http import HttpRequest from django.conf import settings from rest_framework.decorators import api_view logger = logging.getLogger(__name__) class TestApiClass: @staticmethod @api_view(['GET']) def test_api(request): logger.debug('Test api call: {}'.format(request)) return JsonResponse({'Result': 'success'}, safe=False) class ImageEndpoint: @staticmethod @api_view(['GET']) def image_api_get_all(request): logger.debug('Image GET all call: {}'.format(request)) return JsonResponse({'Result': 'success1'}, safe=False) @staticmethod @api_view(['GET']) def image_api_get_single(request, id): logger.debug('Image GET single call: {}'.format(request)) return JsonResponse({'Result': 'success1', 'id': id}, safe=False) @staticmethod @api_view(['POST']) def image_api_post(request: HttpRequest): logger.debug('Image POST call: {}'.format(request)) payload = json.loads(request.body.decode('utf-8')) b64encoded_image = payload['image_data'] filename = payload['filename'] metadata = payload['metadata'] decoded_image = base64.b64decode(b64encoded_image) dbx = dropbox.Dropbox(settings.DROPBOX_OAUTH2_ACCESS_TOKEN) dbx.files_upload(decoded_image,'/Apps/AIC Federated Storage Infrastructure/' + filename) return JsonResponse({'Result': 'success2', 'received file': filename, 'metadata': metadata}, safe=False)