def set_data(cls, receiver, field, value, uid=None): key = rds_key_for_receiver(receiver) datas = cls.get_data(receiver) for i, d in enumerate(datas): if (uid and d.get('uid') == uid) or (uid is None): d[field] = value raw_d = json.dumps(d, cls=CJsonEncoder) rds.lset(key, i, raw_d)
def mark_as_read_by_pull(cls, receiver, project_name, pull_number): key = rds_key_for_receiver(receiver) actions = cls.get_data(receiver) for i, d in enumerate(actions): # scope if d.get('scope') != 'project': continue # project name if d.get('target') != project_name: continue if 'pull' not in d.get('type'): continue # pull id if d.get('entry_id') != int(pull_number): continue d['read'] = True raw_d = json.dumps(d, cls=CJsonEncoder) rds.lset(key, i, raw_d)