UNPKG

mira-app-server

Version:

Mira Server - standalone server application using mira-app-core

112 lines 5.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CookieSitesRouter = void 0; const express_1 = require("express"); /** * 下载站点 Cookie 管理路由(用户私有) * * 存储:users.db 的 cookie_sites 表(见 UserStorage.createTables)。 * 鉴权:全部走 authMiddleware,按 (req as any).user.id 隔离用户数据。 */ class CookieSitesRouter { constructor(authRouter) { this.authRouter = authRouter; this.router = (0, express_1.Router)(); this.setupRoutes(); } getUserStorage() { return this.authRouter.getAuthService().getUserStorage(); } setupRoutes() { // 列表 this.router.get('/', this.authRouter.authMiddleware(), async (req, res) => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ code: 401, message: '未登录' }); const data = await this.getUserStorage().listCookieSites(userId); res.json({ code: 0, data }); } catch (error) { res.status(500).json({ code: 500, message: error.message }); } }); // 新增 this.router.post('/', this.authRouter.authMiddleware(), async (req, res) => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ code: 401, message: '未登录' }); const { name, url, remark, cookies, label, isDefault } = req.body || {}; if (!name || !url) { return res.status(400).json({ code: 400, message: 'name 和 url 必填' }); } const data = await this.getUserStorage().createCookieSite(userId, { name, url, remark, cookies, label, isDefault }); res.json({ code: 0, data }); } catch (error) { res.status(500).json({ code: 500, message: error.message }); } }); // 更新 this.router.put('/:id', this.authRouter.authMiddleware(), async (req, res) => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ code: 401, message: '未登录' }); const id = parseInt(req.params.id, 10); if (!Number.isFinite(id)) return res.status(400).json({ code: 400, message: 'id 非法' }); const { name, url, remark, cookies, label, isDefault } = req.body || {}; const data = await this.getUserStorage().updateCookieSite(userId, id, { name, url, remark, cookies, label, isDefault }); if (!data) return res.status(404).json({ code: 404, message: '站点不存在或无权访问' }); res.json({ code: 0, data }); } catch (error) { res.status(500).json({ code: 500, message: error.message }); } }); // 设为默认(同 url 其他组自动取消) this.router.put('/:id/default', this.authRouter.authMiddleware(), async (req, res) => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ code: 401, message: '未登录' }); const id = parseInt(req.params.id, 10); if (!Number.isFinite(id)) return res.status(400).json({ code: 400, message: 'id 非法' }); const data = await this.getUserStorage().setDefaultCookieSite(userId, id); if (!data) return res.status(404).json({ code: 404, message: '站点不存在或无权访问' }); res.json({ code: 0, data }); } catch (error) { res.status(500).json({ code: 500, message: error.message }); } }); // 删除 this.router.delete('/:id', this.authRouter.authMiddleware(), async (req, res) => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ code: 401, message: '未登录' }); const id = parseInt(req.params.id, 10); if (!Number.isFinite(id)) return res.status(400).json({ code: 400, message: 'id 非法' }); const ok = await this.getUserStorage().deleteCookieSite(userId, id); if (!ok) return res.status(404).json({ code: 404, message: '站点不存在或无权访问' }); res.json({ code: 0, data: { id } }); } catch (error) { res.status(500).json({ code: 500, message: error.message }); } }); } getRouter() { return this.router; } } exports.CookieSitesRouter = CookieSitesRouter; //# sourceMappingURL=CookieSitesRouter.js.map