From 059a5a7be580cc406d097a55c4cecdf6570af502 Mon Sep 17 00:00:00 2001 From: Martin Schett Date: Mon, 18 Jan 2021 21:06:47 +0100 Subject: [PATCH] Implemented status request --- middleware/app_be/views/rest_api.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/middleware/app_be/views/rest_api.py b/middleware/app_be/views/rest_api.py index 0304d99..791e08d 100644 --- a/middleware/app_be/views/rest_api.py +++ b/middleware/app_be/views/rest_api.py @@ -51,7 +51,26 @@ class ImageEndpoint: @staticmethod @api_view(['GET']) def image_api_get_status(request, identifier): - # TODO MARTIN + # get metadata from MongoDB + metadata = MongoDBService.getSingle(identifier) + if not metadata: + return JsonResponse({'valid': False, 'available': False}) + + # get stored SHA512 hash + stored_hash = metadata.get('sha512', '') + no_image = True + + for service in ImageEndpoint.storageServiceList: + service_image_bytes = service.read_file(metadata['filename']) + if service_image_bytes is not None: + no_image = False + actual_service_hash = create_sha512(service_image_bytes) + if stored_hash != actual_service_hash: + return JsonResponse({'valid': False, 'available': True}) + + if no_image: + JsonResponse({'valid': False, 'available': False}) + return JsonResponse({'valid': True, 'available': True}) @staticmethod