.roadhogrc.mock.js 3.27 KB
Newer Older
1 2 3 4 5
import mockjs from 'mockjs';
import { getRule, postRule } from './mock/rule';
import { getActivities, getNotice, getFakeList } from './mock/api';
import { getFakeChartData } from './mock/chart';
import { imgMap } from './mock/utils';
ddcat1115's avatar
ddcat1115 committed
6 7
import { getProfileBasicData } from './mock/profile';
import { getProfileAdvancedData } from './mock/profile';
8 9 10
import { getNotices } from './mock/notices';
import { format, delay } from 'roadhog-api-doc';

nikogu's avatar
nikogu committed
11 12
// 是否禁用代理
const noProxy = process.env.NO_PROXY === 'true';
13

nikogu's avatar
nikogu committed
14
// 代码中会兼容本地 service mock 以及部署站点的静态数据
15 16 17 18 19 20 21 22 23 24 25
const proxy = {
  // 支持值为 Object 和 Array
  'GET /api/currentUser': {
    $desc: "获取当前用户接口",
    $params: {
      pageSize: {
        desc: '分页',
        exp: 2,
      },
    },
    $body: {
afc163's avatar
afc163 committed
26
      name: 'Serati Ma',
afc163's avatar
afc163 committed
27
      avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
      userid: '00000001',
      notifyCount: 12,
    },
  },
  // GET POST 可省略
  'GET /api/users': [{
    key: '1',
    name: 'John Brown',
    age: 32,
    address: 'New York No. 1 Lake Park',
  }, {
    key: '2',
    name: 'Jim Green',
    age: 42,
    address: 'London No. 1 Lake Park',
  }, {
    key: '3',
    name: 'Joe Black',
    age: 32,
    address: 'Sidney No. 1 Lake Park',
  }],
  'GET /api/project/notice': getNotice,
  'GET /api/activities': getActivities,
  'GET /api/rule': getRule,
  'POST /api/rule': {
    $params: {
      pageSize: {
        desc: '分页',
        exp: 2,
      },
    },
    $body: postRule,
  },
  'POST /api/forms': (req, res) => {
afc163's avatar
afc163 committed
62
    res.send({ message: 'Ok' });
63 64
  },
  'GET /api/tags': mockjs.mock({
nikogu's avatar
nikogu committed
65
    'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }]
66 67 68
  }),
  'GET /api/fake_list': getFakeList,
  'GET /api/fake_chart_data': getFakeChartData,
ddcat1115's avatar
ddcat1115 committed
69 70
  'GET /api/profile/basic': getProfileBasicData,
  'GET /api/profile/advanced': getProfileAdvancedData,
71
  'POST /api/login/account': (req, res) => {
afc163's avatar
afc163 committed
72
    const { password, userName, type } = req.body;
ddcat1115's avatar
ddcat1115 committed
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
    if(password === '888888' && userName === 'admin'){
      res.send({
        status: 'ok',
        type,
        currentAuthority: 'admin'
      });
      return ;
    }
    if(password === '123456' && userName === 'user'){
      res.send({
        status: 'ok',
        type,
        currentAuthority: 'user'
      });
      return ;
    }
afc163's avatar
afc163 committed
89
    res.send({
ddcat1115's avatar
ddcat1115 committed
90
      status: 'error',
afc163's avatar
afc163 committed
91
      type,
ddcat1115's avatar
ddcat1115 committed
92
      currentAuthority: 'guest'
afc163's avatar
afc163 committed
93
    });
94 95
  },
  'POST /api/register': (req, res) => {
ddcat1115's avatar
ddcat1115 committed
96
    res.send({ status: 'ok', currentAuthority: 'user' });
97 98
  },
  'GET /api/notices': getNotices,
陈帅's avatar
陈帅 committed
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
  'GET /api/500': (req, res) => {
    res.status(500).send({
      "timestamp": 1513932555104,
      "status": 500,
      "error": "error",
      "message": "error",
      "path": "/base/category/list"
    });
  },
  'GET /api/404': (req, res) => {
    res.status(404).send({
      "timestamp": 1513932643431,
      "status": 404,
      "error": "Not Found",
      "message": "No message available",
      "path": "/base/category/list/2121212"
    });
  },
  'GET /api/403': (req, res) => {
    res.status(403).send({
      "timestamp": 1513932555104,
      "status": 403,
      "error": "Unauthorized",
      "message": "Unauthorized",
      "path": "/base/category/list"
    });
  },
126 127
};

nikogu's avatar
nikogu committed
128
export default noProxy ? {} : delay(proxy, 1000);