import type { Request, Response } from 'express'; // import userInfo from './userInfo.json'; const waitTime = (time: number = 100) => { return new Promise((resolve) => { setTimeout(() => { resolve(true); }, time); }); }; const userInfo = {} const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process.env; /** * Permissions of the current user. If empty, it means not logged in. * current user access, if is '', user need login * If it is a pro preview, it has permission by default. */ let access = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ? 'admin' : ''; const getAccess = () => { return access; }; const successResponse = (data: any = null) => { return { code: 200, message: 'ok', success: true, data, }; } // The code will be compatible with local service mocks and static data of the deployment site export default { // Supported values ​​are Object and Array 'GET /api/auth/info': (_req: Request, res: Response) => { const token = _req.headers.authorization?.split(' ')[1]; // res.status(401).send({ // data: { // isLogin: false, // }, // code: 401, // message: 'Please log in first!', // success: false, // }); // return if (!token) { res.send({ data: { isLogin: false, }, code: 401, message: 'Please log in first!', success: false, }); return; } res.send(successResponse(userInfo)); }, 'POST /api/auth/login': async (req: Request, res: Response) => { const { password, username, type } = req.body; await waitTime(2000); if (password === '123456' && username === 'superadmin') { res.send(successResponse(userInfo)); access = 'admin'; return; } if (password === '123456' && username === 'user') { res.send({ "token-prefix": "Bearer", "token": "user111111" }); access = 'user'; return; } res.send({ data: { status: 'error', type, currentAuthority: 'guest', }, code: 400, message: 'Incorrect username or password!', success: true, }); access = 'guest'; }, 'POST /api/login/outLogin': (_req: Request, res: Response) => { access = ''; res.send(successResponse()); }, 'GET /api/company/list': (_req: Request, res: Response) => { res.send( successResponse([ { id: "C001", name: 'Alpha Broker', email: 'admin@alpha.com', sourceNum: 5, userNum: 10, status: 1, createTime: '2023-01-01 00:00:00', }, { id: "C002", name: 'Beta Trading', email: 'admin@beta.com', sourceNum: 3, userNum: 5, status: 1, createTime: '2023-01-01 00:00:00', }, { id: "C003", name: 'Gamma FXr', email: 'admin@gamma.com', sourceNum: 1, userNum: 5, status: 0, createTime: '2023-01-01 00:00:00', }, ]) ); }, 'GET /api/user/list': (_req: Request, res: Response) => { res.send( successResponse([ { id: "U001", username: 'superadmin', nameStr: 'Super Administrator', email: 'sa@system.com', role: 'Super Administrator', companyName: 'Global', dataSource: '-', status: 1, createTime: '2023-01-01 00:00:00', }, { id: "U002", username: 'alpha_admin', nameStr: 'Alpha Broker Administrator', email: 'admin@alpha.com', role: 'Company Administrator', companyName: 'Alpha Broker', dataSource: 'Alpha MT4, Alpha MT5', status: 1, createTime: '2023-01-01 00:00:00', }, { id: "U003", username: 'alpha_user', nameStr: 'Alpha Broker User', email: 'user@alpha.com', role: 'Company User', companyName: 'Alpha Broker', dataSource: 'Alpha MT4', status: 0, createTime: '2023-01-01 00:00:00', }, { id: "U004", username: 'alpha_viewer', nameStr: 'Alpha Broker Viewer', email: 'viewer@alpha.com', role: 'Company Viewer', companyName: 'Alpha Broker', dataSource: 'Alpha MT4, Alpha MT5', status: 1, createTime: '2023-01-01 00:00:00', }, { id: "U005", username: 'beta_admin', nameStr: 'Beta Trading Administrator', email: 'admin@beta.com', role: 'Company Administrator', companyName: 'Beta Trading', dataSource: 'Beta MT5', status: 1, createTime: '2023-01-01 00:00:00', }, { id: "U006", username: 'beta_viewer', nameStr: 'Beta Trading Viewer', email: 'viewer@beta.com', role: 'Company Viewer', companyName: 'Beta Trading', dataSource: 'Beta MT5', status: 1, createTime: '2023-01-01 00:00:00', }, ]) ); }, 'GET /api/data-source/list': (_req: Request, res: Response) => { res.send( successResponse([ { id: "DS001", name: 'Alpha MT4', ip: '192.168.1.100', platformType: '4', companyName: 'Alpha Broker', ruleNum: 11, alertNum: 2, status: 1, createTime: '2023-01-01 00:00:00', }, { id: "DS002", name: 'Alpha MT5', ip: '192.168.1.101', platformType: '5', companyName: 'Alpha Broker', ruleNum: 1, alertNum: 1, status: 1, createTime: '2023-01-01 00:00:00', }, { id: "DS003", name: 'Beta MT5', ip: '192.168.1.102', platformType: '5', companyName: 'Beta Trading', ruleNum: 8, alertNum: 5, status: 1, createTime: '2023-01-01 00:00:00', }, { id: "DS004", name: 'Gamma MT4', ip: '192.168.1.103', platformType: '4', companyName: 'Gamma FX', ruleNum: 1, alertNum: 0, status: 0, createTime: '2023-01-01 00:00:00', }, ]) ); }, 'GET /api/roles/list': (_req: Request, res: Response) => { res.send( successResponse([ { role_id: 'R001', role_key: 'super_admin', role_name: 'Super Administrator', color: 'danger', level: 100, is_system: true, permissions: ['view_dashboard', 'manage_rules', 'manage_products', 'view_alerts', 'manage_accounts', 'manage_companies', 'manage_datasources', 'manage_users', 'manage_roles', 'manage_settings'], created_at: '2023-01-01' }, { role_id: 'R002', role_key: 'company_admin', role_name: 'Company Administrator', color: 'warning', level: 80, is_system: true, permissions: ['view_dashboard', 'manage_rules', 'manage_products', 'view_alerts', 'manage_accounts', 'manage_datasources', 'manage_users', 'manage_roles'], created_at: '2023-01-01' }, { role_id: 'R003', role_key: 'company_user', role_name: 'Company User', color: 'info', level: 60, is_system: true, permissions: ['view_dashboard', 'manage_rules', 'manage_products', 'view_alerts'], created_at: '2023-01-01' }, { role_id: 'R004', role_key: 'viewer', role_name: 'Company Viewer', color: 'secondary', level: 20, is_system: true, permissions: ['view_dashboard', 'view_alerts'], created_at: '2023-01-01' } ]) ); }, 'GET /api/account/list': (_req: Request, res: Response) => { res.send( successResponse([ { account_id: 'ACC001', source_id: 'DS001', platform: 'MT4', account_currency: 'USD', balance: 125000, equity: 128500, margin_level: 450, status: 'active', risk_level: 'high', created_at: '2023-06-15', alert_count: 2 }, { account_id: 'ACC002', source_id: 'DS002', platform: 'MT5', account_currency: 'EUR', balance: 85000, equity: 82300, margin_level: 320, status: 'active', risk_level: 'medium', created_at: '2023-08-20', alert_count: 0 }, { account_id: 'ACC003', source_id: 'DS001', platform: 'MT4', account_currency: 'JPY', balance: 15000000, equity: 15250000, margin_level: 580, status: 'active', risk_level: 'high', created_at: '2023-04-10', alert_count: 1 }, { account_id: 'ACC004', source_id: 'DS003', platform: 'MT5', account_currency: 'GBP', balance: 45000, equity: 44200, margin_level: 280, status: 'active', risk_level: 'low', created_at: '2023-11-05', alert_count: 1 }, { account_id: 'ACC005', source_id: 'DS003', platform: 'MT5', account_currency: 'USD', balance: 520000, equity: 535000, margin_level: 620, status: 'active', risk_level: 'high', created_at: '2023-02-28', alert_count: 1 } ]) ); }, 'GET /api/alert/list': (_req: Request, res: Response) => { res.send( successResponse([ { alert_id: 'A001', source_id: 'DS001', rule_type: 'large_trade', account_id: 'ACC001', product: 'EURUSD', trigger_time: '2024-01-15 10:35:00', trigger_value: 150000, status: 'new', platform: 'MT4' }, { alert_id: 'A002', source_id: 'DS001', rule_type: 'scalping', account_id: 'ACC003', product: 'USDJPY', trigger_time: '2024-01-15 12:00:45', trigger_value: 45, status: 'new', platform: 'MT4' }, { alert_id: 'A003', source_id: 'DS002', rule_type: 'large_trade', account_id: 'ACC001', product: 'XAUUSD', trigger_time: '2024-01-15 14:15:00', trigger_value: 180000, status: 'reviewed', platform: 'MT5' }, { alert_id: 'A004', source_id: 'DS003', rule_type: 'large_trade', account_id: 'ACC005', product: 'BTCUSD', trigger_time: '2024-01-15 15:30:00', trigger_value: 320000, status: 'new', platform: 'MT5' }, { alert_id: 'A005', source_id: 'DS003', rule_type: 'scalping', account_id: 'ACC004', product: 'EURUSD', trigger_time: '2024-01-15 14:00:25', trigger_value: 25, status: 'new', platform: 'MT5' } ]) ); }, 'GET /api/product/list': (_req: Request, res: Response) => { res.send( successResponse([ { id: 1, source_id: 'DS001', platform: 'MT4', raw_product_name: 'EURUSD', unified_product_code: 'EURUSD', product_category: 'Forex Major', enabled: true }, { id: 2, source_id: 'DS002', platform: 'MT5', raw_product_name: 'EURUSD.', unified_product_code: 'EURUSD', product_category: 'Forex Major', enabled: true }, { id: 3, source_id: 'DS001', platform: 'MT4', raw_product_name: 'XAUUSD', unified_product_code: 'XAUUSD', product_category: 'Commodities', enabled: true }, { id: 4, source_id: 'DS002', platform: 'MT5', raw_product_name: 'GOLD', unified_product_code: 'XAUUSD', product_category: 'Commodities', enabled: true }, { id: 5, source_id: 'DS003', platform: 'MT5', raw_product_name: 'EURUSD.', unified_product_code: 'EURUSD', product_category: 'Forex Major', enabled: true }, { id: 6, source_id: 'DS003', platform: 'MT5', raw_product_name: 'BTCUSD', unified_product_code: 'BTCUSD', product_category: 'Crypto', enabled: true } ]) ); }, 'GET /api/500': (_req: Request, res: Response) => { res.status(500).send({ timestamp: 1513932555104, status: 500, error: 'error', message: 'error', path: '/base/category/list', }); }, 'GET /api/404': (_req: Request, res: Response) => { res.status(404).send({ timestamp: 1513932643431, status: 404, error: 'Not Found', message: 'No message available', path: '/base/category/list/2121212', }); }, 'GET /api/403': (_req: Request, res: Response) => { res.status(403).send({ timestamp: 1513932555104, status: 403, error: 'Forbidden', message: 'Forbidden', path: '/base/category/list', }); }, 'GET /api/401': (_req: Request, res: Response) => { res.status(401).send({ timestamp: 1513932555104, status: 401, error: 'Unauthorized', message: 'Unauthorized', path: '/base/category/list', }); }, };