import { Router } from 'express' import { confirmClaimRole, createClaimSession, getClaimDetail, getClaimScreenshotPath, getClaimSessionSummary, redeemClaimTask, } from '../services/claim/claim-session-service.js' import { buildNotFoundPayload, buildSuccessPayload, sendRouteError } from '../utils/http.js' const router = Router() router.get('/:token', async (req, res) => { try { const data = await getClaimDetail(req.params.token) res.json(buildSuccessPayload(data, 'ok')) } catch (error) { sendRouteError(res, error, '查询领取详情失败', '[claims/:token]') } }) router.post('/:token/session', async (req, res) => { try { const data = await createClaimSession(req.params.token, req.body) res.json(buildSuccessPayload(data, '浏览器会话已创建')) } catch (error) { sendRouteError(res, error, '创建领取会话失败', '[claims/:token/session]') } }) router.get('/:token/session/summary', async (req, res) => { try { const data = await getClaimSessionSummary(req.params.token) res.json(buildSuccessPayload(data, 'ok')) } catch (error) { sendRouteError(res, error, '查询领取会话摘要失败', '[claims/:token/session/summary]') } }) router.post('/:token/confirm-role', async (req, res) => { try { const data = await confirmClaimRole(req.params.token) res.json(buildSuccessPayload(data, '角色已确认')) } catch (error) { sendRouteError(res, error, '确认角色失败', '[claims/:token/confirm-role]') } }) router.post('/:token/redeem', async (req, res) => { try { const data = await redeemClaimTask(req.params.token) res.json(buildSuccessPayload(data, '兑换完成')) } catch (error) { sendRouteError(res, error, '执行领取兑换失败', '[claims/:token/redeem]') } }) router.get('/:token/screenshot', async (req, res) => { try { const screenshotPath = await getClaimScreenshotPath(req.params.token) res.sendFile(screenshotPath) } catch (error) { sendRouteError(res, error, '读取领取截图失败', '[claims/:token/screenshot]') } }) router.use((req, res) => { res.status(404).json(buildNotFoundPayload(req)) }) export default router