hola-server 0.3.9 → 0.3.11
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/db/db.js +4 -1
- package/db/entity.js +13 -5
- package/package.json +1 -1
- package/test/entity/delete.js +2 -1
package/db/db.js
CHANGED
|
@@ -27,7 +27,7 @@ const log_msg = (category, level, msg) => {
|
|
|
27
27
|
const path = req ? req.originalUrl : "";
|
|
28
28
|
const user = req && req.session && req.session.user ? req.session.user.id : "";
|
|
29
29
|
|
|
30
|
-
db.create(col_log, { time: time, category: category, level: level, msg: msg, user: user, path: path }).then(() => {});
|
|
30
|
+
db.create(col_log, { time: time, category: category, level: level, msg: msg, user: user, path: path }).then(() => { });
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
const is_log_debug = () => {
|
|
@@ -124,6 +124,7 @@ const bulk_update = async (col, items, attrs) => {
|
|
|
124
124
|
attrs.forEach(function (attr) {
|
|
125
125
|
query[attr] = item[attr];
|
|
126
126
|
});
|
|
127
|
+
delete item["_id"];
|
|
127
128
|
bulk.find(query).upsert().update({ $set: item }, true);
|
|
128
129
|
}
|
|
129
130
|
return await bulk.execute();
|
|
@@ -152,6 +153,7 @@ class DB {
|
|
|
152
153
|
*/
|
|
153
154
|
create(code, obj) {
|
|
154
155
|
const col = this.db[code];
|
|
156
|
+
delete obj["_id"];
|
|
155
157
|
return col.insert(obj, { checkKeys: false });
|
|
156
158
|
}
|
|
157
159
|
|
|
@@ -168,6 +170,7 @@ class DB {
|
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
const col = this.db[code];
|
|
173
|
+
delete obj["_id"];
|
|
171
174
|
return col.update(query, { $set: obj }, { upsert: true, multi: true });
|
|
172
175
|
}
|
|
173
176
|
|
package/db/entity.js
CHANGED
|
@@ -819,15 +819,23 @@ class Entity {
|
|
|
819
819
|
const ref_field = ref_fields[j];
|
|
820
820
|
if (ref_field.delete != DELETE_MODE.keep) {
|
|
821
821
|
for (let j = 0; j < id_array.length; j++) {
|
|
822
|
-
const
|
|
822
|
+
const attrs = {};
|
|
823
|
+
if (ref_by_meta.ref_label) {
|
|
824
|
+
attrs[ref_by_meta.ref_label] = 1;
|
|
825
|
+
}
|
|
826
|
+
const entities = await refer_by_entity.get_refer_entities(this.meta.collection, id_array[j], attrs);
|
|
823
827
|
if (entities && entities.length > 0) {
|
|
824
828
|
if (ref_field.delete == DELETE_MODE.cascade) {
|
|
825
|
-
const
|
|
826
|
-
if (
|
|
827
|
-
has_refer_by_array.push(
|
|
829
|
+
const ref_array = await refer_by_entity.check_refer_entity(entities.map(o => o._id + ""));
|
|
830
|
+
if (ref_array && ref_array.length > 0) {
|
|
831
|
+
has_refer_by_array.push(...ref_array);
|
|
828
832
|
}
|
|
829
833
|
} else {
|
|
830
|
-
|
|
834
|
+
if (ref_by_meta.ref_label) {
|
|
835
|
+
has_refer_by_array.push(...entities.map(o => o[ref_by_meta.ref_label]));
|
|
836
|
+
} else {
|
|
837
|
+
has_refer_by_array.push(...entities.map(o => o["_id"] + ""));
|
|
838
|
+
}
|
|
831
839
|
}
|
|
832
840
|
}
|
|
833
841
|
}
|
package/package.json
CHANGED
package/test/entity/delete.js
CHANGED
|
@@ -206,6 +206,7 @@ describe('Entity Delete', function () {
|
|
|
206
206
|
deleteable: true,
|
|
207
207
|
collection: "user_entity_delete_seven",
|
|
208
208
|
primary_keys: ["name"],
|
|
209
|
+
ref_label: "name",
|
|
209
210
|
fields: [
|
|
210
211
|
{ name: "name", required: true },
|
|
211
212
|
{ name: "age", type: "uint" },
|
|
@@ -259,7 +260,7 @@ describe('Entity Delete', function () {
|
|
|
259
260
|
const delete_ids = [db_role["_id"] + ""];
|
|
260
261
|
const result3 = await role_entity.delete_entity(delete_ids);
|
|
261
262
|
strictEqual(result3.code, HAS_REF);
|
|
262
|
-
deepStrictEqual(result3.err,
|
|
263
|
+
deepStrictEqual(result3.err, ["user1", "user2"]);
|
|
263
264
|
|
|
264
265
|
const result4 = await role_entity.delete_entity([db_role2["_id"] + ""]);
|
|
265
266
|
strictEqual(result4.code, SUCCESS);
|