From d7e2bf651b62a2a9174e2a766557052c17439047 Mon Sep 17 00:00:00 2001 From: Manuel Hude Date: Mon, 30 Nov 2020 14:23:32 +0100 Subject: [PATCH] delete functionality for metadata --- iotclient/iot_client.py | 28 ++++++++++++++++++++++++++++ middleware/app_be/urls.py | 1 + middleware/app_be/views/rest_api.py | 18 ++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/iotclient/iot_client.py b/iotclient/iot_client.py index eba5fce..d33050d 100644 --- a/iotclient/iot_client.py +++ b/iotclient/iot_client.py @@ -69,6 +69,21 @@ def get_image(identifier): return True +def delete_image(identifier): + print("Deleting image with identifier "+identifier) + + baseurl = "http://127.0.0.1:8000" + get_url = "/image/delete/"+identifier + + try: + response = requests.delete(baseurl + get_url) + payload = response.json() + print(payload) + except os.error: + print("Error deleting request") + return True + + def get_all(): print("Getting all images") @@ -132,6 +147,7 @@ while (command.lower() not in ["exit", "quit", "end"]): print("trigger - next image in line is sent to backend") print("fetch - gets the next image from database if exists") print("fetchall - get all images") + print("delete - delets the next image from db if exists") print("rapid <#amount> - next images in line are sent to backend in 2 second intervals") print("skip [<#amount>] - skips the next number of images in line or 1 if no is given") print("set <#index> - sets image on given as next in line") @@ -227,6 +243,18 @@ while (command.lower() not in ["exit", "quit", "end"]): get_all() index = index + 1 + if command.lower() == "delete": + if metadata is None: + print("No metadata loaded") + continue + if image_folder is None: + print("No image folder selected") + continue + meta_payload = metadata[index] + filename = meta_payload['filename'] + delete_image(filename[:-4]) + index = index + 1 + if command.lower() == "rapid": if metadata is None: print("No metadata loaded") diff --git a/middleware/app_be/urls.py b/middleware/app_be/urls.py index b727930..1896baa 100644 --- a/middleware/app_be/urls.py +++ b/middleware/app_be/urls.py @@ -25,6 +25,7 @@ urlpatterns = [ url(r'^test/', TestApiClass.test_api), url(r'^image/get/all$', ImageEndpoint.image_api_get_all), url(r'^image/get/(?P[\w-]+)$', ImageEndpoint.image_api_get_single), + url(r'^image/delete/(?P[\w-]+)$', ImageEndpoint.image_api_delete), url(r'^image/post$', ImageEndpoint.image_api_post) ] diff --git a/middleware/app_be/views/rest_api.py b/middleware/app_be/views/rest_api.py index 41616f0..b65a0b0 100644 --- a/middleware/app_be/views/rest_api.py +++ b/middleware/app_be/views/rest_api.py @@ -107,3 +107,21 @@ class ImageEndpoint: return JsonResponse({'id': identifier, 'filename': filename}, safe=False) # 'metadata': metadata response beinhaltet ObjectId welche nicht serializable is? + + @staticmethod + @api_view(['DELETE']) + def image_api_delete(request: HttpRequest, identifier): + + logger.debug('Image DELETE single call: {}'.format(request)) + + instance = MongoManager.getInstance() + + db = instance.AIC + col = db.metadata + + try: + col.delete_one({"identifier": identifier}) + except: + print("Could not delete Metadata") + + return JsonResponse({'Result': 'success1'}, safe=False) \ No newline at end of file