@esri/hub-common 14.215.0 → 14.215.2
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/dist/esm/core/_internal/deepContains.js +2 -57
- package/dist/esm/core/_internal/deepContains.js.map +1 -1
- package/dist/esm/core/parseContainmentPath.js +57 -0
- package/dist/esm/core/parseContainmentPath.js.map +1 -0
- package/dist/esm/discussions/edit.js +5 -6
- package/dist/esm/discussions/edit.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiative-templates/edit.js +4 -5
- package/dist/esm/initiative-templates/edit.js.map +1 -1
- package/dist/esm/initiatives/HubInitiatives.js +4 -5
- package/dist/esm/initiatives/HubInitiatives.js.map +1 -1
- package/dist/esm/initiatives/_internal/getPropertyMap.js +1 -0
- package/dist/esm/initiatives/_internal/getPropertyMap.js.map +1 -1
- package/dist/esm/items/_internal/slugs.js +12 -0
- package/dist/esm/items/_internal/slugs.js.map +1 -0
- package/dist/esm/pages/HubPages.js +4 -5
- package/dist/esm/pages/HubPages.js.map +1 -1
- package/dist/esm/projects/edit.js +5 -5
- package/dist/esm/projects/edit.js.map +1 -1
- package/dist/esm/search/Catalog.js +33 -8
- package/dist/esm/search/Catalog.js.map +1 -1
- package/dist/esm/sites/HubSites.js +4 -5
- package/dist/esm/sites/HubSites.js.map +1 -1
- package/dist/esm/templates/edit.js +2 -2
- package/dist/esm/templates/edit.js.map +1 -1
- package/dist/node/core/_internal/deepContains.js +4 -60
- package/dist/node/core/_internal/deepContains.js.map +1 -1
- package/dist/node/core/parseContainmentPath.js +61 -0
- package/dist/node/core/parseContainmentPath.js.map +1 -0
- package/dist/node/discussions/edit.js +4 -5
- package/dist/node/discussions/edit.js.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiative-templates/edit.js +3 -4
- package/dist/node/initiative-templates/edit.js.map +1 -1
- package/dist/node/initiatives/HubInitiatives.js +3 -4
- package/dist/node/initiatives/HubInitiatives.js.map +1 -1
- package/dist/node/initiatives/_internal/getPropertyMap.js +1 -0
- package/dist/node/initiatives/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/items/_internal/slugs.js +15 -0
- package/dist/node/items/_internal/slugs.js.map +1 -0
- package/dist/node/pages/HubPages.js +3 -4
- package/dist/node/pages/HubPages.js.map +1 -1
- package/dist/node/projects/edit.js +4 -4
- package/dist/node/projects/edit.js.map +1 -1
- package/dist/node/search/Catalog.js +33 -8
- package/dist/node/search/Catalog.js.map +1 -1
- package/dist/node/sites/HubSites.js +3 -4
- package/dist/node/sites/HubSites.js.map +1 -1
- package/dist/node/templates/edit.js +2 -2
- package/dist/node/templates/edit.js.map +1 -1
- package/dist/types/core/_internal/deepContains.d.ts +0 -16
- package/dist/types/core/parseContainmentPath.d.ts +21 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/items/_internal/slugs.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,62 +1,7 @@
|
|
|
1
1
|
import { getEntityTypeFromType } from "../../search/_internal/getEntityTypeFromType";
|
|
2
2
|
import { Catalog } from "../../search/Catalog";
|
|
3
3
|
import { asyncForEach } from "../../utils/asyncForEach";
|
|
4
|
-
|
|
5
|
-
* @internal
|
|
6
|
-
* Mapping of path segments to entity types.
|
|
7
|
-
*/
|
|
8
|
-
const pathMap = {
|
|
9
|
-
initiatives: "initiative",
|
|
10
|
-
projects: "project",
|
|
11
|
-
content: "content",
|
|
12
|
-
events: "event",
|
|
13
|
-
discussions: "discussion",
|
|
14
|
-
sites: "site",
|
|
15
|
-
apps: "content",
|
|
16
|
-
surveys: "content",
|
|
17
|
-
maps: "content",
|
|
18
|
-
datasets: "content",
|
|
19
|
-
pages: "page",
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Parse a path string into its parts, and validate that it is a valid path.
|
|
23
|
-
* @param path
|
|
24
|
-
* @returns
|
|
25
|
-
*/
|
|
26
|
-
export function parsePath(path) {
|
|
27
|
-
// if the path starts with a /, remove it
|
|
28
|
-
if (path && path.startsWith("/")) {
|
|
29
|
-
path = path.slice(1);
|
|
30
|
-
}
|
|
31
|
-
// split the path into parts - it will be structured like: /{type}/{id}/{type}/{id}
|
|
32
|
-
const pathParts = path.split("/");
|
|
33
|
-
const result = {
|
|
34
|
-
valid: true,
|
|
35
|
-
reason: "",
|
|
36
|
-
parts: pathParts,
|
|
37
|
-
};
|
|
38
|
-
// if the path is not structured correctly, return false
|
|
39
|
-
if (pathParts.length % 2 !== 0) {
|
|
40
|
-
result.valid = false;
|
|
41
|
-
result.reason = "Path does not contain an even number of parts.";
|
|
42
|
-
}
|
|
43
|
-
// if the path is > 10 parts, return false
|
|
44
|
-
if (pathParts.length > 10) {
|
|
45
|
-
result.valid = false;
|
|
46
|
-
result.reason = "Path is > 5 entities deep.";
|
|
47
|
-
}
|
|
48
|
-
// if the path contains invalid types, return false
|
|
49
|
-
if (result.valid) {
|
|
50
|
-
const validPaths = Object.keys(pathMap);
|
|
51
|
-
for (let i = 0; i < pathParts.length; i += 2) {
|
|
52
|
-
if (!validPaths.includes(pathParts[i])) {
|
|
53
|
-
result.valid = false;
|
|
54
|
-
result.reason = `Path contains invalid segment: ${pathParts[i]}.`;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
4
|
+
import { parseContainmentPath, pathMap } from "../parseContainmentPath";
|
|
60
5
|
/**
|
|
61
6
|
* Convert a path string into an array of `IDeepCatalogInfo` objects.
|
|
62
7
|
* e.g. /initiatives/00a/projects/00b => [{entityType: "item", id: "00a"}, {entityType: "item", id: "00b"}]
|
|
@@ -65,7 +10,7 @@ export function parsePath(path) {
|
|
|
65
10
|
*/
|
|
66
11
|
export function pathToCatalogInfo(path) {
|
|
67
12
|
// validate path, throw if invalid
|
|
68
|
-
const parsedPath =
|
|
13
|
+
const parsedPath = parseContainmentPath(path);
|
|
69
14
|
if (!parsedPath.valid) {
|
|
70
15
|
throw new Error(parsedPath.reason);
|
|
71
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepContains.js","sourceRoot":"","sources":["../../../../src/core/_internal/deepContains.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"deepContains.js","sourceRoot":"","sources":["../../../../src/core/_internal/deepContains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
* Mapping of path segments to entity types.
|
|
4
|
+
*/
|
|
5
|
+
export const pathMap = {
|
|
6
|
+
initiatives: "initiative",
|
|
7
|
+
projects: "project",
|
|
8
|
+
content: "content",
|
|
9
|
+
events: "event",
|
|
10
|
+
discussions: "discussion",
|
|
11
|
+
sites: "site",
|
|
12
|
+
apps: "content",
|
|
13
|
+
surveys: "content",
|
|
14
|
+
maps: "content",
|
|
15
|
+
datasets: "content",
|
|
16
|
+
pages: "page",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Parse a path string into its parts, and validate that it is a valid path.
|
|
20
|
+
* @param path
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export function parseContainmentPath(path) {
|
|
24
|
+
// if the path starts with a /, remove it
|
|
25
|
+
if (path && path.startsWith("/")) {
|
|
26
|
+
path = path.slice(1);
|
|
27
|
+
}
|
|
28
|
+
// split the path into parts - it will be structured like: /{type}/{id}/{type}/{id}
|
|
29
|
+
const pathParts = path.split("/");
|
|
30
|
+
const result = {
|
|
31
|
+
valid: true,
|
|
32
|
+
reason: "",
|
|
33
|
+
parts: pathParts,
|
|
34
|
+
};
|
|
35
|
+
// if the path is not structured correctly, return false
|
|
36
|
+
if (pathParts.length % 2 !== 0) {
|
|
37
|
+
result.valid = false;
|
|
38
|
+
result.reason = "Path does not contain an even number of parts.";
|
|
39
|
+
}
|
|
40
|
+
// if the path is > 10 parts, return false
|
|
41
|
+
if (pathParts.length > 10) {
|
|
42
|
+
result.valid = false;
|
|
43
|
+
result.reason = "Path is > 5 entities deep.";
|
|
44
|
+
}
|
|
45
|
+
// if the path contains invalid types, return false
|
|
46
|
+
if (result.valid) {
|
|
47
|
+
const validPaths = Object.keys(pathMap);
|
|
48
|
+
for (let i = 0; i < pathParts.length; i += 2) {
|
|
49
|
+
if (!validPaths.includes(pathParts[i])) {
|
|
50
|
+
result.valid = false;
|
|
51
|
+
result.reason = `Path contains invalid segment: ${pathParts[i]}.`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=parseContainmentPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseContainmentPath.js","sourceRoot":"","sources":["../../../src/core/parseContainmentPath.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAkC;IACpD,WAAW,EAAE,YAAY;IACzB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;CACd,CAAC;AAYF;;;;GAIG;AAEH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,yCAAyC;IACzC,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACtB;IACD,mFAAmF;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,MAAM,GAAgB;QAC1B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,SAAS;KACjB,CAAC;IAEF,wDAAwD;IACxD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,gDAAgD,CAAC;KAClE;IAED,0CAA0C;IAC1C,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE;QACzB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,4BAA4B,CAAC;KAC9C;IAED,mDAAmD;IACnD,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,MAAM,CAAC,MAAM,GAAG,kCAAkC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;aACnE;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { removeItem } from "@esri/arcgis-rest-portal";
|
|
2
2
|
import { createModel, getModel, updateModel } from "../models";
|
|
3
|
-
import { constructSlug
|
|
3
|
+
import { constructSlug } from "../items/slugs";
|
|
4
|
+
import { ensureUniqueEntitySlug } from "../items/_internal/slugs";
|
|
4
5
|
import { createSetting, removeSetting, updateSetting, } from "./api/settings/settings";
|
|
5
6
|
import { PropertyMapper } from "../core/_internal/PropertyMapper";
|
|
6
7
|
import { getPropertyMap } from "./_internal/getPropertyMap";
|
|
@@ -28,10 +29,8 @@ export async function createDiscussion(partialDiscussion, requestOptions) {
|
|
|
28
29
|
if (!discussion.slug) {
|
|
29
30
|
discussion.slug = constructSlug(discussion.name, discussion.orgUrlKey);
|
|
30
31
|
}
|
|
31
|
-
// Ensure slug is
|
|
32
|
-
|
|
33
|
-
// add slug to keywords
|
|
34
|
-
discussion.typeKeywords = setSlugKeyword(discussion.typeKeywords, discussion.slug);
|
|
32
|
+
// Ensure slug is unique
|
|
33
|
+
await ensureUniqueEntitySlug(discussion, requestOptions);
|
|
35
34
|
discussion.typeKeywords = setDiscussableKeyword(discussion.typeKeywords, discussion.isDiscussable);
|
|
36
35
|
// Map discussion object onto a default discussion Model
|
|
37
36
|
const mapper = new PropertyMapper(getPropertyMap());
|
|
@@ -62,7 +61,7 @@ export async function createDiscussion(partialDiscussion, requestOptions) {
|
|
|
62
61
|
export async function updateDiscussion(discussion, requestOptions) {
|
|
63
62
|
var _a;
|
|
64
63
|
// verify that the slug is unique, excluding the current discussion
|
|
65
|
-
|
|
64
|
+
await ensureUniqueEntitySlug(discussion, requestOptions);
|
|
66
65
|
discussion.typeKeywords = setDiscussableKeyword(discussion.typeKeywords, discussion.isDiscussable);
|
|
67
66
|
// get the backing item & data
|
|
68
67
|
const model = await getModel(discussion.id, requestOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/discussions/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/discussions/edit.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -55,6 +55,7 @@ export * from "./search/_internal/getCatalogGroups";
|
|
|
55
55
|
export * from "./search/getPredicateValues";
|
|
56
56
|
export * from "./core/hubHistory";
|
|
57
57
|
export * from "./core/deepCatalogContains";
|
|
58
|
+
export * from "./core/parseContainmentPath";
|
|
58
59
|
import OperationStack from "./OperationStack";
|
|
59
60
|
import OperationError from "./OperationError";
|
|
60
61
|
import HubError from "./HubError";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAChB,0BAA0B;AAE1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,0DAA0D;AAC1D,qDAAqD;AACrD,cAAc,wBAAwB,CAAC;AACvC,2DAA2D;AAC3D,yDAAyD;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,6DAA6D;AAC7D,0DAA0D;AAC1D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAChB,0BAA0B;AAE1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,0DAA0D;AAC1D,qDAAqD;AACrD,cAAc,wBAAwB,CAAC;AACvC,2DAA2D;AAC3D,yDAAyD;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,6DAA6D;AAC7D,0DAA0D;AAC1D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Note - we separate these imports so we can cleanly spy on things in tests
|
|
2
2
|
import { createModel, getModel, updateModel } from "../models";
|
|
3
|
-
import { constructSlug
|
|
3
|
+
import { constructSlug } from "../items/slugs";
|
|
4
4
|
import { removeItem, } from "@esri/arcgis-rest-portal";
|
|
5
5
|
import { PropertyMapper } from "../core/_internal/PropertyMapper";
|
|
6
6
|
import { DEFAULT_INITIATIVE_TEMPLATE, DEFAULT_INITIATIVE_TEMPLATE_MODEL, } from "./defaults";
|
|
@@ -8,6 +8,7 @@ import { computeProps } from "./_internal/computeProps";
|
|
|
8
8
|
import { getPropertyMap } from "./_internal/getPropertyMap";
|
|
9
9
|
import { cloneObject } from "../util";
|
|
10
10
|
import { setDiscussableKeyword } from "../discussions";
|
|
11
|
+
import { ensureUniqueEntitySlug } from "../items/_internal/slugs";
|
|
11
12
|
/**
|
|
12
13
|
* @private
|
|
13
14
|
* Create a new Hub Initiative Template item
|
|
@@ -22,9 +23,7 @@ export async function createInitiativeTemplate(partialInitiativeTemplate, reques
|
|
|
22
23
|
initiativeTemplate.slug = constructSlug(initiativeTemplate.name, initiativeTemplate.orgUrlKey);
|
|
23
24
|
}
|
|
24
25
|
// Ensure slug is unique
|
|
25
|
-
|
|
26
|
-
// add slug to keywords
|
|
27
|
-
initiativeTemplate.typeKeywords = setSlugKeyword(initiativeTemplate.typeKeywords, initiativeTemplate.slug);
|
|
26
|
+
await ensureUniqueEntitySlug(initiativeTemplate, requestOptions);
|
|
28
27
|
initiativeTemplate.typeKeywords = setDiscussableKeyword(initiativeTemplate.typeKeywords, initiativeTemplate.isDiscussable);
|
|
29
28
|
// Map initiative template object onto a default initiative template model
|
|
30
29
|
const mapper = new PropertyMapper(getPropertyMap());
|
|
@@ -62,7 +61,7 @@ export function editorToInitiativeTemplate(editor, portal) {
|
|
|
62
61
|
*/
|
|
63
62
|
export async function updateInitiativeTemplate(initiativeTemplate, requestOptions) {
|
|
64
63
|
// verify that the slug is unique, excluding the current initiative template
|
|
65
|
-
|
|
64
|
+
await ensureUniqueEntitySlug(initiativeTemplate, requestOptions);
|
|
66
65
|
// set discussable keyword
|
|
67
66
|
initiativeTemplate.typeKeywords = setDiscussableKeyword(initiativeTemplate.typeKeywords, initiativeTemplate.isDiscussable);
|
|
68
67
|
// get the backing item & data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/initiative-templates/edit.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/initiative-templates/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Note - we separate these imports so we can cleanly spy on things in tests
|
|
2
2
|
import { createModel, fetchModelFromItem, getModel, updateModel, } from "../models";
|
|
3
|
-
import { constructSlug, getItemBySlug
|
|
3
|
+
import { constructSlug, getItemBySlug } from "../items/slugs";
|
|
4
4
|
import { isGuid, cloneObject, unique, mapBy, getProp, getFamily, setDiscussableKeyword, camelize, } from "../index";
|
|
5
5
|
import { removeItem, getItem, updateGroup, } from "@esri/arcgis-rest-portal";
|
|
6
6
|
import { PropertyMapper } from "../core/_internal/PropertyMapper";
|
|
@@ -21,6 +21,7 @@ import { editorToMetric } from "../core/schemas/internal/metrics/editorToMetric"
|
|
|
21
21
|
import { setMetricAndDisplay } from "../core/schemas/internal/metrics/setMetricAndDisplay";
|
|
22
22
|
import { createId } from "../util";
|
|
23
23
|
import { convertHubGroupToGroup } from "../groups/_internal/convertHubGroupToGroup";
|
|
24
|
+
import { ensureUniqueEntitySlug } from "../items/_internal/slugs";
|
|
24
25
|
/**
|
|
25
26
|
* @private
|
|
26
27
|
* Create a new Hub Initiative item
|
|
@@ -39,9 +40,7 @@ export async function createInitiative(partialInitiative, requestOptions) {
|
|
|
39
40
|
initiative.slug = constructSlug(initiative.name, initiative.orgUrlKey);
|
|
40
41
|
}
|
|
41
42
|
// Ensure slug is unique
|
|
42
|
-
|
|
43
|
-
// add slug to keywords
|
|
44
|
-
initiative.typeKeywords = setSlugKeyword(initiative.typeKeywords, initiative.slug);
|
|
43
|
+
await ensureUniqueEntitySlug(initiative, requestOptions);
|
|
45
44
|
// add the status keyword
|
|
46
45
|
initiative.typeKeywords = setEntityStatusKeyword(initiative.typeKeywords, initiative.status);
|
|
47
46
|
initiative.typeKeywords = setDiscussableKeyword(initiative.typeKeywords, initiative.isDiscussable);
|
|
@@ -127,7 +126,7 @@ export async function editorToInitiative(editor, context) {
|
|
|
127
126
|
*/
|
|
128
127
|
export async function updateInitiative(initiative, requestOptions) {
|
|
129
128
|
// verify that the slug is unique, excluding the current initiative
|
|
130
|
-
|
|
129
|
+
await ensureUniqueEntitySlug(initiative, requestOptions);
|
|
131
130
|
// update the status keyword
|
|
132
131
|
initiative.typeKeywords = setEntityStatusKeyword(initiative.typeKeywords, initiative.status);
|
|
133
132
|
initiative.typeKeywords = setDiscussableKeyword(initiative.typeKeywords, initiative.isDiscussable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubInitiatives.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiatives.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"HubInitiatives.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiatives.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export function getPropertyMap() {
|
|
|
10
10
|
// Type specific mappings
|
|
11
11
|
map.push({ entityKey: "status", storeKey: "data.status" });
|
|
12
12
|
map.push({ entityKey: "catalog", storeKey: "data.catalog" });
|
|
13
|
+
map.push({ entityKey: "catalogs", storeKey: "data.catalogs" });
|
|
13
14
|
map.push({ entityKey: "permissions", storeKey: "data.permissions" });
|
|
14
15
|
map.push({ entityKey: "contacts", storeKey: "data.contacts" });
|
|
15
16
|
map.push({ entityKey: "timeline", storeKey: "data.timeline" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAErE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAE/D,eAAe;IACf,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,kBAAkB;QAC7B,QAAQ,EAAE,kCAAkC;KAC7C,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,wBAAwB;KACnC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAErE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAE/D,eAAe;IACf,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,kBAAkB;QAC7B,QAAQ,EAAE,kCAAkC;KAC7C,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,wBAAwB;KACnC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getUniqueSlug, setSlugKeyword } from "../slugs";
|
|
2
|
+
// NOTE: this mutates the entity that is passed in
|
|
3
|
+
export const ensureUniqueEntitySlug = async (entity, requestOptions) => {
|
|
4
|
+
// verify that the slug is unique
|
|
5
|
+
const { id: existingId, slug } = entity;
|
|
6
|
+
const slugInfo = existingId ? { slug, existingId } : { slug };
|
|
7
|
+
entity.slug = await getUniqueSlug(slugInfo, requestOptions);
|
|
8
|
+
// add slug to keywords
|
|
9
|
+
entity.typeKeywords = setSlugKeyword(entity.typeKeywords, entity.slug);
|
|
10
|
+
return entity;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=slugs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../../src/items/_internal/slugs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEzD,kDAAkD;AAClD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,MAAsB,EACtB,cAAkC,EACT,EAAE;IAC3B,iCAAiC;IACjC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9D,MAAM,CAAC,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5D,uBAAuB;IACvB,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -8,13 +8,14 @@ import { getItemHomeUrl } from "../urls";
|
|
|
8
8
|
import { getItem } from "@esri/arcgis-rest-portal";
|
|
9
9
|
import { cloneObject, unique } from "../util";
|
|
10
10
|
import { mapBy, isGuid } from "../utils";
|
|
11
|
-
import { constructSlug, getItemBySlug
|
|
11
|
+
import { constructSlug, getItemBySlug } from "../items/slugs";
|
|
12
12
|
import { createModel, fetchModelFromItem, getModel, updateModel, } from "../models";
|
|
13
13
|
import { PropertyMapper } from "../core/_internal/PropertyMapper";
|
|
14
14
|
import { getPropertyMap } from "./_internal/getPropertyMap";
|
|
15
15
|
import { computeProps } from "./_internal/computeProps";
|
|
16
16
|
import { removeItem } from "@esri/arcgis-rest-portal";
|
|
17
17
|
import { DEFAULT_PAGE, DEFAULT_PAGE_MODEL } from "./defaults";
|
|
18
|
+
import { ensureUniqueEntitySlug } from "../items/_internal/slugs";
|
|
18
19
|
/**
|
|
19
20
|
* @private
|
|
20
21
|
* Create a new Hub Page item
|
|
@@ -33,9 +34,7 @@ export async function createPage(partialPage, requestOptions) {
|
|
|
33
34
|
page.slug = constructSlug(page.name, page.orgUrlKey);
|
|
34
35
|
}
|
|
35
36
|
// Ensure slug is unique
|
|
36
|
-
|
|
37
|
-
// add slug and status to keywords
|
|
38
|
-
page.typeKeywords = setSlugKeyword(page.typeKeywords, page.slug);
|
|
37
|
+
await ensureUniqueEntitySlug(page, requestOptions);
|
|
39
38
|
// Map page object onto a default page Model
|
|
40
39
|
const mapper = new PropertyMapper(getPropertyMap());
|
|
41
40
|
// create model from object, using the default model as a starting point
|
|
@@ -56,7 +55,7 @@ export async function createPage(partialPage, requestOptions) {
|
|
|
56
55
|
*/
|
|
57
56
|
export async function updatePage(page, requestOptions) {
|
|
58
57
|
// verify that the slug is unique, excluding the current page
|
|
59
|
-
|
|
58
|
+
await ensureUniqueEntitySlug(page, requestOptions);
|
|
60
59
|
// get the backing item & data
|
|
61
60
|
const model = await getModel(page.id, requestOptions);
|
|
62
61
|
// create the PropertyMapper
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubPages.js","sourceRoot":"","sources":["../../../src/pages/HubPages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAS,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"HubPages.js","sourceRoot":"","sources":["../../../src/pages/HubPages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Note - we separate these imports so we can cleanly spy on things in tests
|
|
2
2
|
import { createModel, getModel, updateModel } from "../models";
|
|
3
|
-
import { constructSlug
|
|
3
|
+
import { constructSlug } from "../items/slugs";
|
|
4
4
|
import { removeItem, } from "@esri/arcgis-rest-portal";
|
|
5
5
|
import { PropertyMapper } from "../core/_internal/PropertyMapper";
|
|
6
6
|
import { DEFAULT_PROJECT, DEFAULT_PROJECT_MODEL } from "./defaults";
|
|
@@ -11,6 +11,7 @@ import { setDiscussableKeyword } from "../discussions";
|
|
|
11
11
|
import { setEntityStatusKeyword } from "../utils/internal/setEntityStatusKeyword";
|
|
12
12
|
import { editorToMetric } from "../core/schemas/internal/metrics/editorToMetric";
|
|
13
13
|
import { setMetricAndDisplay } from "../core/schemas/internal/metrics/setMetricAndDisplay";
|
|
14
|
+
import { ensureUniqueEntitySlug } from "../items/_internal/slugs";
|
|
14
15
|
/**
|
|
15
16
|
* @private
|
|
16
17
|
* Create a new Hub Project item
|
|
@@ -29,9 +30,8 @@ export async function createProject(partialProject, requestOptions) {
|
|
|
29
30
|
project.slug = constructSlug(project.name, project.orgUrlKey);
|
|
30
31
|
}
|
|
31
32
|
// Ensure slug is unique
|
|
32
|
-
|
|
33
|
-
// add
|
|
34
|
-
project.typeKeywords = setSlugKeyword(project.typeKeywords, project.slug);
|
|
33
|
+
await ensureUniqueEntitySlug(project, requestOptions);
|
|
34
|
+
// add status to keywords
|
|
35
35
|
project.typeKeywords = setEntityStatusKeyword(project.typeKeywords, project.status);
|
|
36
36
|
project.typeKeywords = setDiscussableKeyword(project.typeKeywords, project.isDiscussable);
|
|
37
37
|
// Map project object onto a default project Model
|
|
@@ -86,7 +86,7 @@ export function editorToProject(editor, portal) {
|
|
|
86
86
|
*/
|
|
87
87
|
export async function updateProject(project, requestOptions) {
|
|
88
88
|
// verify that the slug is unique, excluding the current project
|
|
89
|
-
|
|
89
|
+
await ensureUniqueEntitySlug(project, requestOptions);
|
|
90
90
|
// update the status keyword
|
|
91
91
|
project.typeKeywords = setEntityStatusKeyword(project.typeKeywords, project.status);
|
|
92
92
|
project.typeKeywords = setDiscussableKeyword(project.typeKeywords, project.isDiscussable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/projects/edit.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/projects/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,13 +82,13 @@ export class Catalog {
|
|
|
82
82
|
* Return the existing scopes hash
|
|
83
83
|
*/
|
|
84
84
|
get scopes() {
|
|
85
|
-
return this._catalog.scopes;
|
|
85
|
+
return this._catalog.scopes || {};
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
88
88
|
* Return an array of the entity types available in this Catalog
|
|
89
89
|
*/
|
|
90
90
|
get availableScopes() {
|
|
91
|
-
return Object.keys(this.scopes
|
|
91
|
+
return Object.keys(this.scopes);
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
* Get the scope's query for a particular entity type
|
|
@@ -258,17 +258,39 @@ export class Catalog {
|
|
|
258
258
|
// construct the queries
|
|
259
259
|
const queries = [];
|
|
260
260
|
if (options.entityType) {
|
|
261
|
+
// --------------------------------------------------------
|
|
262
|
+
// Check the scope for the entity type
|
|
263
|
+
// then check any collections that match the entity type
|
|
264
|
+
// if there are no scopes or collections with the entity type
|
|
265
|
+
// then the entity is not contained in the catalog
|
|
266
|
+
// --------------------------------------------------------
|
|
261
267
|
if (this.scopes[options.entityType]) {
|
|
268
|
+
// Scope is a "bounding query" for all collections involving the entity type
|
|
269
|
+
// so we can check if it's in the catalog by checking if it's in the scope
|
|
262
270
|
queries.push({
|
|
263
271
|
targetEntity: options.entityType,
|
|
264
272
|
filters: [{ predicates: [pred] }],
|
|
265
273
|
});
|
|
266
274
|
}
|
|
267
275
|
else {
|
|
268
|
-
// no scope for
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
276
|
+
// If there is no scope for the entity type, we check the collections
|
|
277
|
+
const typeCollections = this.collections.filter((c) => c.targetEntity === options.entityType);
|
|
278
|
+
if (typeCollections.length) {
|
|
279
|
+
// If there are collections for the entity type, we check them
|
|
280
|
+
typeCollections.forEach((collection) => {
|
|
281
|
+
queries.push({
|
|
282
|
+
targetEntity: collection.targetEntity,
|
|
283
|
+
filters: [{ predicates: [pred] }, ...collection.scope.filters],
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
// no collections or scope for this entity type
|
|
289
|
+
// thus it cannot be in the catalog
|
|
290
|
+
response.duration = Date.now() - start;
|
|
291
|
+
this._containsCache[identifier] = response;
|
|
292
|
+
return Promise.resolve(response);
|
|
293
|
+
}
|
|
272
294
|
}
|
|
273
295
|
}
|
|
274
296
|
else {
|
|
@@ -501,8 +523,11 @@ export class Catalog {
|
|
|
501
523
|
targetEntity = query.targetEntity;
|
|
502
524
|
qry = cloneObject(query);
|
|
503
525
|
}
|
|
504
|
-
// Now merge in catalog scope level filters
|
|
505
|
-
|
|
526
|
+
// Now merge in catalog scope level filters if they exist
|
|
527
|
+
const scope = this.getScope(targetEntity);
|
|
528
|
+
if (scope) {
|
|
529
|
+
qry.filters = [...qry.filters, ...scope.filters];
|
|
530
|
+
}
|
|
506
531
|
const opts = cloneObject(options);
|
|
507
532
|
// An Catalog instance always uses the context so we remove/replace any passed in auth
|
|
508
533
|
delete opts.authentication;
|