UNPKG

12.7 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4Object.defineProperty(exports, "__esModule", {
5 value: true
6});
7exports["default"] = exports.ListApi = void 0;
8var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18var _env = require("@lskjs/env");
19var _err = _interopRequireDefault(require("@lskjs/err"));
20var _tryJSONparse = _interopRequireDefault(require("@lskjs/utils/tryJSONparse"));
21var _forEach = _interopRequireDefault(require("lodash/forEach"));
22var _get3 = _interopRequireDefault(require("lodash/get"));
23var _mapValues = _interopRequireDefault(require("lodash/mapValues"));
24var _pick = _interopRequireDefault(require("lodash/pick"));
25var _set = _interopRequireDefault(require("lodash/set"));
26var _Api = _interopRequireDefault(require("./Api"));
27function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
30function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31var ListApi = /*#__PURE__*/function (_BaseApi) {
32 (0, _inherits2["default"])(ListApi, _BaseApi);
33 var _super = _createSuper(ListApi);
34 function ListApi() {
35 (0, _classCallCheck2["default"])(this, ListApi);
36 return _super.apply(this, arguments);
37 }
38 (0, _createClass2["default"])(ListApi, [{
39 key: "getRoutes",
40 value: function getRoutes() {
41 return _objectSpread(_objectSpread({}, (0, _get2["default"])((0, _getPrototypeOf2["default"])(ListApi.prototype), "getRoutes", this).call(this)), {}, {
42 '/count': this.count.bind(this),
43 '/find': this.find.bind(this),
44 '/list': this.find.bind(this),
45 '/findOne': this.findOne.bind(this),
46 '/get': this.findOne.bind(this),
47 '/create': this.create.bind(this),
48 '/update': this.update.bind(this),
49 '/edit': this.update.bind(this),
50 '/remove': this.remove.bind(this),
51 '/delete': this.remove.bind(this)
52 });
53 }
54 }, {
55 key: "cache",
56 value: function cache(key, cb) {
57 return cb();
58 }
59 }, {
60 key: "getListParams",
61 value: function getListParams(req) {
62 var data = req.data;
63 var params = (0, _mapValues["default"])((0, _pick["default"])(data, ['filter', 'sort', 'skip', 'limit', 'select', 'view', 'operation']), function (a) {
64 return (0, _tryJSONparse["default"])(a);
65 });
66 if (!params.filter) params.filter = {};
67 if (req.data) {
68 (0, _forEach["default"])(req.data, function (val, key) {
69 if (key.substr(0, 'filter.'.length) === 'filter.') {
70 (0, _set["default"])(params, key, val);
71 }
72 if (key.substr(0, 'sort.'.length) === 'sort.') {
73 (0, _set["default"])(params, key, val);
74 }
75 });
76 }
77 if (params.limit > 100) params.limit = 100;
78 if (!params.select) params.select = [];
79 if (typeof params.select === 'string') {
80 params.select = params.select.trim().split(',').map(function (a) {
81 return a.trim();
82 });
83 }
84 if (!Array.isArray(params.select)) throw new _err["default"]('select not array');
85 if (!params.view) params.view = 'default';
86 // params.operation = req.data.operation;
87
88 return params;
89 }
90 }, {
91 key: "countByParams",
92 value: function countByParams(Model) {
93 var incomeParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
94 var systemParams = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
95 var params = this.__getParams(Model, incomeParams, systemParams);
96 return Model.countDocuments(params.filter);
97 }
98 }, {
99 key: "__getSelect",
100 value: function __getSelect(Model) {
101 var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
102 var select = (0, _get3["default"])(params, 'select', (0, _get3["default"])(params, 'req.data.select', []));
103 var view = (0, _get3["default"])(params, 'view', (0, _get3["default"])(params, 'req.data.view', 'default'));
104 if (typeof select === 'string') select = [select];
105 var _Model$views = Model.views,
106 views = _Model$views === void 0 ? {} : _Model$views;
107 return [].concat((0, _toConsumableArray2["default"])(views[view] || []), (0, _toConsumableArray2["default"])(select || []));
108 }
109 }, {
110 key: "__getParams",
111 value: function __getParams(Model) {
112 var incomeParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
113 var systemParams = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
114 var params = _objectSpread(_objectSpread({}, Model.defaultParams || {}), (0, _pick["default"])(incomeParams, ['filter', 'sort', 'skip', 'limit', 'select', 'view']));
115 params.select = this.__getSelect(params);
116 if (_env.isDev && (incomeParams.debug || params.select.includes('*'))) {
117 delete params.select;
118 }
119 if (params.limit > 100) {
120 console.log('params.limit > 100'); //eslint-disable-line
121 params.limit = 100;
122 }
123 return _objectSpread(_objectSpread({}, params), systemParams);
124 }
125 }, {
126 key: "findByParams",
127 value: function findByParams(Model) {
128 var incomeParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
129 var systemParams = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
130 var params = this.__getParams(Model, incomeParams, systemParams);
131 var res = Model.find(params.filter);
132 if (params.sort) {
133 res = res.sort(params.sort);
134 }
135 if (params.skip && +params.skip) {
136 res = res.skip(+params.skip);
137 }
138 if (params.limit && +params.limit) {
139 res = res.limit(+params.limit);
140 }
141 if (params.select) {
142 res = res.select(params.select);
143 }
144 // if (params.then) {
145 // res = params.then(res);
146 // }
147 // if (params.populate) {
148 // res = res.populate(params.populate);
149 // }
150 // if (params.prepare) {
151 // return this.prepare(res, params.prepare);
152 // }
153 return res;
154 }
155 }, {
156 key: "count",
157 value: function () {
158 var _count = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
159 return _regenerator["default"].wrap(function _callee$(_context) {
160 while (1) switch (_context.prev = _context.next) {
161 case 0:
162 throw new _err["default"]('api.notImplemented', {
163 status: 500
164 });
165 case 1:
166 case "end":
167 return _context.stop();
168 }
169 }, _callee);
170 }));
171 function count() {
172 return _count.apply(this, arguments);
173 }
174 return count;
175 }()
176 }, {
177 key: "find",
178 value: function () {
179 var _find = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
180 return _regenerator["default"].wrap(function _callee2$(_context2) {
181 while (1) switch (_context2.prev = _context2.next) {
182 case 0:
183 throw new _err["default"]('api.notImplemented', {
184 status: 500
185 });
186 case 1:
187 case "end":
188 return _context2.stop();
189 }
190 }, _callee2);
191 }));
192 function find() {
193 return _find.apply(this, arguments);
194 }
195 return find;
196 }()
197 }, {
198 key: "findOne",
199 value: function () {
200 var _findOne = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
201 return _regenerator["default"].wrap(function _callee3$(_context3) {
202 while (1) switch (_context3.prev = _context3.next) {
203 case 0:
204 throw new _err["default"]('api.notImplemented', {
205 status: 500
206 });
207 case 1:
208 case "end":
209 return _context3.stop();
210 }
211 }, _callee3);
212 }));
213 function findOne() {
214 return _findOne.apply(this, arguments);
215 }
216 return findOne;
217 }()
218 }, {
219 key: "create",
220 value: function () {
221 var _create = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
222 return _regenerator["default"].wrap(function _callee4$(_context4) {
223 while (1) switch (_context4.prev = _context4.next) {
224 case 0:
225 throw new _err["default"]('api.notImplemented', {
226 status: 500
227 });
228 case 1:
229 case "end":
230 return _context4.stop();
231 }
232 }, _callee4);
233 }));
234 function create() {
235 return _create.apply(this, arguments);
236 }
237 return create;
238 }()
239 }, {
240 key: "update",
241 value: function () {
242 var _update = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
243 return _regenerator["default"].wrap(function _callee5$(_context5) {
244 while (1) switch (_context5.prev = _context5.next) {
245 case 0:
246 throw new _err["default"]('api.notImplemented', {
247 status: 500
248 });
249 case 1:
250 case "end":
251 return _context5.stop();
252 }
253 }, _callee5);
254 }));
255 function update() {
256 return _update.apply(this, arguments);
257 }
258 return update;
259 }()
260 }, {
261 key: "remove",
262 value: function () {
263 var _remove = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
264 return _regenerator["default"].wrap(function _callee6$(_context6) {
265 while (1) switch (_context6.prev = _context6.next) {
266 case 0:
267 throw new _err["default"]('api.notImplemented', {
268 status: 500
269 });
270 case 1:
271 case "end":
272 return _context6.stop();
273 }
274 }, _callee6);
275 }));
276 function remove() {
277 return _remove.apply(this, arguments);
278 }
279 return remove;
280 }()
281 }]);
282 return ListApi;
283}(_Api["default"]);
284exports.ListApi = ListApi;
285var _default = ListApi;
286exports["default"] = _default;
287//# sourceMappingURL=ListApi.js.map
\No newline at end of file