From accaac399a7ec1c5fb93001bf78bb382b686d7e0 Mon Sep 17 00:00:00 2001 From: Kinplemelon Date: Fri, 10 May 2024 20:21:31 +0800 Subject: [PATCH] refactor(rule): add label for some log block --- src/hooks/Rule/rule/useDebugRule.ts | 12 +--- src/hooks/Rule/rule/useFormatDebugLog.ts | 66 +++++++++++++++++-- src/i18n/RuleEngine.js | 22 ++++++- .../RuleEngine/components/LogDataDisplay.vue | 11 ++-- .../RuleEngine/components/MockDataDrawer.vue | 8 +-- src/views/RuleEngine/components/RuleTest.vue | 4 ++ 6 files changed, 94 insertions(+), 29 deletions(-) diff --git a/src/hooks/Rule/rule/useDebugRule.ts b/src/hooks/Rule/rule/useDebugRule.ts index 04bfb6bd0..b3cfaa5aa 100644 --- a/src/hooks/Rule/rule/useDebugRule.ts +++ b/src/hooks/Rule/rule/useDebugRule.ts @@ -146,16 +146,8 @@ export default () => { syncPolling(getNewestLog, 1500) } - const submitMockDataForTestRule = async (ruleId: string, data: Record) => { - try { - await applyRuleTest(ruleId, data) - if (!needPolling.value) { - needPolling.value = true - startPolling() - } - } catch (error) { - // - } + const submitMockDataForTestRule = (ruleId: string, data: Record) => { + return applyRuleTest(ruleId, data) } /** diff --git a/src/hooks/Rule/rule/useFormatDebugLog.ts b/src/hooks/Rule/rule/useFormatDebugLog.ts index 7cf754ef3..f9b51422b 100644 --- a/src/hooks/Rule/rule/useFormatDebugLog.ts +++ b/src/hooks/Rule/rule/useFormatDebugLog.ts @@ -21,6 +21,9 @@ export const enum LogMsg { ActionSuccess = 'action_success', ActionTemplateRendered = 'action_template_rendered', AsyncSendMsgToRemoteNode = 'async_send_msg_to_remote_node', + OutOfService = 'out_of_service', + ActionFailed = 'action_failed', + RequestExpired = 'request_expired', /* Do Not Need Start */ CallActionFunction = 'call_action_function', RepublishMessage = 'republish_message', @@ -101,6 +104,8 @@ type TargetLogGenerator = (log: TargetLogInfo) => TargetLogInfo const detectLogItemResult = (log: LogItem): boolean => { if (log.meta.reason) { return log.msg !== LogMsg.StopRendering ? false : true + } else if (log.msg === LogMsg.OutOfService) { + return false } return true } @@ -118,7 +123,10 @@ const detectRuleExecLogArrResult = (logArr: Array): LogResult => { } const detectActionLogArrResult = (logArr: Array): LogResult => { - if (logArr.length === 0 || logArr.every(({ meta }) => !meta.result && !meta.reason)) { + if ( + logArr.length === 0 || + logArr.every(({ meta, msg }) => !meta.result && !meta.reason && msg !== LogMsg.OutOfService) + ) { return LogResult.Pending } return logArr.every(detectLogItemResult) ? LogResult.OK : LogResult.Error @@ -258,6 +266,23 @@ export default () => { return logArr.filter((item) => getLogItemTriggerTime(item) >= startTimestamp) } + /** + * return true if the log need be dropped + */ + const detectLogNeedBeDropped = (log: LogItem) => { + let needBeDropped = false + if (EXCLUDED_LOGS.includes(log.msg)) { + needBeDropped = true + } + if (/connector/i.test(log.msg) && log.meta.connector) { + needBeDropped = true + } + if (/msg =>/.test(log.msg) && !log.meta.action_info) { + needBeDropped = true + } + return needBeDropped + } + const formatLog = (logArr: Array) => { const ret: FormattedLog = {} const timeGroupedMap = groupBy(logArr, getLogItemTriggerTime) @@ -275,7 +300,7 @@ export default () => { rawLogArr: [], } } - if (EXCLUDED_LOGS.includes(logItem.msg)) { + if (detectLogNeedBeDropped(logItem)) { return obj } obj[target].info[logItem.msg] = { time: logItem.time, logContent: logItem } @@ -310,22 +335,43 @@ export default () => { export const useShowLog = () => { const { tl } = useI18nTl('RuleEngine') + const commonActionLogMsgMap = new Map([ + [LogMsg.ActionTemplateRendered, tl('requestParameter')], + [LogMsg.ActionSuccess, tl('actionExecutionLog')], + [LogMsg.OutOfService, tl('actionOutOfService')], + [LogMsg.ActionFailed, tl('actionFailed')], + [LogMsg.RequestExpired, tl('requestExpired')], + ]) const ruleLogMsgMap = new Map([[LogMsg.RuleActivated, tl('eventData')]]) const getRuleLogMsgTitle = (logMsg: LogMsg) => { const title = ruleLogMsgMap.get(logMsg) return title ? title : tl('executionResult') } - const republishLogMsgMap = new Map([[LogMsg.ActionSuccess, tl('messagePublishParameters')]]) + const republishLogMsgMap = new Map([[LogMsg.ActionTemplateRendered, tl('requestParameter')]]) const getRepublishLogMsgTitle = (logMsg: LogMsg) => { - const title = republishLogMsgMap.get(logMsg) + let title = republishLogMsgMap.get(logMsg) + if (!title) { + const sTitle = commonActionLogMsgMap.get(logMsg) + if (sTitle) { + title = sTitle + } + } + return title ? title : startCase(logMsg) + } + const consoleLogMsgMap = new Map([ + [LogMsg.ActionTemplateRendered, tl('consoleActionTemplateRendered')], + [LogMsg.ActionSuccess, tl('actionExecutionLog')], + ]) + const getConsoleLogMsgTitle = (logMsg: LogMsg) => { + const title = consoleLogMsgMap.get(logMsg) return title ? title : startCase(logMsg) } const httpActionLogMsgMap = new Map([ - [LogMsg.ActionTemplateRendered, tl('requestParameter')], [LogMsg.ActionSuccess, tl('responseResult')], [LogMsg.StopRendering, tl('responseResult')], ]) const actionTypeLogMsgMap = new Map([[BridgeType.Webhook, httpActionLogMsgMap]]) + const getActionLogMsgTitle = (targetLogData: TargetLog, logMsg: LogMsg) => { const { type } = targetLogData.targetInfo || {} let title: undefined | string = undefined @@ -338,8 +384,11 @@ export const useShowLog = () => { } } } - if (!title && logMsg === LogMsg.ActionSuccess) { - title = tl('actionExecutionLog') + if (!title) { + const sTitle = commonActionLogMsgMap.get(logMsg) + if (sTitle) { + title = sTitle + } } return title || startCase(logMsg) } @@ -351,6 +400,9 @@ export const useShowLog = () => { if (type === LogTargetType.Republish) { return getRepublishLogMsgTitle(logMsg) } + if (type === LogTargetType.Console) { + return getConsoleLogMsgTitle(logMsg) + } if (type === LogTargetType.Action) { return getActionLogMsgTitle(targetLogData, logMsg) } diff --git a/src/i18n/RuleEngine.js b/src/i18n/RuleEngine.js index 920404870..7092d39b6 100644 --- a/src/i18n/RuleEngine.js +++ b/src/i18n/RuleEngine.js @@ -1017,8 +1017,12 @@ export default { zh: '消息发布参数', en: 'Message Publish Parameters', }, + consoleActionTemplateRendered: { + zh: '动作模板渲染结果', + en: 'Action Template Rendered Result', + }, requestParameter: { - zh: '请求参数', + zh: '请求信息', en: 'Request', }, responseResult: { @@ -1030,8 +1034,20 @@ export default { en: 'No response: Request is disabled', }, actionExecutionLog: { - zh: '动作执行日志', - en: 'Action Execution Log', + zh: '执行结果', + en: 'Result', + }, + actionOutOfService: { + zh: '服务不可用', + en: 'Out of Service', + }, + actionFailed: { + zh: '动作执行失败', + en: 'Action Failed', + }, + requestExpired: { + zh: '请求超时', + en: 'Request Expired', }, debugLeaveConfirm: { zh: '离开页面将停止测试,是否确认离开?', diff --git a/src/views/RuleEngine/components/LogDataDisplay.vue b/src/views/RuleEngine/components/LogDataDisplay.vue index fa97810bd..4a4897bfc 100644 --- a/src/views/RuleEngine/components/LogDataDisplay.vue +++ b/src/views/RuleEngine/components/LogDataDisplay.vue @@ -69,7 +69,7 @@ {{ getLogItemTitle(targetLogData, logMsg as LogMsg) }} -

+

{{ getLogItemTitle(targetLogData, getSelectedBlock(logTarget)) }}