UNPKG

use-on-demand

Version:
176 lines 6.54 kB
import { __assign } from "tslib"; import { xX_SDateTime_Helper } from '../../../../../symbol-date-time/SDateTime_Helper'; import { LowDB_Helper } from '../../base/lowdb/LowDB_Helper'; // var write = LowDB_Helper.write, read = LowDB_Helper.read; var DbRouter_Helper = /** @class */ (function () { function DbRouter_Helper() { } return DbRouter_Helper; }()); export { DbRouter_Helper }; var CRUD_Helper = /** @class */ (function () { function CRUD_Helper() { } CRUD_Helper.process_query_result = function (v, // 单个元素,或是数组。 increaseOrder) { if (increaseOrder === void 0) { increaseOrder = false; } return Array.isArray(v) // 数组 ? v.sort(function (newV, oldV) { var diff = new Date(newV.updatedAt || '').valueOf() - new Date(oldV.updatedAt || '').valueOf(); return increaseOrder ? diff : -diff; }) // 单个元素,也变成一个数组。如果存在,则长度为1;如果不存在,则长度为0 : (v ? [v] : []); }; CRUD_Helper.array_addItem = function (dbDotPath, bean) { write.array.insertItem_withLodashId(dbDotPath, __assign(__assign({}, bean), { createdAt: xX_SDateTime_Helper.getTimeString(new Date()), updatedAt: xX_SDateTime_Helper.getTimeString(new Date()) })); }; CRUD_Helper.array_updateItem = function (dbDotPath, bean, primary_key) { var _a; if (primary_key === void 0) { primary_key = 'id'; } write.array.updateSomeItem(dbDotPath, (_a = {}, // 此处,更加灵活地,处理【主键】 _a[primary_key] = bean[primary_key], _a), __assign(__assign({}, bean), { updatedAt: xX_SDateTime_Helper.getTimeString(new Date()) })); }; CRUD_Helper.array_delItem = function (dbDotPath, bean) { write.array.removeItem_byQuery(dbDotPath, { id: bean.id, }); }; // // // /** * 快速生成CRUD。 */ CRUD_Helper.crudRoute = function (r, apiDashPath, // 需要以【/】开头。使用【/】作为连接符。 dbDotPath, // 使用【.】作为连接符。 type) { if (type === void 0) { type = 'list'; } var increaseOrder = false; // 是否时间增序 // 获取【列表】或【单个对象】 r.get(apiDashPath, function (req, res, next) { // const v : BEAN[] = read.any.getValue(dbDotPath); var query = req.query; console.log('query', query); var v = read.any.getValue_byQuery(dbDotPath, { projectId: query.projectId, }); // console.log('获取数据', v); switch (type) { case 'list': { res.send(CRUD_Helper.process_query_result(v, increaseOrder)); break; } case 'single_obj': { res.send(v); break; } default: { throw new Error('不应该出现这种情况'); } } }); // 更新条目 r.put(apiDashPath, function (req, res, next) { var bean = req.body; switch (type) { case 'list': { CRUD_Helper.array_updateItem(dbDotPath, bean); break; } case 'single_obj': { write.any.createUpdate(dbDotPath, bean); break; } default: { throw new Error('不应该出现这种情况'); } } console.log('获取数据', bean); res.send(bean); }); // 创建条目 r.post(apiDashPath, function (req, res, next) { var bean = req.body; switch (type) { case 'list': { CRUD_Helper.array_addItem(dbDotPath, bean); break; } case 'single_obj': { write.any.createUpdate(dbDotPath, bean); break; } default: { throw new Error('不应该出现这种情况'); } } console.log('获取数据', bean); res.send(bean); }); // 删除条目 r.delete(apiDashPath, function (req, res, next) { var bean = req.body; switch (type) { case 'list': { CRUD_Helper.array_delItem(dbDotPath, bean); break; } case 'single_obj': { write.any.createUpdate(dbDotPath, {}); break; } default: { throw new Error('不应该出现这种情况'); } } console.log('获取数据', bean); res.send(bean); }); }; return CRUD_Helper; }()); export { CRUD_Helper }; export function lifeTasksCrud(r, apiDashPath, // 需要以【/】开头。使用【/】作为连接符。 dbDotPath) { // 查询,列表。 r.get(apiDashPath, function (req, res, next) { /** * 思路: * 1. 一个数据格式。 * 2. { date : '' , list: [ ] } */ var query = req.query; console.log('query', query); var v = read.array.getValue_byQuery(dbDotPath, { queryObj: query, }); console.log('获取数据', v); res.send(v); }); // 新增,或者更改。 r.post(apiDashPath, function (req, res, next) { var bean = req.body; var date = bean.date; var v = read.array.getValue_byQuery(dbDotPath, { queryObj: { date: date, }, }); var exist = v.length > 0; if (exist) { // 更新数据 CRUD_Helper.array_updateItem(dbDotPath, bean, 'date'); console.log('更新数据'); } else { // 插入数据 CRUD_Helper.array_addItem(dbDotPath, bean); console.log('插入数据'); } res.send(bean); }); } //# sourceMappingURL=DbRouter_Helper.js.map