const express = require("express"); const denaClient = require("../lib/denaClient"); const { mapDenaOrderToShahoo, denaErrorMessage } = require("../lib/mapOrder"); const { ok, okPaged } = require("../lib/shahooResponse"); const { requireSession } = require("../middleware/auth"); const router = express.Router(); function parsePagination(pageSize, pageNumber) { const limit = Math.max(1, Math.min(Number(pageSize) || 10, 100)); const page = Math.max(1, Number(pageNumber) + 1); return { limit, page }; } async function fetchDoneOrders(session, pageSize, pageNumber) { const { limit, page } = parsePagination(pageSize, pageNumber); const orders = await denaClient.getOrders(session, { state: "done", limit, page }); const content = orders.map(mapDenaOrderToShahoo); return { content, count: content.length }; } router.get("/self/all/:pageSize/:pageNumber", requireSession, async (req, res) => { try { const { content, count } = await fetchDoneOrders( req.session, req.params.pageSize, req.params.pageNumber ); return res.json(okPaged(content, count)); } catch { return res.json(okPaged([], 0)); } }); router.get("/self/done/:pageSize/:pageNumber", requireSession, async (req, res) => { try { const { content, count } = await fetchDoneOrders( req.session, req.params.pageSize, req.params.pageNumber ); return res.json(okPaged(content, count)); } catch { return res.json(okPaged([], 0)); } }); module.exports = router;