40:def _set_session_cookie(response: Response, token: str) -> None: 53:@router.post("/register", status_code=201) 54:async def register(payload: RegisterIn, request: Request, response: Response, 70:@router.post("/login") 71:async def login(payload: LoginIn, request: Request, response: Response, 85:@router.post("/logout") 86:async def logout(response: Response): 92:@router.get("/me") 93:async def me(user=Depends(get_current_user)): 101:async def google_start_impl(user): 116:@router.get("/google/start") 117:async def google_start(request: Request, user=Depends(get_current_user)): 121:@router.get("/google/callback") 122:async def google_callback(request: Request, code: str = "", state: str = "", error: str = "", === send_tasks === 46:def classify_error(msg: str) -> str: 57:def now(): 62: def on_failure(self, exc, task_id, args, kwargs, einfo): 66:@celery_app.task(bind=True, base=SendTask, name="app.tasks.send_tasks.send_one", 68:def send_one(self, campaign_id: int, campaign_recipient_id: int): 291:def _recipient_dict(r) -> dict: 297:def _plain_fallback(html: str) -> str: 304:def _unsubscribe_url(recipient, campaign) -> str: 311:def _sanitize_response(resp) -> str: 318:def _rate_window(key: str, interval: float): 340:def _reschedule(db, task, campaign_id, cr, job, delay: timedelta, reason: str): 351:def _handle_send_error(db, task, campaign, cr, job, account, attempt, error: str): 407:def _push_dlq(campaign_id, cr_id, error): 416:def _publish_control(campaign_id, action, reason=""): 425:def _publish_progress(campaign_id):