hola-server 0.3.10 → 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/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.10",
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);