taolib.testing.email_service.services.subscription_service#

订阅管理服务。

处理退订请求和订阅状态管理。

Classes#

SubscriptionService

订阅管理服务。

Module Contents#

class taolib.testing.email_service.services.subscription_service.SubscriptionService(subscription_repo: taolib.testing.email_service.repository.subscription_repo.SubscriptionRepository)#

订阅管理服务。

_repo#
async get_or_create_subscription(email: str) taolib.testing.email_service.models.subscription.SubscriptionDocument#

获取或创建订阅记录。

如果邮箱没有订阅记录,则创建一个新的激活状态记录。

参数:

email -- 邮箱地址

返回:

订阅文档

async unsubscribe(token: str, reason: str | None = None) taolib.testing.email_service.models.subscription.SubscriptionResponse#

处理退订请求。

参数:
  • token -- 退订令牌

  • reason -- 退订原因

返回:

更新后的订阅响应

抛出:

SubscriptionError -- 令牌无效或已退订

async unsubscribe_by_email(email: str, reason: str | None = None) taolib.testing.email_service.models.subscription.SubscriptionResponse | None#

按邮箱退订(用于硬退信自动退订)。

async resubscribe(email: str) taolib.testing.email_service.models.subscription.SubscriptionResponse#

重新订阅。

参数:

email -- 邮箱地址

返回:

更新后的订阅响应

抛出:

SubscriptionError -- 订阅记录不存在

async is_subscribed(email: str) bool#

检查是否订阅。

async get_unsubscribe_token(email: str) str#

获取退订令牌(自动创建订阅记录)。