dbm-graph-api 1.1.45 → 1.1.46

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dbm-graph-api",
3
- "version": "1.1.45",
3
+ "version": "1.1.46",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -20,55 +20,10 @@ export * as processAction from "./processAction/index.js";
20
20
  export * as taskrunner from "./taskrunner/index.js";
21
21
  export * as schema from "./schema/index.js";
22
22
 
23
- let fullSelectSetup = function() {
24
- let selectPrefix = "graphApi/range/select/";
25
- {
26
- let name = "idSelection";
27
- let currentSelect = new DbmGraphApi.range.select.IdSelection();
28
- currentSelect.item.register(selectPrefix + name);
29
- }
30
-
31
- {
32
- let name = "byObjectType";
33
- let currentSelect = new DbmGraphApi.range.select.ByObjectType();
34
- currentSelect.item.register(selectPrefix + name);
35
- }
36
-
37
- {
38
- let name = "includePrivate";
39
- let currentSelect = new DbmGraphApi.range.select.IncludePrivate();
40
- currentSelect.item.register(selectPrefix + name);
41
- }
42
-
43
- {
44
- let name = "includeDraft";
45
- let currentSelect = new DbmGraphApi.range.select.IncludeDraft();
46
- currentSelect.item.register(selectPrefix + name);
47
- }
48
-
49
- {
50
- let name = "objectRelationQuery";
51
- let currentSelect = new DbmGraphApi.range.select.ObjectRelationQuery();
52
- currentSelect.item.register(selectPrefix + name);
53
- }
54
-
55
- {
56
- let name = "globalObjectRelationQuery";
57
- let currentSelect = new DbmGraphApi.range.select.GlobalObjectRelationQuery();
58
- currentSelect.item.register(selectPrefix + name);
59
- }
60
-
61
- {
62
- let name = "withIdentifier";
63
- let currentSelect = new DbmGraphApi.range.select.WithIdentifier();
64
- currentSelect.item.register(selectPrefix + name);
65
- }
23
+ export const fullSelectSetup = function() {
24
+ DbmGraphApi.range.select.fullSetup();
66
25
  }
67
26
 
68
-
69
-
70
- export {fullSelectSetup};
71
-
72
27
  let registerEncoding = function(aName, aEncoder) {
73
28
  let encodePrefix = "graphApi/range/encode/";
74
29
  aEncoder.item.register(encodePrefix + aName);
@@ -0,0 +1,29 @@
1
+ import Dbm from "dbm";
2
+
3
+ import SelectBaseObject from "./SelectBaseObject.js";
4
+
5
+ export default class IdentifiableObjectRelationQuery extends SelectBaseObject {
6
+ _construct() {
7
+ super._construct();
8
+ }
9
+
10
+ async select(aQuery, aData, aRequest) {
11
+ //console.log("IdentifiableObjectRelationQuery::select");
12
+
13
+ this.requireParameters(aData, "path", "fromType", "fromIdentifier");
14
+
15
+ let globalObject = await Dbm.node.getDatabase().getIdentifiableObjectIfExists(aData["fromType"], aData["fromIdentifier"]);
16
+
17
+ if(!globalObject) {
18
+ console.log("No identifiable object", aData["fromType"], aData["fromIdentifier"]);
19
+ //METODO: send back in logs as sensitive
20
+ }
21
+
22
+ let ids = globalObject ? [globalObject.id] : [];
23
+ if(aData["path"] !== "(root)") {
24
+ ids = await Dbm.node.getDatabase().objectRelationQuery(ids, aData["path"]);
25
+ }
26
+
27
+ aQuery.includeOnly(ids);
28
+ }
29
+ }
@@ -5,6 +5,25 @@ export default class SelectBaseObject extends Dbm.core.BaseObject {
5
5
  super._construct();
6
6
  }
7
7
 
8
+ requireParameters(aData, ...aRequiredParameters) {
9
+ let isOk = true;
10
+ let missingParameters = [];
11
+
12
+ let currentArray = aRequiredParameters;
13
+ let currentArrayLength = currentArray.length;
14
+ for(let i = 0; i < currentArrayLength; i++) {
15
+ let currentParameterName = currentArray[i];
16
+ if(!aData[currentParameterName]) {
17
+ isOk = false;
18
+ missingParameters.push(currentParameterName);
19
+ }
20
+ }
21
+
22
+ if(!isOk) {
23
+ throw("Missing parameters: " + missingParameters.join(", "));
24
+ }
25
+ }
26
+
8
27
  async select(aQuery, aData, aRequest) {
9
28
 
10
29
  }
@@ -1,3 +1,5 @@
1
+ import DbmGraphApi from "../../../../index.js";
2
+
1
3
  export {default as SelectBaseObject} from "./SelectBaseObject.js";
2
4
  export {default as IdSelection} from "./IdSelection.js";
3
5
  export {default as ByObjectType} from "./ByObjectType.js";
@@ -5,4 +7,25 @@ export {default as IncludePrivate} from "./IncludePrivate.js";
5
7
  export {default as IncludeDraft} from "./IncludeDraft.js";
6
8
  export {default as ObjectRelationQuery} from "./ObjectRelationQuery.js";
7
9
  export {default as GlobalObjectRelationQuery} from "./GlobalObjectRelationQuery.js";
8
- export {default as WithIdentifier} from "./WithIdentifier.js";
10
+ export {default as WithIdentifier} from "./WithIdentifier.js";
11
+ export {default as IdentifiableObjectRelationQuery} from "./IdentifiableObjectRelationQuery.js";
12
+
13
+ export const PREFIX = "graphApi/range/select/";
14
+
15
+ export const register = function(aName, aHandler) {
16
+ aHandler.item.register(PREFIX + aName);
17
+ }
18
+
19
+ export const fullSetup = function() {
20
+ register("byObjectType", new DbmGraphApi.range.select.ByObjectType());
21
+
22
+ register("idSelection", new DbmGraphApi.range.select.IdSelection());
23
+ register("withIdentifier", new DbmGraphApi.range.select.WithIdentifier());
24
+
25
+ register("includePrivate", new DbmGraphApi.range.select.IncludePrivate());
26
+ register("includeDraft", new DbmGraphApi.range.select.IncludeDraft());
27
+
28
+ register("objectRelationQuery", new DbmGraphApi.range.select.ObjectRelationQuery());
29
+ register("globalObjectRelationQuery", new DbmGraphApi.range.select.GlobalObjectRelationQuery());
30
+ register("identifiableObjectRelationQuery", new DbmGraphApi.range.select.IdentifiableObjectRelationQuery());
31
+ }