def add_new_record(email, addresses):
	email = utils.reformat_email_address(email)
	with open(config.SEEN_EMAIL_DATA_FILE_PATH, 'r') as f:
		seen_email_data = json.loads(f.read())

	seen_email_data = data_handling.add_entry(email, addresses, seen_email_data)
	seen_email_data = data_handling.mark_existing_entry_active(email, seen_email_data)

	with open(config.SEEN_EMAIL_DATA_FILE_PATH, 'w') as f:
		f.write(json.dumps(seen_email_data))
def update_for_sent_voters(sender, voters_to_add, seen_email_data):
    sender = utils.reformat_email_address(
        sender)  # note that it was probably already reformatted by NewEmail
    entry = seen_email_data.get(sender)

    if entry:
        seen_email_data[sender] = add_voters_to_entry(voters_to_add,
                                                      seen_email_data[sender])
    else:
        seen_email_data = add_entry(sender, voters_to_add, seen_email_data)
    return seen_email_data
def convert_seen_data_old_to_new_format(old, new=None):
	"""
	Old format was [...{'email_address': str, 'active': str, 'sent_voter_addresses': [...str...]}...]
	New format is {...actual email of volunteer: {'sender': a.e.o.v., 'voters': [...str...], 'active': str}...}
	:param old: some old seen data
	:param new: optionally you can add to an already existing new dataset
	:return: dict()
	"""
	if not new:
		new = dict()

	for volunteer_entry in old:
		reformatted_email = utils.reformat_email_address(volunteer_entry['email_address'])
		new_entry = dict(
			sender=reformatted_email,
			voters=volunteer_entry['sent_voter_addresses'],
			active=volunteer_entry['active']
		)
		if new.get(reformatted_email):
			new[reformatted_email].update(new_entry)
		else:
			new[reformatted_email] = new_entry
	return new
def check_if_seen(email):
	email = utils.reformat_email_address(email)
	with open(config.SEEN_EMAIL_DATA_FILE_PATH, 'r') as f:
		data = json.loads(f.read())
	return data.get(email)