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 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 entities = await refer_by_entity.get_refer_entities(this.meta.collection, id_array[j], {});
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 ref_id_array = await refer_by_entity.check_refer_entity(entities.map(o => o._id + ""));
826
- if (ref_id_array && ref_id_array.length > 0) {
827
- has_refer_by_array.push(id_array[j]);
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
- has_refer_by_array.push(id_array[j]);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hola-server",
3
- "version": "0.3.9",
3
+ "version": "0.3.11",
4
4
  "description": "a meta programming framework used to build nodejs restful api",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -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, delete_ids);
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);