use-on-demand
Version:
176 lines • 6.54 kB
JavaScript
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