Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

mail_owner_transfer_task.py 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. import logging
  2. import time
  3. import click
  4. from celery import shared_task
  5. from extensions.ext_mail import mail
  6. from libs.email_i18n import EmailType, get_email_i18n_service
  7. logger = logging.getLogger(__name__)
  8. @shared_task(queue="mail")
  9. def send_owner_transfer_confirm_task(language: str, to: str, code: str, workspace: str) -> None:
  10. """
  11. Send owner transfer confirmation email with internationalization support.
  12. Args:
  13. language: Language code for email localization
  14. to: Recipient email address
  15. code: Verification code
  16. workspace: Workspace name
  17. """
  18. if not mail.is_inited():
  19. return
  20. logger.info(click.style(f"Start owner transfer confirm mail to {to}", fg="green"))
  21. start_at = time.perf_counter()
  22. try:
  23. email_service = get_email_i18n_service()
  24. email_service.send_email(
  25. email_type=EmailType.OWNER_TRANSFER_CONFIRM,
  26. language_code=language,
  27. to=to,
  28. template_context={
  29. "to": to,
  30. "code": code,
  31. "WorkspaceName": workspace,
  32. },
  33. )
  34. end_at = time.perf_counter()
  35. logger.info(
  36. click.style(
  37. f"Send owner transfer confirm mail to {to} succeeded: latency: {end_at - start_at}",
  38. fg="green",
  39. )
  40. )
  41. except Exception:
  42. logger.exception("owner transfer confirm email mail to %s failed", to)
  43. @shared_task(queue="mail")
  44. def send_old_owner_transfer_notify_email_task(language: str, to: str, workspace: str, new_owner_email: str) -> None:
  45. """
  46. Send old owner transfer notification email with internationalization support.
  47. Args:
  48. language: Language code for email localization
  49. to: Recipient email address
  50. workspace: Workspace name
  51. new_owner_email: New owner email address
  52. """
  53. if not mail.is_inited():
  54. return
  55. logger.info(click.style(f"Start old owner transfer notify mail to {to}", fg="green"))
  56. start_at = time.perf_counter()
  57. try:
  58. email_service = get_email_i18n_service()
  59. email_service.send_email(
  60. email_type=EmailType.OWNER_TRANSFER_OLD_NOTIFY,
  61. language_code=language,
  62. to=to,
  63. template_context={
  64. "to": to,
  65. "WorkspaceName": workspace,
  66. "NewOwnerEmail": new_owner_email,
  67. },
  68. )
  69. end_at = time.perf_counter()
  70. logger.info(
  71. click.style(
  72. f"Send old owner transfer notify mail to {to} succeeded: latency: {end_at - start_at}",
  73. fg="green",
  74. )
  75. )
  76. except Exception:
  77. logger.exception("old owner transfer notify email mail to %s failed", to)
  78. @shared_task(queue="mail")
  79. def send_new_owner_transfer_notify_email_task(language: str, to: str, workspace: str) -> None:
  80. """
  81. Send new owner transfer notification email with internationalization support.
  82. Args:
  83. language: Language code for email localization
  84. to: Recipient email address
  85. workspace: Workspace name
  86. """
  87. if not mail.is_inited():
  88. return
  89. logger.info(click.style(f"Start new owner transfer notify mail to {to}", fg="green"))
  90. start_at = time.perf_counter()
  91. try:
  92. email_service = get_email_i18n_service()
  93. email_service.send_email(
  94. email_type=EmailType.OWNER_TRANSFER_NEW_NOTIFY,
  95. language_code=language,
  96. to=to,
  97. template_context={
  98. "to": to,
  99. "WorkspaceName": workspace,
  100. },
  101. )
  102. end_at = time.perf_counter()
  103. logger.info(
  104. click.style(
  105. f"Send new owner transfer notify mail to {to} succeeded: latency: {end_at - start_at}",
  106. fg="green",
  107. )
  108. )
  109. except Exception:
  110. logger.exception("new owner transfer notify email mail to %s failed", to)