feat: 添加飞书用户模块和订阅功能支持 - 新增feishu_users模块用于处理飞书用户身份验证和权限管理 - 新增subscriptions模块用于处理订阅相关功能 - 新增personalization模块用于个性化服务 - 在alembic迁移配置中注册新的模型模块 - 在API路由器中添加feishu_users和subscriptions路由 - 实现事件调度服务的改进,包括错误处理和状态更新优化 - 添加飞书命令处理的权限检查机制 - 实现飞书应用票据事件处理 - 改进审计日志记录功能 ```
50 lines
1.4 KiB
Python
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],
|
|
}
|