feat: 完善 Telegram 推送通知功能
- 推送模板优化: - 优先使用账户名称而不是钱包地址 - 使用市场标题而不是16进制ID - 添加可点击的市场链接(支持 slug 和 conditionId) - 添加市场方向(outcome)显示 - 数量和价格从订单详情API获取实际值 - 失败通知只显示后端返回的msg,不显示完整堆栈 - 多语言支持: - 后端推送消息支持多语言(使用前端最后请求的语言) - 添加所有 ErrorCode 的多语言资源文件(中文简体、繁体、英文) - 通知消息文本全部使用多语言资源 - 功能改进: - 从订单详情获取实际的 side、price、size、outcome - 支持买入/卖出方向的多语言显示 - 错误信息优化,只显示后端返回的错误消息
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import axios, { AxiosInstance, AxiosError } from 'axios'
|
||||
import type { ApiResponse } from '../types'
|
||||
import type { ApiResponse, NotificationConfig, NotificationConfigRequest, NotificationConfigUpdateRequest } from '../types'
|
||||
import { getToken, setToken, removeToken } from '../utils'
|
||||
import { wsManager } from './websocket'
|
||||
import i18n from '../i18n/config'
|
||||
@@ -474,6 +474,59 @@ export const apiService = {
|
||||
responseTime?: number
|
||||
}>
|
||||
}>>('/proxy-config/api-health-check', {})
|
||||
},
|
||||
|
||||
/**
|
||||
* 消息推送配置 API
|
||||
*/
|
||||
notifications: {
|
||||
/**
|
||||
* 获取配置列表
|
||||
*/
|
||||
list: (data?: { type?: string }) =>
|
||||
apiClient.post<ApiResponse<NotificationConfig[]>>('/notifications/configs/list', data || {}),
|
||||
|
||||
/**
|
||||
* 获取配置详情
|
||||
*/
|
||||
detail: (data: { id: number }) =>
|
||||
apiClient.post<ApiResponse<NotificationConfig>>('/notifications/configs/detail', data),
|
||||
|
||||
/**
|
||||
* 创建配置
|
||||
*/
|
||||
create: (data: NotificationConfigRequest) =>
|
||||
apiClient.post<ApiResponse<NotificationConfig>>('/notifications/configs/create', data),
|
||||
|
||||
/**
|
||||
* 更新配置
|
||||
*/
|
||||
update: (data: NotificationConfigUpdateRequest) =>
|
||||
apiClient.post<ApiResponse<NotificationConfig>>('/notifications/configs/update', data),
|
||||
|
||||
/**
|
||||
* 更新启用状态
|
||||
*/
|
||||
updateEnabled: (data: { id: number; enabled: boolean }) =>
|
||||
apiClient.post<ApiResponse<NotificationConfig>>('/notifications/configs/update-enabled', data),
|
||||
|
||||
/**
|
||||
* 删除配置
|
||||
*/
|
||||
delete: (data: { id: number }) =>
|
||||
apiClient.post<ApiResponse<void>>('/notifications/configs/delete', data),
|
||||
|
||||
/**
|
||||
* 测试通知
|
||||
*/
|
||||
test: (data?: { message?: string }) =>
|
||||
apiClient.post<ApiResponse<boolean>>('/notifications/test', data || {}),
|
||||
|
||||
/**
|
||||
* 获取 Telegram Chat IDs
|
||||
*/
|
||||
getTelegramChatIds: (data: { botToken: string }) =>
|
||||
apiClient.post<ApiResponse<string[]>>('/notifications/telegram/get-chat-ids', data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user