def contracts_set_to_expire():
expiring_contracts = []
for contract in Contract.query.all():
try:
user = User.query.filter(User.id==contract.user_id).one()
except (NoResultFound, MultipleResultsFound) as e:
err = "No valid user associated with contract (id={}).".format(contract.id)
print_log(err)
raise InvalidUsage(message=err, status_code=500)
today = datetime.today()
expiration_date = contract.expiration
notif_days = timedelta(days=user.notif_days)
notifs_are_ready = (today - notif_days) <= expiration_date
is_notif_day = (today - (expiration_date - notif_days)).days % user.notif_freq == 0
if notifs_are_ready and is_notif_day:
expiring_contracts.append(contract)
return expiring_contracts
评论列表
文章目录