.roadhogrc.mock.js 3.54 KB
Newer Older
1 2
import mockjs from 'mockjs';
import { getRule, postRule } from './mock/rule';
valleykid's avatar
valleykid committed
3
import { getActivities, getNotice, getFakeList, postFakeList } from './mock/api';
4 5
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
  }),
  'GET /api/fake_list': getFakeList,
valleykid's avatar
valleykid committed
68
  'POST /api/fake_list': postFakeList,
69
  'GET /api/fake_chart_data': getFakeChartData,
ddcat1115's avatar
ddcat1115 committed
70 71
  'GET /api/profile/basic': getProfileBasicData,
  'GET /api/profile/advanced': getProfileAdvancedData,
72
  'POST /api/login/account': (req, res) => {
afc163's avatar
afc163 committed
73
    const { password, userName, type } = req.body;
ddcat1115's avatar
ddcat1115 committed
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
    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
90
    res.send({
ddcat1115's avatar
ddcat1115 committed
91
      status: 'error',
afc163's avatar
afc163 committed
92
      type,
ddcat1115's avatar
ddcat1115 committed
93
      currentAuthority: 'guest'
afc163's avatar
afc163 committed
94
    });
95 96
  },
  'POST /api/register': (req, res) => {
ddcat1115's avatar
ddcat1115 committed
97
    res.send({ status: 'ok', currentAuthority: 'user' });
98 99
  },
  'GET /api/notices': getNotices,
陈帅's avatar
陈帅 committed
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 126
  '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"
    });
  },
127 128 129 130 131 132 133 134 135
  'GET /api/401': (req, res) => {
    res.status(401).send({
      "timestamp": 1513932555104,
      "status": 401,
      "error": "Unauthorized",
      "message": "Unauthorized",
      "path": "/base/category/list"
    });
  },
136 137
};

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