Skip to content

Commit

Permalink
update modes frequency
Browse files Browse the repository at this point in the history
Increase new mode frequency(+1) and decrease old frequency(-1)
  • Loading branch information
jiji14 committed Dec 8, 2023
1 parent 3074f4e commit 42fb3b6
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
26 changes: 19 additions & 7 deletions emission/core/wrapper/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,17 +236,29 @@ def getModes(self):
sortedModes = dict(sorted(filteredModes.items(), key=lambda x: (x[1]["frequency"]), reverse=True))
return sortedModes

def insertMode(self, mode):
def updateModes(self, updated_mode):
from datetime import datetime
modes = self.getModes()
if mode in modes:
modes[mode]['frequency'] = modes[mode]['frequency'] + 1
else:
modes[mode] = {
user = get_profile_db().find_one({'user_id': self.uuid})
modes = user['modes']
old_mode = updated_mode['old_mode']
new_mode = updated_mode['new_mode']
is_new_mode_must_added = updated_mode['is_new_mode_must_added']

if new_mode in modes:
updated_frequency = modes[new_mode]['frequency'] + 1
modes[new_mode]['frequency'] = updated_frequency

if is_new_mode_must_added and not new_mode in modes:
modes[new_mode] = {
'createdAt': datetime.now(),
'frequency': 1,
'isActive': True,
}

if old_mode in modes:
updated_frequency = modes[old_mode]['frequency'] - 1
modes[old_mode]['frequency'] = updated_frequency

get_profile_db().update_one({'user_id': self.uuid}, {'$set': {'modes': modes}})
return modes
return self.getModes()

10 changes: 5 additions & 5 deletions emission/net/api/cfc_webapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,14 +313,14 @@ def getUserModes():
user = User.fromUUID(user_uuid)
return user.getModes()

@post('/mode/create')
def createUserMode():
@post('/mode/update')
def updateUserMode():
logging.debug("Called createUserMode")
new_mode = request.json['mode']
updated_mode = request.json['updated_mode']
user_uuid = getUUID(request)
user = User.fromUUID(user_uuid)
to_return = user.insertMode(new_mode)
logging.debug("Successfully created mode for user %s" % user_uuid)
to_return = user.updateModes(updated_mode)
logging.debug("Successfully updated mode for user %s" % user_uuid)
return {"modes": to_return}

@post('/result/metrics/<time_type>')
Expand Down

0 comments on commit 42fb3b6

Please sign in to comment.