ForcePilot/backend/package/yuxi/channel/interfaces/rest/dto/idempotency.py
Kris 9e503becd3
Some checks failed
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
feat(plugin): 实现完整的插件注册管理系统
新增了插件相关的完整领域模型、应用服务、基础设施实现,包括:
1. 插件状态、注册模式、来源等基础枚举和数据结构
2. 插件清单解析、发现、加载工具类
3. 插件注册表领域服务和内存存储实现
4. 插件相关的命令、查询、事件定义
5. 插件REST API接口和DTO映射
6. 集成了原有通道适配器到插件系统
7. 新增内置插件注册和自动发现能力
2026-05-31 16:44:13 +08:00

16 lines
532 B
Python

from __future__ import annotations
from uuid import uuid4
def resolve_idempotency_key(raw: dict, headers: dict[str, str], channel_type: str) -> str:
header_key = headers.get("idempotency-key", "")
if header_key:
return header_key
if channel_type == "feishu":
return raw.get("header", {}).get("event_id", str(uuid4()))
if channel_type == "dingtalk":
return raw.get("msgId", str(uuid4()))
trace_id = raw.get("trace_id", headers.get("x-trace-id", ""))
return trace_id or str(uuid4())