Files
makemd/server/src/api/routes/settings.ts

356 lines
6.8 KiB
TypeScript
Raw Normal View History

import { Router } from 'express';
import { requireTraceContext } from '../../core/guards/trace-context.guard';
import { requirePermission } from '../../core/guards/rbac.guard';
import {
WinNodeController,
TaskCenterController,
IndependentSiteController,
CostTemplateController,
PlatformAccountController,
ReturnController,
} from '../controllers/SettingsController';
const router = Router();
// WinNode routes
router.get(
'/winnode',
requireTraceContext,
requirePermission('settings:read'),
WinNodeController.list
);
router.get(
'/winnode/stats',
requireTraceContext,
requirePermission('settings:read'),
WinNodeController.getStats
);
router.get(
'/winnode/:id',
requireTraceContext,
requirePermission('settings:read'),
WinNodeController.getById
);
router.post(
'/winnode',
requireTraceContext,
requirePermission('settings:write'),
WinNodeController.create
);
router.put(
'/winnode/:id',
requireTraceContext,
requirePermission('settings:write'),
WinNodeController.update
);
router.delete(
'/winnode/:id',
requireTraceContext,
requirePermission('settings:write'),
WinNodeController.delete
);
router.post(
'/winnode/:id/test',
requireTraceContext,
requirePermission('settings:write'),
WinNodeController.testConnection
);
router.post(
'/winnode/:id/restart',
requireTraceContext,
requirePermission('settings:write'),
WinNodeController.restart
);
router.post(
'/winnode/:id/heartbeat',
WinNodeController.heartbeat
);
// TaskCenter routes
router.get(
'/taskcenter',
requireTraceContext,
requirePermission('task:read'),
TaskCenterController.list
);
router.get(
'/taskcenter/stats',
requireTraceContext,
requirePermission('task:read'),
TaskCenterController.getStats
);
router.get(
'/taskcenter/:id',
requireTraceContext,
requirePermission('task:read'),
TaskCenterController.getById
);
router.post(
'/taskcenter',
requireTraceContext,
requirePermission('task:write'),
TaskCenterController.create
);
router.put(
'/taskcenter/:id/status',
requireTraceContext,
requirePermission('task:write'),
TaskCenterController.updateStatus
);
router.post(
'/taskcenter/:id/cancel',
requireTraceContext,
requirePermission('task:write'),
TaskCenterController.cancel
);
router.post(
'/taskcenter/:id/retry',
requireTraceContext,
requirePermission('task:write'),
TaskCenterController.retry
);
// IndependentSite routes
router.get(
'/independent-site',
requireTraceContext,
requirePermission('site:read'),
IndependentSiteController.listSites
);
router.get(
'/independent-site/:id',
requireTraceContext,
requirePermission('site:read'),
IndependentSiteController.getSiteById
);
router.post(
'/independent-site',
requireTraceContext,
requirePermission('site:write'),
IndependentSiteController.createSite
);
router.put(
'/independent-site/:id',
requireTraceContext,
requirePermission('site:write'),
IndependentSiteController.updateSite
);
router.delete(
'/independent-site/:id',
requireTraceContext,
requirePermission('site:write'),
IndependentSiteController.deleteSite
);
router.post(
'/independent-site/:id/sync-products',
requireTraceContext,
requirePermission('site:write'),
IndependentSiteController.syncProducts
);
router.get(
'/independent-site/:id/products',
requireTraceContext,
requirePermission('site:read'),
IndependentSiteController.getSiteProducts
);
router.get(
'/independent-site/:id/orders',
requireTraceContext,
requirePermission('site:read'),
IndependentSiteController.getSiteOrders
);
router.get(
'/independent-site/:id/analytics',
requireTraceContext,
requirePermission('site:read'),
IndependentSiteController.getSiteAnalytics
);
// CostTemplate routes
router.get(
'/cost-template',
requireTraceContext,
requirePermission('settings:read'),
CostTemplateController.list
);
router.get(
'/cost-template/:id',
requireTraceContext,
requirePermission('settings:read'),
CostTemplateController.getById
);
router.post(
'/cost-template',
requireTraceContext,
requirePermission('settings:write'),
CostTemplateController.create
);
router.put(
'/cost-template/:id',
requireTraceContext,
requirePermission('settings:write'),
CostTemplateController.update
);
router.delete(
'/cost-template/:id',
requireTraceContext,
requirePermission('settings:write'),
CostTemplateController.delete
);
router.post(
'/cost-template/:id/duplicate',
requireTraceContext,
requirePermission('settings:write'),
CostTemplateController.duplicate
);
router.post(
'/cost-template/:id/calculate',
requireTraceContext,
requirePermission('settings:read'),
CostTemplateController.calculateCost
);
// PlatformAccount routes
router.get(
'/platform-account',
requireTraceContext,
requirePermission('settings:read'),
PlatformAccountController.list
);
router.get(
'/platform-account/stats',
requireTraceContext,
requirePermission('settings:read'),
PlatformAccountController.getStats
);
router.get(
'/platform-account/:id',
requireTraceContext,
requirePermission('settings:read'),
PlatformAccountController.getById
);
router.post(
'/platform-account',
requireTraceContext,
requirePermission('settings:write'),
PlatformAccountController.create
);
router.put(
'/platform-account/:id',
requireTraceContext,
requirePermission('settings:write'),
PlatformAccountController.update
);
router.delete(
'/platform-account/:id',
requireTraceContext,
requirePermission('settings:write'),
PlatformAccountController.delete
);
router.post(
'/platform-account/:id/refresh-token',
requireTraceContext,
requirePermission('settings:write'),
PlatformAccountController.refreshToken
);
router.post(
'/platform-account/:id/test',
requireTraceContext,
requirePermission('settings:write'),
PlatformAccountController.testConnection
);
router.post(
'/platform-account/:id/sync',
requireTraceContext,
requirePermission('settings:write'),
PlatformAccountController.sync
);
// Return routes
router.get(
'/return/sku',
requireTraceContext,
requirePermission('return:read'),
ReturnController.fetchSKUData
);
router.put(
'/return/sku/:id/status',
requireTraceContext,
requirePermission('return:write'),
ReturnController.updateSKUStatus
);
router.get(
'/return',
requireTraceContext,
requirePermission('return:read'),
ReturnController.fetchReturns
);
router.post(
'/return',
requireTraceContext,
requirePermission('return:write'),
ReturnController.createReturn
);
router.put(
'/return/:id/status',
requireTraceContext,
requirePermission('return:write'),
ReturnController.updateReturnStatus
);
router.get(
'/return/trend',
requireTraceContext,
requirePermission('return:read'),
ReturnController.getTrend
);
router.get(
'/return/stats',
requireTraceContext,
requirePermission('return:read'),
ReturnController.getStats
);
export default router;