def replace(pid: str, cid: str, datas: list[dict[str, Any]]) -> None: ''' Replace Args: pid (str): Project id. cid (str): Campaign id. datas (list): List of receiver datas. `name`, `mail` are required or include `uid` for auto replace the `name`, `mail` value. ''' sender_receiver_db = SenderReceiverDB() sender_receiver_db.remove_past(pid=pid, cid=cid) uids = [] for data in datas: if 'uid' in data and data['uid']: uids.append(data['uid']) user_infos = User.get_info(uids=uids) user_info_uids = {} for uid, data in user_infos.items(): user_info_uids[uid] = { 'name': data['profile']['badge_name'], 'mail': data['oauth']['email'], } save_datas = [] for data in datas: if 'uid' in data and data['uid'] and data['uid'] in user_info_uids: _data = SenderReceiverDB.new(pid=pid, cid=cid, name=user_info_uids[data['uid'] ]['name'], mail=user_info_uids[data['uid'] ]['mail'], ) else: _data = SenderReceiverDB.new( pid=pid, cid=cid, name=data['name'], mail=data['mail']) _data['data'].update(data) save_datas.append(_data) sender_receiver_db.update_data(pid=pid, cid=cid, datas=save_datas)
def update(pid, cid, datas): ''' Update :param str pid: pid :param str cid: cid :param list datas: list of dict data ''' save_datas = [] for data in datas: _data = SenderReceiverDB.new(pid=pid, cid=cid, name=data['name'], mail=data['mail']) _data['data'].update(data) save_datas.append(_data) SenderReceiverDB().update_data(pid=pid, cid=cid, datas=save_datas)
def replace(pid, cid, datas): ''' Replace :param str pid: pid :param str cid: cid :param list datas: list of dict data ''' sender_receiver_db = SenderReceiverDB() sender_receiver_db.remove_past(pid=pid, cid=cid) save_datas = [] for data in datas: _data = SenderReceiverDB.new(pid=pid, cid=cid, name=data['name'], mail=data['mail']) _data['data'].update(data) save_datas.append(_data) sender_receiver_db.update_data(pid=pid, cid=cid, datas=save_datas)