WARCH1 实现企微审批最小历史留存
这个提交包含在:
@@ -9,6 +9,7 @@ const {
|
||||
sanitizeErrorMessage,
|
||||
validateCallbackConfig,
|
||||
} = require("../services/integrations/wecomCallbackCrypto");
|
||||
const { recordApprovalCallbackEvent } = require("../services/integrations/wecomApprovalArchive");
|
||||
|
||||
function toSafeString(value, maxLength = 500) {
|
||||
if (value == null) return "";
|
||||
@@ -128,7 +129,22 @@ async function wecomApprovalCallbackRoutes(fastify, options = {}) {
|
||||
});
|
||||
const summary = normalizeApprovalCallbackEvent(decrypted.plainXml);
|
||||
const evidenceStore = options.evidenceStore || {
|
||||
record: (eventSummary) => recordCallbackEvidence(eventSummary, { evidenceFile: runtimeConfig.evidenceFile }),
|
||||
record: async (eventSummary) => {
|
||||
let stored = null;
|
||||
if (fastify.prisma) {
|
||||
stored = await recordApprovalCallbackEvent({
|
||||
prisma: fastify.prisma,
|
||||
config: {
|
||||
wecomCorpId: runtimeConfig.receiveId,
|
||||
},
|
||||
summary: eventSummary,
|
||||
});
|
||||
}
|
||||
if (runtimeConfig.evidenceFile || !fastify.prisma) {
|
||||
await recordCallbackEvidence(eventSummary, { evidenceFile: runtimeConfig.evidenceFile });
|
||||
}
|
||||
return stored || { recorded: true, duplicate: false };
|
||||
},
|
||||
};
|
||||
const stored = await evidenceStore.record(summary);
|
||||
fastify.log.info({
|
||||
|
||||
在新工单中引用
屏蔽一个用户