Files
JiuContinent d7db84571d ```
feat: 添加飞书用户模块和订阅功能支持

- 新增feishu_users模块用于处理飞书用户身份验证和权限管理
- 新增subscriptions模块用于处理订阅相关功能
- 新增personalization模块用于个性化服务
- 在alembic迁移配置中注册新的模型模块
- 在API路由器中添加feishu_users和subscriptions路由
- 实现事件调度服务的改进,包括错误处理和状态更新优化
- 添加飞书命令处理的权限检查机制
- 实现飞书应用票据事件处理
- 改进审计日志记录功能
```
2026-07-27 08:02:17 +08:00

50 lines
1.4 KiB
Python

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.core.database import get_db
from app.core.security import require_api_key
from app.modules.subscriptions.schemas import PushDeliveryRead, PushSubscriptionRead
from app.modules.subscriptions.services.management import SubscriptionManagementService
router = APIRouter(dependencies=[Depends(require_api_key)])
@router.get("")
def list_subscriptions(
status_filter: str | None = None,
owner_id: int | None = None,
limit: int = 100,
offset: int = 0,
db: Session = Depends(get_db),
) -> dict:
total, records = SubscriptionManagementService(db).list_all(
status_filter=status_filter,
owner_id=owner_id,
limit=limit,
offset=offset,
)
return {
"total": total,
"items": [PushSubscriptionRead.model_validate(item) for item in records],
}
@router.get("/deliveries")
def list_deliveries(
status_filter: str | None = None,
subscription_code: str | None = None,
limit: int = 100,
offset: int = 0,
db: Session = Depends(get_db),
) -> dict:
total, records = SubscriptionManagementService(db).list_deliveries(
status_filter=status_filter,
subscription_code=subscription_code,
limit=limit,
offset=offset,
)
return {
"total": total,
"items": [PushDeliveryRead.model_validate(item) for item in records],
}