.roadhogrc.mock.js 3.5 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
import { getFakeChartData } from './mock/chart';
ddcat1115's avatar
ddcat1115 committed
5 6
import { getProfileBasicData } from './mock/profile';
import { getProfileAdvancedData } from './mock/profile';
7 8 9
import { getNotices } from './mock/notices';
import { format, delay } from 'roadhog-api-doc';

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

nikogu's avatar
nikogu committed
13
// 代码中会兼容本地 service mock 以及部署站点的静态数据
14 15 16 17 18 19 20 21 22 23 24
const proxy = {
  // 支持值为 Object 和 Array
  'GET /api/currentUser': {
    $desc: "获取当前用户接口",
    $params: {
      pageSize: {
        desc: '分页',
        exp: 2,
      },
    },
    $body: {
afc163's avatar
afc163 committed
25
      name: 'Serati Ma',
afc163's avatar
afc163 committed
26
      avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
27 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
      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
61
    res.send({ message: 'Ok' });
62 63
  },
  'GET /api/tags': mockjs.mock({
nikogu's avatar
nikogu committed
64
    'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }]
65 66
  }),
  'GET /api/fake_list': getFakeList,
valleykid's avatar
valleykid committed
67
  'POST /api/fake_list': postFakeList,
68
  '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 128 129 130 131 132 133 134
  'GET /api/401': (req, res) => {
    res.status(401).send({
      "timestamp": 1513932555104,
      "status": 401,
      "error": "Unauthorized",
      "message": "Unauthorized",
      "path": "/base/category/list"
    });
  },
135 136
};

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