ForcePilot/backend/package/yuxi/channel/extensions/freshdesk/status.py
Kris 3e861d6cd1 feat(freshdesk): 新增Freshdesk/Freshchat渠道插件
实现完整的Freshdesk和Freshchat集成支持,包含会话守卫、错误定义、消息去重、配置管理、webhook处理、出站消息发送、状态监控、安全校验、配对功能和流式回复支持
2026-05-21 10:47:20 +08:00

31 lines
1.1 KiB
Python

import logging
from yuxi.channel.extensions.freshdesk.types import FreshdeskAccount, FreshdeskMode
logger = logging.getLogger(__name__)
class FreshdeskStatus:
async def probe(self, account: FreshdeskAccount | None = None, client=None) -> bool:
if account is None or client is None:
return False
try:
if account.mode in (FreshdeskMode.FRESHCHAT, FreshdeskMode.BOTH):
me = await client.fc_get_me()
if not me.get("id"):
return False
if account.mode in (FreshdeskMode.FRESHDESK, FreshdeskMode.BOTH):
me = await client.fd_get_me()
if not me.get("id"):
return False
return True
except Exception:
logger.exception("Freshdesk status probe failed")
return False
def build_summary(self, snapshot: object) -> dict:
return {
"freshchat_account": getattr(snapshot, "freshchat_account_name", ""),
"freshdesk_agent": getattr(snapshot, "freshdesk_agent_name", ""),
}