cangku/backend/src/api/presaleExternal.js

40 lines
1.2 KiB
JavaScript

'use strict';
const express = require('express');
const { listPresaleTasks } = require('../services/presaleTaskService');
const {
requireExternalAutomationApiKey,
requireDesktopPageAccess,
} = require('../services/externalAutomationAuth');
const router = express.Router();
const requirePresaleAccess = requireDesktopPageAccess('planning_upload');
function handleError(res, error, fallbackMessage) {
const statusCode = error.statusCode || error.status || 500;
if (statusCode >= 500) {
console.error('[PresaleExternalAPI] 请求失败:', error);
}
return res.status(statusCode).json({
success: false,
error: error.message || fallbackMessage,
data: error.data || undefined,
});
}
router.get('/tasks', requireExternalAutomationApiKey, requirePresaleAccess, async (req, res) => {
try {
const query = { ...(req.query || {}) };
if (req.externalApiKey?.authType === 'jwt') {
query.dingtalkUserName = String(req.user?.name || req.user?.username || '').trim();
}
const data = await listPresaleTasks(query);
res.setHeader('Cache-Control', 'no-store');
return res.json({ success: true, data });
} catch (error) {
return handleError(res, error, '查询预售处理数据失败');
}
});
module.exports = router;