Rewrite update function for MongoDBService
This commit is contained in:
parent
f05571a81d
commit
e50e027ea9
@ -71,23 +71,24 @@ class MongoDBService:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def updateSingle(identifier, decoded_image) -> bool:
|
def updateSingle(identifier, decoded_image) -> bool:
|
||||||
print("MongoDBService: Trying to update file with identifier " + identifier)
|
print("MongoDBService: Trying to update file with identifier " + identifier)
|
||||||
resp = MongoDBService.getSingle(identifier)
|
instance = MongoManager.getInstance()
|
||||||
if resp is None:
|
db = instance.AIC
|
||||||
print("Could not update Metadata: Identifier does not exist")
|
col = db.metadata
|
||||||
return False
|
|
||||||
|
|
||||||
i = 0
|
old = {"identifier": identifier} # Query for old version
|
||||||
while MongoDBService.getSingle(identifier + '_' + str(i)) is not None:
|
|
||||||
print("MongoDBService: Version {} exists".format(identifier + '_' + str(i)))
|
|
||||||
i = i + 1
|
|
||||||
|
|
||||||
if i == 0:
|
metadata_orig = MongoDBService.getSingle(identifier)
|
||||||
print("MongoDBService: Creating new version with identifier {}".format(identifier + '_' + str(i)))
|
metadata_new = metadata_orig
|
||||||
MongoDBService.createSingle(resp, identifier + '_' + str(i), decoded_image)
|
metadata_new['previous'] = identifier + '_' + metadata_orig['version']
|
||||||
else:
|
metadata_new['version'] = str(int(metadata_new['version']) + 1) # Increment version by one
|
||||||
resp = MongoDBService.getSingle(identifier + '_' + str(i - 1))
|
|
||||||
print("MongoDBService: Creating new version with identifier {}".format(identifier + '_' + str(i - 1)))
|
identifier_changed = identifier + '_' + metadata_orig['version'] # Set identifier to include version
|
||||||
MongoDBService.createSingle(resp, identifier + '_' + str(i), decoded_image)
|
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
|
return True
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user