UNPKG

shradmin

Version:

A frontend Framework for building admin application, using antd and mirrorjs.

81 lines (66 loc) 2.51 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _superagent = require('superagent'); var _superagent2 = _interopRequireDefault(_superagent); var _types = require('./types'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var fetch = function fetch(url, type, model, params, headers) { switch (type) { case _types.GET_LIST: var _page = params._page, _limit = params._limit, _sort = params._sort, _order = params._order, _filter = params._filter; var query = _extends({ _page: _page, _limit: _limit, _sort: _sort, _order: _order }, _filter); return _superagent2.default.get(url + '/' + model).set(headers).query(query); case _types.GET_ONE: return _superagent2.default.get(url + '/' + model + '/' + params.id).set(headers); case _types.CREATE: return _superagent2.default.post(url + '/' + model).set(headers).send(params.data); case _types.UPDATE: return _superagent2.default.patch(url + '/' + model + '/' + params.id).set(headers).send(params.data); case _types.REMOVE: return _superagent2.default.delete(url + '/' + model + '/' + params.id).set(headers); default: throw new Error('Unsupported fetch type ' + type); } }; var formatResponse = function formatResponse(response, type) { var body = response.body, headers = response.headers; switch (type) { case _types.GET_LIST: return { data: body, total: parseInt(headers['x-total-count'].split('/').pop(), 10) }; case _types.GET_ONE: return { data: body }; default: return { data: body }; } }; exports.default = function (url) { var getHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () { return {}; }; return function (type, model) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var headers = getHeaders(type, model, params); return fetch(url, type, model, params, headers).then(function (response) { return formatResponse(response, type); }); }; }; module.exports = exports['default'];