@xuda.io/xuda-dbs-plugin-xuda 1.0.78 → 1.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server.js +18 -700
package/package.json
CHANGED
package/server.js
CHANGED
@@ -717,29 +717,30 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
|
|
717
717
|
opt.fields.push("_rev");
|
718
718
|
|
719
719
|
// xuda
|
720
|
-
var cache_string = JSON.stringify(opt);
|
721
720
|
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
721
|
+
// var cache_string = JSON.stringify(opt);
|
722
|
+
|
723
|
+
// if (__.CACHE_QUERY_REQ?.[app_id_reference]?.[e.table_id]?.[cache_string]) {
|
724
|
+
// return await done(
|
725
|
+
// __.CACHE_QUERY_REQ[app_id_reference][e.table_id][cache_string].doc
|
726
|
+
// );
|
727
|
+
// }
|
727
728
|
|
728
729
|
try {
|
729
730
|
try {
|
730
731
|
const doc = await db.find(opt);
|
731
|
-
if (!__.CACHE_QUERY_REQ[app_id_reference]) {
|
732
|
-
|
733
|
-
}
|
732
|
+
// if (!__.CACHE_QUERY_REQ[app_id_reference]) {
|
733
|
+
// __.CACHE_QUERY_REQ[app_id_reference] = {};
|
734
|
+
// }
|
734
735
|
|
735
|
-
if (!__.CACHE_QUERY_REQ[app_id_reference][e.table_id]) {
|
736
|
-
|
737
|
-
}
|
736
|
+
// if (!__.CACHE_QUERY_REQ[app_id_reference][e.table_id]) {
|
737
|
+
// __.CACHE_QUERY_REQ[app_id_reference][e.table_id] = {};
|
738
|
+
// }
|
738
739
|
|
739
|
-
__.CACHE_QUERY_REQ[app_id_reference][e.table_id][cache_string] = {
|
740
|
-
|
741
|
-
|
742
|
-
};
|
740
|
+
// __.CACHE_QUERY_REQ[app_id_reference][e.table_id][cache_string] = {
|
741
|
+
// doc: doc,
|
742
|
+
// ts: Date.now(),
|
743
|
+
// };
|
743
744
|
|
744
745
|
if (doc?.warning?.includes("No matching index found")) {
|
745
746
|
const index_name = `index_${e.table_id}_${new Date()
|
@@ -883,7 +884,7 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
|
|
883
884
|
for await (var val of body.rows) {
|
884
885
|
if (e.ids) {
|
885
886
|
rows.push({ id: val.id, value: val.value._id });
|
886
|
-
|
887
|
+
continue;
|
887
888
|
}
|
888
889
|
rows.push({
|
889
890
|
id: val.id,
|
@@ -1026,689 +1027,6 @@ exports.read = async (params, setup_doc, resolve, reject) => {
|
|
1026
1027
|
}
|
1027
1028
|
|
1028
1029
|
return resolve(ret.data);
|
1029
|
-
|
1030
|
-
// var key;
|
1031
|
-
|
1032
|
-
// const runtime_get_mango_data = async function () {
|
1033
|
-
// const done = async function (body) {
|
1034
|
-
// const raw_data = async function () {
|
1035
|
-
// var rows = [];
|
1036
|
-
|
1037
|
-
// for await (var val of body.docs) {
|
1038
|
-
// var data = {};
|
1039
|
-
// if (e.fields) {
|
1040
|
-
// for await (const [key2, val2] of Object.entries(
|
1041
|
-
// typeof e.fields === "string" ? e.fields.split(",") : e.fields
|
1042
|
-
// )) {
|
1043
|
-
// if (val.udfData) {
|
1044
|
-
// data[val2] = val["udfData"]["data"][val2];
|
1045
|
-
// } else {
|
1046
|
-
// data[val2] = null;
|
1047
|
-
// }
|
1048
|
-
// }
|
1049
|
-
// } else {
|
1050
|
-
// for await (const [key2, val2] of Object.entries(
|
1051
|
-
// table_obj.tableFields
|
1052
|
-
// )) {
|
1053
|
-
// if (val.udfData) {
|
1054
|
-
// data[val2.data.field_id] =
|
1055
|
-
// val["udfData"]["data"][val2.data.field_id];
|
1056
|
-
// } else {
|
1057
|
-
// data[val2.data.field_id] = null;
|
1058
|
-
// }
|
1059
|
-
// }
|
1060
|
-
// }
|
1061
|
-
|
1062
|
-
// rows.push({
|
1063
|
-
// id: val._id,
|
1064
|
-
// value: {
|
1065
|
-
// udfData: { data: data },
|
1066
|
-
// _id: val._id,
|
1067
|
-
// _rev: val._rev,
|
1068
|
-
// },
|
1069
|
-
// });
|
1070
|
-
// }
|
1071
|
-
|
1072
|
-
// return resolve({ rows: rows, total_rows: rows.length });
|
1073
|
-
// };
|
1074
|
-
// const count_data = async function () {
|
1075
|
-
// var rows = [];
|
1076
|
-
// var keys_obj = {};
|
1077
|
-
// const table_index = find_item_by_key_root(
|
1078
|
-
// table_obj.tableIndexes,
|
1079
|
-
// "id",
|
1080
|
-
// e.indexId
|
1081
|
-
// );
|
1082
|
-
// if (e.indexId && table_index) {
|
1083
|
-
// var index_keys = table_index.data.keys;
|
1084
|
-
// var index_id = e.indexId;
|
1085
|
-
|
1086
|
-
// for await (var val of body.docs) {
|
1087
|
-
// var data = {};
|
1088
|
-
// const _tableFieldsObj = find_item_by_key(
|
1089
|
-
// table_obj.tableFields,
|
1090
|
-
// "field_id",
|
1091
|
-
// e.field_id
|
1092
|
-
// );
|
1093
|
-
|
1094
|
-
// for await (const [key2, val2] of Object.entries(
|
1095
|
-
// table_obj.tableFields
|
1096
|
-
// )) {
|
1097
|
-
// data[val2.data.field_id] =
|
1098
|
-
// val["udfData"]["data"][val2.data.field_id];
|
1099
|
-
// }
|
1100
|
-
|
1101
|
-
// var key_arr = [];
|
1102
|
-
|
1103
|
-
// for await (const [key_idx, key_name] of Object.entries(
|
1104
|
-
// index_keys
|
1105
|
-
// )) {
|
1106
|
-
// key_arr.push(data[key_name]);
|
1107
|
-
// }
|
1108
|
-
// keys_obj[key_arr]++;
|
1109
|
-
// }
|
1110
|
-
|
1111
|
-
// for await (const [key_arr, key_count] of Object.entries(keys_obj)) {
|
1112
|
-
// rows.push({
|
1113
|
-
// key: [e.key, index_id, key_arr],
|
1114
|
-
// value: body.docs.length,
|
1115
|
-
// });
|
1116
|
-
// }
|
1117
|
-
// } else {
|
1118
|
-
// // no index
|
1119
|
-
// rows.push({ key: "", value: body.docs.length });
|
1120
|
-
// }
|
1121
|
-
// return resolve({ rows: rows, total_rows: rows.length });
|
1122
|
-
// };
|
1123
|
-
|
1124
|
-
// const totals = async function () {
|
1125
|
-
// const median = (arr) => {
|
1126
|
-
// const mid = Math.floor(arr.length / 2),
|
1127
|
-
// nums = [...arr].sort((a, b) => a - b);
|
1128
|
-
// return arr.length % 2 !== 0
|
1129
|
-
// ? nums[mid]
|
1130
|
-
// : (nums[mid - 1] + nums[mid]) / 2;
|
1131
|
-
// };
|
1132
|
-
|
1133
|
-
// var total_fields_info = JSON.parse(e.total_fields_info);
|
1134
|
-
// var totals_prop = {};
|
1135
|
-
// var totals_obj = {};
|
1136
|
-
// var totals_counts = {};
|
1137
|
-
// var totals_arr = {};
|
1138
|
-
// var totals_sums = {};
|
1139
|
-
// var totals_group_obj = {};
|
1140
|
-
|
1141
|
-
// for await (const [key, val] of Object.entries(total_fields_info)) {
|
1142
|
-
// totals_counts[val.field_id] = 0;
|
1143
|
-
// totals_prop[val.field_id] = val;
|
1144
|
-
// totals_arr[val.field_id] = [];
|
1145
|
-
// totals_sums[val.field_id] = 0;
|
1146
|
-
// totals_group_obj[val.field_id] = {};
|
1147
|
-
// }
|
1148
|
-
|
1149
|
-
// for await (var row_data of body.docs) {
|
1150
|
-
// for await (const [key, val] of Object.entries(
|
1151
|
-
// row_data.udfData.data
|
1152
|
-
// )) {
|
1153
|
-
// var field_id = key;
|
1154
|
-
// var value = val;
|
1155
|
-
// totals_counts[field_id]++;
|
1156
|
-
|
1157
|
-
// switch (totals_prop[field_id].sum_type) {
|
1158
|
-
// case "sum":
|
1159
|
-
// if (typeof totals_obj[field_id] === "undefined") {
|
1160
|
-
// totals_obj[field_id] = value;
|
1161
|
-
// } else {
|
1162
|
-
// totals_obj[field_id] += value;
|
1163
|
-
// }
|
1164
|
-
// break;
|
1165
|
-
|
1166
|
-
// case "average":
|
1167
|
-
// totals_sums[field_id] += value;
|
1168
|
-
// totals_obj[field_id] =
|
1169
|
-
// totals_sums[field_id] / totals_counts[field_id];
|
1170
|
-
// break;
|
1171
|
-
|
1172
|
-
// case "median":
|
1173
|
-
// if (!totals_arr[field_id].includes(value)) {
|
1174
|
-
// totals_arr[field_id].push(value);
|
1175
|
-
// }
|
1176
|
-
// totals_obj[field_id] = median(totals_arr[field_id]);
|
1177
|
-
// break;
|
1178
|
-
// case "min":
|
1179
|
-
// if (
|
1180
|
-
// typeof totals_obj[field_id] === "undefined" ||
|
1181
|
-
// value < totals_obj[field_id]
|
1182
|
-
// ) {
|
1183
|
-
// totals_obj[field_id] = value;
|
1184
|
-
// }
|
1185
|
-
// break;
|
1186
|
-
// case "max":
|
1187
|
-
// if (
|
1188
|
-
// typeof totals_obj[field_id] === "undefined" ||
|
1189
|
-
// value > totals_obj[field_id]
|
1190
|
-
// ) {
|
1191
|
-
// totals_obj[field_id] = value;
|
1192
|
-
// }
|
1193
|
-
// break;
|
1194
|
-
// case "count":
|
1195
|
-
// if (typeof totals_obj[field_id] === "undefined") {
|
1196
|
-
// totals_obj[field_id] = 1;
|
1197
|
-
// } else {
|
1198
|
-
// totals_obj[field_id]++;
|
1199
|
-
// }
|
1200
|
-
// break;
|
1201
|
-
// case "distinct":
|
1202
|
-
// if (!totals_arr[field_id].includes(value)) {
|
1203
|
-
// totals_arr[field_id].push(value);
|
1204
|
-
// }
|
1205
|
-
// totals_obj[field_id] = totals_arr[field_id].length;
|
1206
|
-
// break;
|
1207
|
-
|
1208
|
-
// case "group":
|
1209
|
-
// if (!totals_obj[field_id]) {
|
1210
|
-
// totals_obj[field_id] = {};
|
1211
|
-
// }
|
1212
|
-
|
1213
|
-
// if (typeof totals_obj[field_id][value] === "undefined") {
|
1214
|
-
// totals_obj[field_id][value] = 1; //value;
|
1215
|
-
// } else {
|
1216
|
-
// totals_obj[field_id][value]++; //+= value;
|
1217
|
-
// }
|
1218
|
-
|
1219
|
-
// break;
|
1220
|
-
// default:
|
1221
|
-
// totals_obj[field_id] = null;
|
1222
|
-
// }
|
1223
|
-
// }
|
1224
|
-
// }
|
1225
|
-
// return resolve(totals_obj);
|
1226
|
-
// };
|
1227
|
-
// if (e.count === "true" || e.count === true) {
|
1228
|
-
// return count_data();
|
1229
|
-
// }
|
1230
|
-
// if (e.total_fields_info) {
|
1231
|
-
// return totals();
|
1232
|
-
// }
|
1233
|
-
// return raw_data();
|
1234
|
-
// };
|
1235
|
-
|
1236
|
-
// var limit = 99999;
|
1237
|
-
// var skip = 0;
|
1238
|
-
|
1239
|
-
// if (e.limit) {
|
1240
|
-
// limit = parseInt(e.limit);
|
1241
|
-
// }
|
1242
|
-
|
1243
|
-
// if (e.skip) {
|
1244
|
-
// skip = JSON.parse(e.skip);
|
1245
|
-
// }
|
1246
|
-
|
1247
|
-
// var fields = [];
|
1248
|
-
// if (e.fields) {
|
1249
|
-
// for await (const [key, val] of Object.entries(
|
1250
|
-
// typeof e.fields === "string" ? e.fields.split(",") : e.fields
|
1251
|
-
// )) {
|
1252
|
-
// fields.push(val);
|
1253
|
-
// }
|
1254
|
-
// } else {
|
1255
|
-
// for await (const [key, val] of Object.entries(table_obj.tableFields)) {
|
1256
|
-
// fields.push(val.data.field_id);
|
1257
|
-
// }
|
1258
|
-
// }
|
1259
|
-
|
1260
|
-
// var data = {};
|
1261
|
-
// var from = e.filter_from ? JSON.parse(e.filter_from) : {};
|
1262
|
-
// var to = e.filter_to ? JSON.parse(e.filter_to) : {};
|
1263
|
-
// var sort = [];
|
1264
|
-
// for await (const [key, val] of Object.entries(from)) {
|
1265
|
-
// var field_name = key;
|
1266
|
-
|
1267
|
-
// sort.push(field_name);
|
1268
|
-
|
1269
|
-
// if (val === to[key]) {
|
1270
|
-
// data[field_name] = val;
|
1271
|
-
// } else {
|
1272
|
-
// data[field_name] = { $gte: val };
|
1273
|
-
// }
|
1274
|
-
// }
|
1275
|
-
|
1276
|
-
// for await (const [key, val] of Object.entries(to)) {
|
1277
|
-
// var field_name = key;
|
1278
|
-
|
1279
|
-
// if (val !== from[key]) {
|
1280
|
-
// data[field_name]["$lte"] = val;
|
1281
|
-
// }
|
1282
|
-
// }
|
1283
|
-
|
1284
|
-
// var selector = {};
|
1285
|
-
|
1286
|
-
// if (from && !_.isEmpty(from)) {
|
1287
|
-
// selector = data;
|
1288
|
-
// }
|
1289
|
-
|
1290
|
-
// var opt = {
|
1291
|
-
// selector: selector,
|
1292
|
-
// limit: limit,
|
1293
|
-
// skip: skip,
|
1294
|
-
// fields: fields,
|
1295
|
-
// };
|
1296
|
-
|
1297
|
-
// if (sort.length) {
|
1298
|
-
// opt.sort = sort;
|
1299
|
-
// }
|
1300
|
-
|
1301
|
-
// if (e.sort_fields && JSON.parse(e.sort_fields).length) {
|
1302
|
-
// opt.sort = JSON.parse(e.sort_fields);
|
1303
|
-
// if (opt.sort) {
|
1304
|
-
// for await (const [key, val] of Object.entries(opt.sort)) {
|
1305
|
-
// var field_name = val.colId;
|
1306
|
-
// opt.sort[key] = {
|
1307
|
-
// ["udfData.data." + field_name]: val.sort,
|
1308
|
-
// };
|
1309
|
-
// }
|
1310
|
-
// }
|
1311
|
-
// }
|
1312
|
-
|
1313
|
-
// if (e.grid_filter_info) {
|
1314
|
-
// for await (const [key, val] of Object.entries(
|
1315
|
-
// JSON.parse(e.grid_filter_info)
|
1316
|
-
// )) {
|
1317
|
-
// var field_name = key;
|
1318
|
-
// var condition = "$and";
|
1319
|
-
// const make_selector = function (val) {
|
1320
|
-
// var value = "";
|
1321
|
-
// var operator = "";
|
1322
|
-
// var value_to = "";
|
1323
|
-
// var operator_to = "";
|
1324
|
-
|
1325
|
-
// if (val.filterType === "date") {
|
1326
|
-
// var date = val.dateFrom.substr(0, 10);
|
1327
|
-
// switch (val.type) {
|
1328
|
-
// case "equals":
|
1329
|
-
// operator = "$regex";
|
1330
|
-
// value = `^${date}`;
|
1331
|
-
// break;
|
1332
|
-
|
1333
|
-
// case "greaterThan":
|
1334
|
-
// operator = "$gt";
|
1335
|
-
// value = `${date}`;
|
1336
|
-
// break;
|
1337
|
-
|
1338
|
-
// case "lessThan":
|
1339
|
-
// operator = "$lt";
|
1340
|
-
// value = `${date}`;
|
1341
|
-
// break;
|
1342
|
-
|
1343
|
-
// case "blank":
|
1344
|
-
// operator = "$eq";
|
1345
|
-
// value = "";
|
1346
|
-
// break;
|
1347
|
-
|
1348
|
-
// case "inRange":
|
1349
|
-
// operator = "$gte";
|
1350
|
-
// value = date;
|
1351
|
-
// operator_to = "$lte";
|
1352
|
-
// value_to = val.dateTo.substr(0, 10);
|
1353
|
-
// break;
|
1354
|
-
|
1355
|
-
// case "notEqual":
|
1356
|
-
// operator = "$regex";
|
1357
|
-
// value = `^((?!${date}).)*$`;
|
1358
|
-
// break;
|
1359
|
-
|
1360
|
-
// case "notBlank":
|
1361
|
-
// operator = "$ne";
|
1362
|
-
// value = "";
|
1363
|
-
// break;
|
1364
|
-
|
1365
|
-
// default:
|
1366
|
-
// operator = "$regex";
|
1367
|
-
// value = `^${date}`;
|
1368
|
-
// }
|
1369
|
-
// }
|
1370
|
-
|
1371
|
-
// if (val.filterType === "string") {
|
1372
|
-
// switch (val.type) {
|
1373
|
-
// case "contains":
|
1374
|
-
// operator = "$regex";
|
1375
|
-
// value = `${val.filter}`;
|
1376
|
-
// break;
|
1377
|
-
|
1378
|
-
// case "notContains":
|
1379
|
-
// operator = "$regex";
|
1380
|
-
// value = `^((?!${val.filter}).)*$`;
|
1381
|
-
// break;
|
1382
|
-
|
1383
|
-
// case "equals":
|
1384
|
-
// operator = "$eq";
|
1385
|
-
// value = `${val.filter}`;
|
1386
|
-
// break;
|
1387
|
-
|
1388
|
-
// case "notEqual":
|
1389
|
-
// operator = "$ne";
|
1390
|
-
// value = `${val.filter}`;
|
1391
|
-
// break;
|
1392
|
-
|
1393
|
-
// case "startsWith":
|
1394
|
-
// operator = "$regex";
|
1395
|
-
// value = `^${val.filter}`;
|
1396
|
-
// break;
|
1397
|
-
|
1398
|
-
// case "endsWith":
|
1399
|
-
// operator = "$regex";
|
1400
|
-
// value = `${val.filter}$`;
|
1401
|
-
// break;
|
1402
|
-
|
1403
|
-
// case "blank":
|
1404
|
-
// operator = "$eq";
|
1405
|
-
// value = "";
|
1406
|
-
// break;
|
1407
|
-
|
1408
|
-
// case "notBlank":
|
1409
|
-
// operator = "$ne";
|
1410
|
-
// value = "";
|
1411
|
-
// break;
|
1412
|
-
|
1413
|
-
// default:
|
1414
|
-
// value = "^" + val.filter;
|
1415
|
-
// }
|
1416
|
-
// }
|
1417
|
-
|
1418
|
-
// if (val.filterType === "number") {
|
1419
|
-
// switch (val.type) {
|
1420
|
-
// case "equals":
|
1421
|
-
// operator = "$eq";
|
1422
|
-
// value = val.filter;
|
1423
|
-
// break;
|
1424
|
-
|
1425
|
-
// case "notEqual":
|
1426
|
-
// operator = "$ne";
|
1427
|
-
// value = val.filter;
|
1428
|
-
// break;
|
1429
|
-
|
1430
|
-
// case "lessThanOrEqual":
|
1431
|
-
// operator = "$lte";
|
1432
|
-
// value = val.filter;
|
1433
|
-
// break;
|
1434
|
-
|
1435
|
-
// case "greaterThanOrEqual":
|
1436
|
-
// operator = "$gte";
|
1437
|
-
// value = val.filter;
|
1438
|
-
// break;
|
1439
|
-
|
1440
|
-
// case "lessThan":
|
1441
|
-
// operator = "$lt";
|
1442
|
-
// value = val.filter;
|
1443
|
-
// break;
|
1444
|
-
|
1445
|
-
// case "greaterThan":
|
1446
|
-
// operator = "$gt";
|
1447
|
-
// value = val.filter;
|
1448
|
-
// break;
|
1449
|
-
|
1450
|
-
// case "blank":
|
1451
|
-
// operator = "$eq";
|
1452
|
-
// value = 0;
|
1453
|
-
// break;
|
1454
|
-
|
1455
|
-
// case "notBlank":
|
1456
|
-
// operator = "$ne";
|
1457
|
-
// value = 0;
|
1458
|
-
// break;
|
1459
|
-
|
1460
|
-
// case "inRange":
|
1461
|
-
// operator = "$gte";
|
1462
|
-
// value = val.filter;
|
1463
|
-
// operator_to = "$lte";
|
1464
|
-
// value_to = val.filterTo;
|
1465
|
-
// break;
|
1466
|
-
|
1467
|
-
// default:
|
1468
|
-
// operator = "$eq";
|
1469
|
-
// value = val.filter;
|
1470
|
-
// }
|
1471
|
-
// }
|
1472
|
-
// if (!opt.selector[field_name]) {
|
1473
|
-
// opt.selector[field_name] = {};
|
1474
|
-
// }
|
1475
|
-
// if (!opt.selector[field_name][condition]) {
|
1476
|
-
// opt.selector[field_name][condition] = [];
|
1477
|
-
// }
|
1478
|
-
// opt.selector[field_name][condition].push({
|
1479
|
-
// [operator]: value,
|
1480
|
-
// });
|
1481
|
-
|
1482
|
-
// if (operator_to) {
|
1483
|
-
// opt.selector[field_name][condition].push({
|
1484
|
-
// [operator_to]: value_to,
|
1485
|
-
// });
|
1486
|
-
// }
|
1487
|
-
// };
|
1488
|
-
|
1489
|
-
// if (!val.condition1) {
|
1490
|
-
// make_selector(val);
|
1491
|
-
// } else {
|
1492
|
-
// condition = "$" + val.operator.toLowerCase();
|
1493
|
-
// make_selector(val.condition1);
|
1494
|
-
// make_selector(val.condition2);
|
1495
|
-
// }
|
1496
|
-
// }
|
1497
|
-
// }
|
1498
|
-
|
1499
|
-
// if (e.total_fields_info) {
|
1500
|
-
// fields = [];
|
1501
|
-
// for await (const [key, val] of Object.entries(
|
1502
|
-
// JSON.parse(e.total_fields_info)
|
1503
|
-
// )) {
|
1504
|
-
// var field_name = val.field_id;
|
1505
|
-
|
1506
|
-
// fields.push(field_name);
|
1507
|
-
// }
|
1508
|
-
// opt.fields = fields;
|
1509
|
-
// }
|
1510
|
-
// // fix names
|
1511
|
-
|
1512
|
-
// for await (const [key, val] of Object.entries(opt.fields)) {
|
1513
|
-
// opt.fields[key] = "udfData.data." + val;
|
1514
|
-
// }
|
1515
|
-
// if (!e.sort_fields || !JSON.parse(e.sort_fields).length) {
|
1516
|
-
// // added 2021 09 10
|
1517
|
-
// if (opt.sort) {
|
1518
|
-
// for await (const [key, val] of Object.entries(opt.sort)) {
|
1519
|
-
// opt.sort[key] = {
|
1520
|
-
// ["udfData.data." + val]: e.sortOrder === "des" ? "desc" : "asc",
|
1521
|
-
// };
|
1522
|
-
// }
|
1523
|
-
// }
|
1524
|
-
// }
|
1525
|
-
|
1526
|
-
// var selector_new = {};
|
1527
|
-
|
1528
|
-
// for await (const [key, val] of Object.entries(opt.selector)) {
|
1529
|
-
// selector_new["udfData.data." + key] = val;
|
1530
|
-
// }
|
1531
|
-
|
1532
|
-
// if (e.viewDbQuery) {
|
1533
|
-
// for await (const [key, val] of Object.entries(table_obj.tableFields)) {
|
1534
|
-
// if (e.viewDbQuery.includes(val.id)) {
|
1535
|
-
// const replacer = new RegExp(val.id, "g");
|
1536
|
-
// e.viewDbQuery = e.viewDbQuery.replace(
|
1537
|
-
// replacer,
|
1538
|
-
// "udfData.data." + val.data.field_id
|
1539
|
-
// );
|
1540
|
-
// }
|
1541
|
-
// }
|
1542
|
-
|
1543
|
-
// let viewDbQuery = JSON.parse(e.viewDbQuery.replace(/\\/g, ""));
|
1544
|
-
|
1545
|
-
// for await (const [key, val] of Object.entries(viewDbQuery)) {
|
1546
|
-
// selector_new[key] = val;
|
1547
|
-
// }
|
1548
|
-
// }
|
1549
|
-
|
1550
|
-
// opt.selector = selector_new;
|
1551
|
-
// opt.selector["udfData.udffileid"] = e.table_id;
|
1552
|
-
// opt.selector.stat = e.archived ? 4 : 3;
|
1553
|
-
|
1554
|
-
// opt.fields.push("_id");
|
1555
|
-
// opt.fields.push("_rev");
|
1556
|
-
|
1557
|
-
// // xuda
|
1558
|
-
// var cache_string = JSON.stringify(opt);
|
1559
|
-
|
1560
|
-
// // if (__.CACHE_QUERY_REQ?.[app_id_reference]?.[e.table_id]?.[cache_string]) {
|
1561
|
-
// // return await done(
|
1562
|
-
// // __.CACHE_QUERY_REQ[app_id_reference][e.table_id][cache_string].doc
|
1563
|
-
// // );
|
1564
|
-
// // }
|
1565
|
-
// debugger;
|
1566
|
-
// try {
|
1567
|
-
// try {
|
1568
|
-
// const doc = await db.find(opt);
|
1569
|
-
// if (!__.CACHE_QUERY_REQ[app_id_reference]) {
|
1570
|
-
// __.CACHE_QUERY_REQ[app_id_reference] = {};
|
1571
|
-
// }
|
1572
|
-
|
1573
|
-
// if (!__.CACHE_QUERY_REQ[app_id_reference][e.table_id]) {
|
1574
|
-
// __.CACHE_QUERY_REQ[app_id_reference][e.table_id] = {};
|
1575
|
-
// }
|
1576
|
-
|
1577
|
-
// __.CACHE_QUERY_REQ[app_id_reference][e.table_id][cache_string] = {
|
1578
|
-
// doc: doc,
|
1579
|
-
// ts: Date.now(),
|
1580
|
-
// };
|
1581
|
-
|
1582
|
-
// if (doc?.warning?.includes("No matching index found")) {
|
1583
|
-
// const index_name = `index_${e.table_id}_${new Date()
|
1584
|
-
// .valueOf()
|
1585
|
-
// .toString()}`;
|
1586
|
-
// var index = [];
|
1587
|
-
|
1588
|
-
// for await (const [key, val] of Object.entries(opt.selector)) {
|
1589
|
-
// index.push(key);
|
1590
|
-
// }
|
1591
|
-
// mango_index_obj = {
|
1592
|
-
// index: {
|
1593
|
-
// fields: index,
|
1594
|
-
// },
|
1595
|
-
// name: index_name,
|
1596
|
-
// ddoc: `mango_index_table_${e.table_id}`,
|
1597
|
-
// };
|
1598
|
-
// db.createIndex(mango_index_obj).then((result) => {
|
1599
|
-
// console.log(result);
|
1600
|
-
// });
|
1601
|
-
// }
|
1602
|
-
// return await done(doc);
|
1603
|
-
// } catch (err) {
|
1604
|
-
// if (err.error === "no_usable_index") {
|
1605
|
-
// const index_name = `index_${e.table_id}_${new Date()
|
1606
|
-
// .valueOf()
|
1607
|
-
// .toString()}`;
|
1608
|
-
|
1609
|
-
// mango_index_obj = {
|
1610
|
-
// index: {
|
1611
|
-
// fields: opt.sort,
|
1612
|
-
// },
|
1613
|
-
// name: index_name,
|
1614
|
-
// ddoc: `mango_index_table_${e.table_id}`,
|
1615
|
-
// };
|
1616
|
-
|
1617
|
-
// try {
|
1618
|
-
// const result = await db.createIndex(mango_index_obj);
|
1619
|
-
|
1620
|
-
// const doc = await db.find(opt);
|
1621
|
-
// return await done(doc);
|
1622
|
-
// } catch (error) {
|
1623
|
-
// return reject(error);
|
1624
|
-
// }
|
1625
|
-
// } else {
|
1626
|
-
// return reject(err.message);
|
1627
|
-
// }
|
1628
|
-
// }
|
1629
|
-
// } catch (err) {
|
1630
|
-
// return reject(err.error);
|
1631
|
-
// }
|
1632
|
-
// };
|
1633
|
-
|
1634
|
-
// const runtime_get_query_data = async function () {
|
1635
|
-
// var limit = 99999;
|
1636
|
-
// var skip = 0;
|
1637
|
-
|
1638
|
-
// if (e.limit) {
|
1639
|
-
// limit = e.limitP;
|
1640
|
-
// }
|
1641
|
-
|
1642
|
-
// if (e.skipP) {
|
1643
|
-
// skip = e.skipP;
|
1644
|
-
// }
|
1645
|
-
|
1646
|
-
// var desc = e.desc === "true" ? true : false;
|
1647
|
-
|
1648
|
-
// var opt;
|
1649
|
-
// if (key) {
|
1650
|
-
// opt = {
|
1651
|
-
// key: key,
|
1652
|
-
// include_docs: !e.ids && view !== "db_index_reduce",
|
1653
|
-
// limit: limit,
|
1654
|
-
// skip: skip,
|
1655
|
-
// };
|
1656
|
-
// } else {
|
1657
|
-
// if (e.reduce == "true") {
|
1658
|
-
// opt = {
|
1659
|
-
// startkey: e.startkey ? JSON.parse(e.startkey) : "",
|
1660
|
-
// endkey: e.endkey ? JSON.parse(e.endkey) : "",
|
1661
|
-
// include_docs: false,
|
1662
|
-
// reduce: true,
|
1663
|
-
// group_level: 3,
|
1664
|
-
|
1665
|
-
// descending: desc,
|
1666
|
-
// };
|
1667
|
-
// } else {
|
1668
|
-
// opt = {
|
1669
|
-
// startkey: e.startkey ? JSON.parse(e.startkey) : "",
|
1670
|
-
// endkey: e.endkey ? JSON.parse(e.endkey) : "",
|
1671
|
-
// include_docs: !e.ids,
|
1672
|
-
// limit: limit,
|
1673
|
-
// skip: skip,
|
1674
|
-
// descending: desc,
|
1675
|
-
// };
|
1676
|
-
// }
|
1677
|
-
// }
|
1678
|
-
|
1679
|
-
// try {
|
1680
|
-
// const body = db.view(`xuda`, view, opt);
|
1681
|
-
// if (e.reduce) {
|
1682
|
-
// return resolve(body);
|
1683
|
-
// }
|
1684
|
-
// var rows = [];
|
1685
|
-
|
1686
|
-
// for await (var val of body.rows) {
|
1687
|
-
// if (e.ids) {
|
1688
|
-
// rows.push({ id: val.id, value: val.value._id });
|
1689
|
-
// return true;
|
1690
|
-
// }
|
1691
|
-
// rows.push({
|
1692
|
-
// id: val.id,
|
1693
|
-
// value: { udfData: val.doc.udfData, _id: val.id },
|
1694
|
-
// });
|
1695
|
-
// }
|
1696
|
-
// return resolve({ rows: rows, total_rows: rows.length });
|
1697
|
-
// } catch (error) {
|
1698
|
-
// return reject(error);
|
1699
|
-
// }
|
1700
|
-
// };
|
1701
|
-
|
1702
|
-
// if (e.reduce && JSON.parse(e.reduce)) {
|
1703
|
-
// view = "db_index_reduce";
|
1704
|
-
// return await runtime_get_query_data();
|
1705
|
-
// }
|
1706
|
-
// if (e.view === "db_index") {
|
1707
|
-
// key = e.key;
|
1708
|
-
// view = e.view;
|
1709
|
-
// return await runtime_get_query_data();
|
1710
|
-
// }
|
1711
|
-
// return await runtime_get_mango_data();
|
1712
1030
|
};
|
1713
1031
|
exports.update = async (params, setup_doc, resolve, reject) => {
|
1714
1032
|
const e = params.e;
|