From 41fea1305b1a8129f6237d36c067dd6b23df2679 Mon Sep 17 00:00:00 2001 From: Jijeong Lee Date: Tue, 9 Jan 2024 12:05:25 -0800 Subject: [PATCH] handling an edge case when a label already exists in database --- emission/core/wrapper/user.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/emission/core/wrapper/user.py b/emission/core/wrapper/user.py index 8e0bc1d65..acb1d2e48 100644 --- a/emission/core/wrapper/user.py +++ b/emission/core/wrapper/user.py @@ -247,11 +247,17 @@ def insertUserCustomLabel(self, inserted_label): key = inserted_label['key'] label = inserted_label['label'] items = user[key] if key in user else {} - items[label] = { - 'createdAt': datetime.now(), - 'frequency': 0, - 'isActive': True, - } + + # if label exists in database, chage it as 'active' label + if label in items: + items[label]['isActive'] = True + else: + items[label] = { + 'createdAt': datetime.now(), + 'frequency': 0, + 'isActive': True, + } + get_profile_db().update_one({'user_id': self.uuid}, {'$set': {key: items}}) return self.getUserCustomLabel(key)