From e50e027ea91dd2156f266e0d4bd35b9f59c50b46 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Fri, 8 Jan 2021 19:09:38 +0100 Subject: [PATCH] Rewrite update function for MongoDBService --- middleware/app_be/services/mongodbservice.py | 31 ++++++++++---------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/middleware/app_be/services/mongodbservice.py b/middleware/app_be/services/mongodbservice.py index 1e9b26d..5bbdce2 100644 --- a/middleware/app_be/services/mongodbservice.py +++ b/middleware/app_be/services/mongodbservice.py @@ -71,23 +71,24 @@ class MongoDBService: @staticmethod def updateSingle(identifier, decoded_image) -> bool: print("MongoDBService: Trying to update file with identifier " + identifier) - resp = MongoDBService.getSingle(identifier) - if resp is None: - print("Could not update Metadata: Identifier does not exist") - return False + instance = MongoManager.getInstance() + db = instance.AIC + col = db.metadata - i = 0 - while MongoDBService.getSingle(identifier + '_' + str(i)) is not None: - print("MongoDBService: Version {} exists".format(identifier + '_' + str(i))) - i = i + 1 + old = {"identifier": identifier} # Query for old version - if i == 0: - print("MongoDBService: Creating new version with identifier {}".format(identifier + '_' + str(i))) - MongoDBService.createSingle(resp, identifier + '_' + str(i), decoded_image) - else: - resp = MongoDBService.getSingle(identifier + '_' + str(i - 1)) - print("MongoDBService: Creating new version with identifier {}".format(identifier + '_' + str(i - 1))) - MongoDBService.createSingle(resp, identifier + '_' + str(i), decoded_image) + metadata_orig = MongoDBService.getSingle(identifier) + metadata_new = metadata_orig + metadata_new['previous'] = identifier + '_' + metadata_orig['version'] + metadata_new['version'] = str(int(metadata_new['version']) + 1) # Increment version by one + + identifier_changed = identifier + '_' + metadata_orig['version'] # Set identifier to include version + col.update_one(old, {"$set": {"identifier": identifier_changed, "filename": identifier_changed + '.jpg'}}) + + print("MongoDBService: Old object is ", col.find_one({"identifier": identifier_changed})) + + MongoDBService.createSingle(metadata_new, identifier, decoded_image) + print("MongoDBService: New object is ", col.find_one({"identifier": identifier})) return True