def new_notification(body): """ Sends a new notification to a user """ noti = Notification() noti.user_id = body['user_id'] try: sent_on = parser.isoparse(body['sent_on']) if sent_on > datetime.datetime.now(): return make_error("Invalid sent_on date"), 400 noti.sent_on = parser.isoparse(body['sent_on']) except ValueError: return make_error("Invalid sent_on date"), 400 if 'read_on' in body: try: read_on = parser.isoparse(body['read_on']) if read_on > datetime.datetime.now() or read_on < noti.sent_on: return make_error("Invalid read_on date"), 400 noti.read_on = read_on except ValueError: return make_error("Invalid read_on date"), 400 noti.content = body['content'] db.session.add(noti) db.session.commit() return noti.serialize(), 201