@esri/hub-common 9.7.0 → 9.8.0
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/es2017/content.js +17 -6
- package/dist/es2017/content.js.map +1 -1
- package/dist/es2017/search/_searchContent.js +66 -53
- package/dist/es2017/search/_searchContent.js.map +1 -1
- package/dist/es2017/search/_searchGroups.js +71 -36
- package/dist/es2017/search/_searchGroups.js.map +1 -1
- package/dist/es2017/search/_searchUsers.js +83 -0
- package/dist/es2017/search/_searchUsers.js.map +1 -0
- package/dist/es2017/search/index.js +2 -0
- package/dist/es2017/search/index.js.map +1 -1
- package/dist/es2017/search/user-utils.js +132 -0
- package/dist/es2017/search/user-utils.js.map +1 -0
- package/dist/es2017/search/utils.js +76 -37
- package/dist/es2017/search/utils.js.map +1 -1
- package/dist/es2017/sites/upgrade-site-schema.js +3 -0
- package/dist/es2017/sites/upgrade-site-schema.js.map +1 -1
- package/dist/es2017/urls/index.js +1 -0
- package/dist/es2017/urls/index.js.map +1 -1
- package/dist/es2017/urls/upgrade-protocol.js +14 -0
- package/dist/es2017/urls/upgrade-protocol.js.map +1 -0
- package/dist/esm/content.js +17 -6
- package/dist/esm/content.js.map +1 -1
- package/dist/esm/search/_searchContent.js +71 -62
- package/dist/esm/search/_searchContent.js.map +1 -1
- package/dist/esm/search/_searchGroups.js +75 -40
- package/dist/esm/search/_searchGroups.js.map +1 -1
- package/dist/esm/search/_searchUsers.js +88 -0
- package/dist/esm/search/_searchUsers.js.map +1 -0
- package/dist/esm/search/index.js +2 -0
- package/dist/esm/search/index.js.map +1 -1
- package/dist/esm/search/user-utils.js +136 -0
- package/dist/esm/search/user-utils.js.map +1 -0
- package/dist/esm/search/utils.js +76 -37
- package/dist/esm/search/utils.js.map +1 -1
- package/dist/esm/sites/upgrade-site-schema.js +3 -0
- package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
- package/dist/esm/urls/index.js +1 -0
- package/dist/esm/urls/index.js.map +1 -1
- package/dist/esm/urls/upgrade-protocol.js +14 -0
- package/dist/esm/urls/upgrade-protocol.js.map +1 -0
- package/dist/node/content.js +18 -7
- package/dist/node/content.js.map +1 -1
- package/dist/node/search/_searchContent.js +65 -52
- package/dist/node/search/_searchContent.js.map +1 -1
- package/dist/node/search/_searchGroups.js +71 -36
- package/dist/node/search/_searchGroups.js.map +1 -1
- package/dist/node/search/_searchUsers.js +87 -0
- package/dist/node/search/_searchUsers.js.map +1 -0
- package/dist/node/search/index.js +2 -0
- package/dist/node/search/index.js.map +1 -1
- package/dist/node/search/user-utils.js +138 -0
- package/dist/node/search/user-utils.js.map +1 -0
- package/dist/node/search/utils.js +81 -39
- package/dist/node/search/utils.js.map +1 -1
- package/dist/node/sites/upgrade-site-schema.js +3 -0
- package/dist/node/sites/upgrade-site-schema.js.map +1 -1
- package/dist/node/urls/index.js +1 -0
- package/dist/node/urls/index.js.map +1 -1
- package/dist/node/urls/upgrade-protocol.js +18 -0
- package/dist/node/urls/upgrade-protocol.js.map +1 -0
- package/dist/types/content.d.ts +11 -0
- package/dist/types/search/_searchContent.d.ts +3 -2
- package/dist/types/search/_searchGroups.d.ts +3 -2
- package/dist/types/search/_searchUsers.d.ts +28 -0
- package/dist/types/search/index.d.ts +2 -0
- package/dist/types/search/types.d.ts +20 -2
- package/dist/types/search/user-utils.d.ts +35 -0
- package/dist/types/search/utils.d.ts +39 -8
- package/dist/types/types.d.ts +17 -0
- package/dist/types/urls/index.d.ts +1 -0
- package/dist/types/urls/upgrade-protocol.d.ts +5 -0
- package/dist/umd/common.umd.js +489 -142
- package/dist/umd/common.umd.js.map +1 -1
- package/dist/umd/common.umd.min.js +1 -1
- package/dist/umd/common.umd.min.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,81 +1,88 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
2
|
import { expandContentFilter, serializeContentFilterForPortal, convertPortalResponseToFacets, } from "./content-utils";
|
|
3
3
|
import { searchItems } from "@esri/arcgis-rest-portal";
|
|
4
|
-
import {
|
|
5
|
-
import { itemToContent, setContentSiteUrls } from "..";
|
|
4
|
+
import { expandApi, getNextFunction } from ".";
|
|
5
|
+
import { cloneObject, itemToContent, setContentSiteUrls, } from "..";
|
|
6
6
|
/**
|
|
7
7
|
* Search for content via the Portal or Hub API
|
|
8
8
|
* @param filter
|
|
9
9
|
* @param options
|
|
10
10
|
*/
|
|
11
11
|
export function _searchContent(filter, options) {
|
|
12
|
+
var _a;
|
|
12
13
|
return __awaiter(this, void 0, void 0, function () {
|
|
13
|
-
var expanded,
|
|
14
|
-
return __generator(this, function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
// NOTE: I think we will end up setting
|
|
51
|
-
// the site URL in mergeSearchResults() instead
|
|
52
|
-
// since it applies to both items and datasets
|
|
53
|
-
return searchPortal(so, options.site);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// Hub API Search
|
|
57
|
-
// TODO: Implement hub api content search
|
|
58
|
-
return Promise.resolve({
|
|
59
|
-
total: 0,
|
|
60
|
-
results: [],
|
|
61
|
-
facets: [],
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
return [4 /*yield*/, Promise.all(searchPromises)];
|
|
66
|
-
case 1:
|
|
67
|
-
results = _a.sent();
|
|
68
|
-
// merge and return
|
|
69
|
-
return [2 /*return*/, mergeSearchResults(results)];
|
|
14
|
+
var expanded, api, searchPromise, so;
|
|
15
|
+
return __generator(this, function (_b) {
|
|
16
|
+
expanded = expandContentFilter(filter);
|
|
17
|
+
api = expandApi(options.api || "arcgis");
|
|
18
|
+
// map over the apis, depending on the type we issue the queries
|
|
19
|
+
// const searchPromises = apis.map((api) => {
|
|
20
|
+
// Portal Search
|
|
21
|
+
if (api.type === "arcgis") {
|
|
22
|
+
so = serializeContentFilterForPortal(expanded);
|
|
23
|
+
// pass auth forward
|
|
24
|
+
if (options.authentication) {
|
|
25
|
+
so.authentication = options.authentication;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
so.portal = api.url + "/sharing/rest";
|
|
29
|
+
}
|
|
30
|
+
// Aggregations
|
|
31
|
+
if ((_a = options.aggregations) === null || _a === void 0 ? void 0 : _a.length) {
|
|
32
|
+
so.countFields = options.aggregations.join(",");
|
|
33
|
+
so.countSize = 200;
|
|
34
|
+
}
|
|
35
|
+
// copy over various options
|
|
36
|
+
// TODO: Dry this up - typscript makes this... inconvenient
|
|
37
|
+
if (options.num) {
|
|
38
|
+
so.num = options.num;
|
|
39
|
+
}
|
|
40
|
+
if (options.sortField) {
|
|
41
|
+
so.sortField = options.sortField;
|
|
42
|
+
}
|
|
43
|
+
if (options.sortOrder) {
|
|
44
|
+
so.sortOrder = options.sortOrder;
|
|
45
|
+
}
|
|
46
|
+
if (options.site) {
|
|
47
|
+
so.site = cloneObject(options.site);
|
|
48
|
+
}
|
|
49
|
+
searchPromise = searchPortal(so);
|
|
70
50
|
}
|
|
51
|
+
else {
|
|
52
|
+
// Hub API Search
|
|
53
|
+
// TODO: Implement hub api content search
|
|
54
|
+
searchPromise = Promise.resolve({
|
|
55
|
+
total: 0,
|
|
56
|
+
results: [],
|
|
57
|
+
facets: [],
|
|
58
|
+
hasNext: false,
|
|
59
|
+
next: function () {
|
|
60
|
+
Promise.resolve(null);
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// });
|
|
65
|
+
// return for results
|
|
66
|
+
return [2 /*return*/, searchPromise];
|
|
71
67
|
});
|
|
72
68
|
});
|
|
73
69
|
}
|
|
74
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Internal portal search, which then converts items to Content, and
|
|
72
|
+
* if a Site was passed, also sets urls
|
|
73
|
+
*
|
|
74
|
+
* @param searchOptions
|
|
75
|
+
* @param site
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
function searchPortal(searchOptions) {
|
|
75
79
|
return searchItems(searchOptions).then(function (resp) {
|
|
80
|
+
var hasNext = resp.nextStart > -1;
|
|
76
81
|
var content = resp.results.map(itemToContent);
|
|
77
|
-
if (site) {
|
|
78
|
-
content = content.map(function (entry) {
|
|
82
|
+
if (searchOptions.site) {
|
|
83
|
+
content = content.map(function (entry) {
|
|
84
|
+
return setContentSiteUrls(entry, searchOptions.site);
|
|
85
|
+
});
|
|
79
86
|
}
|
|
80
87
|
// convert aggregations into facets
|
|
81
88
|
var facets = convertPortalResponseToFacets(resp);
|
|
@@ -83,6 +90,8 @@ function searchPortal(searchOptions, site) {
|
|
|
83
90
|
total: resp.total,
|
|
84
91
|
results: content,
|
|
85
92
|
facets: facets,
|
|
93
|
+
hasNext: hasNext,
|
|
94
|
+
next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),
|
|
86
95
|
};
|
|
87
96
|
});
|
|
88
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_searchContent.js","sourceRoot":"","sources":["../../../src/search/_searchContent.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"_searchContent.js","sourceRoot":"","sources":["../../../src/search/_searchContent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
2
|
import { searchGroups as portalGroupSearch } from "@esri/arcgis-rest-portal";
|
|
3
|
-
import {
|
|
3
|
+
import { expandApi, getNextFunction } from ".";
|
|
4
4
|
import { expandGroupFilter, serializeGroupFilterForPortal, } from "./group-utils";
|
|
5
|
+
import { cloneObject, getGroupThumbnailUrl } from "..";
|
|
5
6
|
/**
|
|
6
7
|
* Search Groups using Filter<"group">
|
|
7
8
|
*
|
|
@@ -13,53 +14,87 @@ import { expandGroupFilter, serializeGroupFilterForPortal, } from "./group-utils
|
|
|
13
14
|
export function _searchGroups(filter, options) {
|
|
14
15
|
var _a;
|
|
15
16
|
return __awaiter(this, void 0, void 0, function () {
|
|
16
|
-
var expanded,
|
|
17
|
+
var expanded, api, so, token, us, portalUrl;
|
|
17
18
|
return __generator(this, function (_b) {
|
|
18
19
|
expanded = expandGroupFilter(filter);
|
|
19
|
-
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
api = expandApi(options.api || "arcgis");
|
|
21
|
+
if (api.type === "arcgis") {
|
|
22
|
+
so = serializeGroupFilterForPortal(expanded);
|
|
23
|
+
token = "";
|
|
24
|
+
// if we have auth, pass it forward
|
|
25
|
+
// otherwise set the portal property
|
|
26
|
+
if (options.authentication) {
|
|
27
|
+
so.authentication = options.authentication;
|
|
28
|
+
us = options.authentication;
|
|
29
|
+
token = us.token;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
so.portal = api.url + "/sharing/rest";
|
|
33
|
+
}
|
|
34
|
+
// TODO: Dry this up - typscript makes this... inconvenient
|
|
35
|
+
if (options.num) {
|
|
36
|
+
so.num = options.num;
|
|
37
|
+
}
|
|
38
|
+
if (options.sortField) {
|
|
39
|
+
so.sortField = options.sortField;
|
|
40
|
+
}
|
|
41
|
+
if (options.sortOrder) {
|
|
42
|
+
so.sortOrder = options.sortOrder;
|
|
43
|
+
}
|
|
44
|
+
portalUrl = api.url + "/sharing/rest";
|
|
45
|
+
if ((_a = so.authentication) === null || _a === void 0 ? void 0 : _a.portal) {
|
|
46
|
+
portalUrl = so.authentication.portal;
|
|
47
|
+
}
|
|
48
|
+
if (options.site) {
|
|
49
|
+
so.site = cloneObject(options.site);
|
|
50
|
+
}
|
|
51
|
+
return [2 /*return*/, searchPortalGroups(so)];
|
|
33
52
|
}
|
|
34
53
|
else {
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
if (options.num) {
|
|
38
|
-
so.num = options.num;
|
|
39
|
-
}
|
|
40
|
-
portalUrl = "https://www.arcgis.com/sharing/rest";
|
|
41
|
-
if ((_a = so.authentication) === null || _a === void 0 ? void 0 : _a.portal) {
|
|
42
|
-
portalUrl = so.authentication.portal;
|
|
54
|
+
throw new Error("_searchGroups is not implemented for non-arcgis apis");
|
|
43
55
|
}
|
|
44
|
-
|
|
45
|
-
return addThumbnailUrl(portalUrl, group, token);
|
|
46
|
-
};
|
|
47
|
-
return [2 /*return*/, portalGroupSearch(so).then(function (response) {
|
|
48
|
-
// upgrade thumbnail url
|
|
49
|
-
response.results = response.results.map(thumbnailify);
|
|
50
|
-
return response;
|
|
51
|
-
})];
|
|
56
|
+
return [2 /*return*/];
|
|
52
57
|
});
|
|
53
58
|
});
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
function
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Internal function that searches for groups using the ArcGIS Portal API
|
|
62
|
+
* @param searchOptions
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
function searchPortalGroups(searchOptions) {
|
|
66
|
+
var _a;
|
|
67
|
+
var teamLinkify = function (group) {
|
|
68
|
+
group.siteTeamUrl = searchOptions.site.item.url + "/teams/" + group.id + "/about";
|
|
69
|
+
return group;
|
|
70
|
+
};
|
|
71
|
+
var portalUrl = ((_a = searchOptions.authentication) === null || _a === void 0 ? void 0 : _a.portal) ||
|
|
72
|
+
"https://www.arcgis.com/sharing/rest";
|
|
73
|
+
var token;
|
|
74
|
+
if (searchOptions.authentication) {
|
|
75
|
+
var us = searchOptions.authentication;
|
|
76
|
+
token = us.token;
|
|
62
77
|
}
|
|
63
|
-
|
|
78
|
+
var thumbnailify = function (group) {
|
|
79
|
+
group.thumbnailUrl = getGroupThumbnailUrl(portalUrl, group, token);
|
|
80
|
+
return group;
|
|
81
|
+
};
|
|
82
|
+
// execute the search
|
|
83
|
+
return portalGroupSearch(searchOptions).then(function (response) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
var hasNext = response.nextStart > -1;
|
|
86
|
+
// upgrade thumbnail url
|
|
87
|
+
var results = response.results.map(thumbnailify);
|
|
88
|
+
// generate the site team url if site url is provided
|
|
89
|
+
if ((_b = (_a = searchOptions.site) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.url) {
|
|
90
|
+
results = response.results.map(teamLinkify);
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
hasNext: hasNext,
|
|
94
|
+
total: response.total,
|
|
95
|
+
results: results,
|
|
96
|
+
next: getNextFunction(searchOptions, response.nextStart, response.total, searchPortalGroups),
|
|
97
|
+
};
|
|
98
|
+
});
|
|
64
99
|
}
|
|
65
100
|
//# sourceMappingURL=_searchGroups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_searchGroups.js","sourceRoot":"","sources":["../../../src/search/_searchGroups.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"_searchGroups.js","sourceRoot":"","sources":["../../../src/search/_searchGroups.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAmB,MAAM,IAAI,CAAC;AAMxE;;;;;;;GAOG;AACH,MAAM,UAAgB,aAAa,CACjC,MAAuB,EACvB,OAA0B;;;;;YAGpB,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAGrC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;YAE/C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACnB,EAAE,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;gBAC/C,KAAK,GAAG,EAAE,CAAC;gBACf,mCAAmC;gBACnC,oCAAoC;gBACpC,IAAI,OAAO,CAAC,cAAc,EAAE;oBAC1B,EAAE,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;oBACrC,EAAE,GAAgB,OAAO,CAAC,cAA6B,CAAC;oBAC9D,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;iBAClB;qBAAM;oBACL,EAAE,CAAC,MAAM,GAAM,GAAG,CAAC,GAAG,kBAAe,CAAC;iBACvC;gBAED,2DAA2D;gBAC3D,IAAI,OAAO,CAAC,GAAG,EAAE;oBACf,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;iBACtB;gBAED,IAAI,OAAO,CAAC,SAAS,EAAE;oBACrB,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;iBAClC;gBACD,IAAI,OAAO,CAAC,SAAS,EAAE;oBACrB,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;iBAClC;gBAEG,SAAS,GAAM,GAAG,CAAC,GAAG,kBAAe,CAAC;gBAC1C,UAAI,EAAE,CAAC,cAAc,0CAAE,MAAM,EAAE;oBAC7B,SAAS,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;iBACtC;gBAED,IAAI,OAAO,CAAC,IAAI,EAAE;oBAChB,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACrC;gBAED,sBAAO,kBAAkB,CAAC,EAAE,CAAC,EAAC;aAC/B;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;aACzE;;;;CACF;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,aAA6B;;IAE7B,IAAM,WAAW,GAAG,UAAC,KAAa;QAChC,KAAK,CAAC,WAAW,GAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,eAAU,KAAK,CAAC,EAAE,WAAQ,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAM,SAAS,GACb,OAAA,aAAa,CAAC,cAAc,0CAAE,MAAM;QACpC,qCAAqC,CAAC;IACxC,IAAI,KAAa,CAAC;IAClB,IAAI,aAAa,CAAC,cAAc,EAAE;QAChC,IAAM,EAAE,GAAgB,aAAa,CAAC,cAA6B,CAAC;QACpE,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;KAClB;IAED,IAAM,YAAY,GAAG,UAAC,KAAa;QACjC,KAAK,CAAC,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,qBAAqB;IACrB,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;;QACpD,IAAM,OAAO,GAAY,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAEjD,wBAAwB;QACxB,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,qDAAqD;QACrD,gBAAI,aAAa,CAAC,IAAI,0CAAE,IAAI,0CAAE,GAAG,EAAE;YACjC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAC7C;QAED,OAAO;YACL,OAAO,SAAA;YACP,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,SAAA;YACP,IAAI,EAAE,eAAe,CACnB,aAAa,EACb,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,KAAK,EACd,kBAAkB,CACnB;SACyB,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { cloneObject, expandApi, expandUserFilter, getNextFunction, getUserThumbnailUrl, serializeUserFilterForPortal, } from "..";
|
|
3
|
+
import { searchUsers as portalUserSearch, } from "@esri/arcgis-rest-portal";
|
|
4
|
+
/**
|
|
5
|
+
* Search for Users via the Portal API.
|
|
6
|
+
*
|
|
7
|
+
* **Note** Authentication is required
|
|
8
|
+
*
|
|
9
|
+
* Note: in the future, there may be options to search via
|
|
10
|
+
* a Hub specific API
|
|
11
|
+
* @param filter
|
|
12
|
+
* @param options
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export function _searchUsers(filter, options) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17
|
+
var expanded, api, searchOptions;
|
|
18
|
+
return __generator(this, function (_a) {
|
|
19
|
+
// JS Clients may not pass in authentication
|
|
20
|
+
if (!options.authentication) {
|
|
21
|
+
throw new Error("Authentication required to search for users.");
|
|
22
|
+
}
|
|
23
|
+
expanded = expandUserFilter(filter);
|
|
24
|
+
api = expandApi(options.api || "arcgis");
|
|
25
|
+
if (api.type === "arcgis") {
|
|
26
|
+
searchOptions = serializeUserFilterForPortal(expanded);
|
|
27
|
+
// carry the auth forward
|
|
28
|
+
searchOptions.authentication = options.authentication;
|
|
29
|
+
// TODO: Dry this up - typscript makes this... inconvenient
|
|
30
|
+
if (options.num) {
|
|
31
|
+
searchOptions.num = options.num;
|
|
32
|
+
}
|
|
33
|
+
if (options.sortField) {
|
|
34
|
+
searchOptions.sortField = options.sortField;
|
|
35
|
+
}
|
|
36
|
+
if (options.sortOrder) {
|
|
37
|
+
searchOptions.sortOrder = options.sortOrder;
|
|
38
|
+
}
|
|
39
|
+
if (options.site) {
|
|
40
|
+
searchOptions.site = cloneObject(options.site);
|
|
41
|
+
}
|
|
42
|
+
return [2 /*return*/, searchPortalUsers(searchOptions)];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error("_searchUsers is not implemented for non-arcgis apis");
|
|
46
|
+
}
|
|
47
|
+
return [2 /*return*/];
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Internal function that executes the user search along with
|
|
53
|
+
* some simple enrichments
|
|
54
|
+
* @param searchOptions
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
function searchPortalUsers(searchOptions) {
|
|
58
|
+
var portalUrl = searchOptions.authentication.portal;
|
|
59
|
+
var token = searchOptions.authentication.token;
|
|
60
|
+
// Partially applied functions for mapping over the results
|
|
61
|
+
var userLinkify = function (user) {
|
|
62
|
+
user.profileUrl = searchOptions.site.item.url + "/people/" + user.username + "/profile";
|
|
63
|
+
return user;
|
|
64
|
+
};
|
|
65
|
+
var thumbnailify = function (user) {
|
|
66
|
+
if (user.thumbnail) {
|
|
67
|
+
user.thumbnailUrl = getUserThumbnailUrl(portalUrl, user, token);
|
|
68
|
+
}
|
|
69
|
+
return user;
|
|
70
|
+
};
|
|
71
|
+
return portalUserSearch(searchOptions).then(function (response) {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
var hasNext = response.nextStart > -1;
|
|
74
|
+
// upgrade thumbnail url
|
|
75
|
+
var results = response.results.map(thumbnailify);
|
|
76
|
+
// generate the site team url if site url is provided
|
|
77
|
+
if ((_b = (_a = searchOptions.site) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.url) {
|
|
78
|
+
results = response.results.map(userLinkify);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
hasNext: hasNext,
|
|
82
|
+
total: response.total,
|
|
83
|
+
results: results,
|
|
84
|
+
next: getNextFunction(searchOptions, response.nextStart, response.total, searchPortalUsers),
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=_searchUsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_searchUsers.js","sourceRoot":"","sources":["../../../src/search/_searchUsers.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/search/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export * from "./hub-api-search";
|
|
2
2
|
export * from "./content-utils";
|
|
3
3
|
export * from "./group-utils";
|
|
4
|
+
export * from "./user-utils";
|
|
4
5
|
export * from "./utils";
|
|
5
6
|
export * from "./types";
|
|
6
7
|
export * from "./_searchContent";
|
|
7
8
|
export * from "./_searchGroups";
|
|
9
|
+
export * from "./_searchUsers";
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { __spreadArrays } from "tslib";
|
|
2
|
+
import { cloneObject, getProp, mergeDateRange, mergeMatchOptions, mergeSearchOptions, relativeDateToDateRange, serializeDateRange, serializeMatchOptions, setProp, valueToMatchOptions, } from "..";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* Merge `Filter<"user">` objects
|
|
6
|
+
*
|
|
7
|
+
* Useful in components which may get partial filters from a variety of
|
|
8
|
+
* sub-components, which are then combined into a single filter prior
|
|
9
|
+
* to executing the search.
|
|
10
|
+
* @param filters
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export function mergeUserFilters(filters) {
|
|
14
|
+
// expand all the filters so all prop types are consistent
|
|
15
|
+
var expanded = filters.map(expandUserFilter);
|
|
16
|
+
// now we can merge based on fields
|
|
17
|
+
var dateFields = ["created", "modified", "lastlogin"];
|
|
18
|
+
var specialFields = __spreadArrays(["disabled", "term", "filterType"], dateFields);
|
|
19
|
+
// acc is initialized as Filter<group> but also needs it
|
|
20
|
+
// in the function signature... for reasons?!
|
|
21
|
+
var result = expanded.reduce(function (acc, entry) {
|
|
22
|
+
// process fields
|
|
23
|
+
Object.entries(entry).forEach(function (_a) {
|
|
24
|
+
// Note: getProp/setProp are used to get around
|
|
25
|
+
// typescript issues with string indexing
|
|
26
|
+
var key = _a[0], value = _a[1];
|
|
27
|
+
if (acc.hasOwnProperty(key)) {
|
|
28
|
+
var existingValue = getProp(acc, key);
|
|
29
|
+
// if the key is not to a special field
|
|
30
|
+
if (!specialFields.includes(key)) {
|
|
31
|
+
// treat as an IMatchOptions
|
|
32
|
+
setProp(key, mergeMatchOptions(existingValue, value), acc);
|
|
33
|
+
}
|
|
34
|
+
else if (dateFields.includes(key)) {
|
|
35
|
+
// treat as IDateRange
|
|
36
|
+
setProp(key, mergeDateRange(existingValue, value), acc);
|
|
37
|
+
}
|
|
38
|
+
else if (key === "term") {
|
|
39
|
+
// append terms
|
|
40
|
+
acc[key] = acc[key] + " " + value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Acc does not have an entry for this yet
|
|
45
|
+
// so just clone it
|
|
46
|
+
setProp(key, cloneObject(value), acc);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return acc;
|
|
50
|
+
}, {
|
|
51
|
+
filterType: "user",
|
|
52
|
+
});
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Prior to serialization into the query syntax for the backing APIs, we first expand [Filters](../Filter)
|
|
57
|
+
*
|
|
58
|
+
* Filter's can express their intent in a very terse form, but to ensure consistent structures
|
|
59
|
+
* we expand them into their more verbose form.
|
|
60
|
+
*
|
|
61
|
+
* i.e. `firstname: "John"` expands into `firstname: { any: ["John"]}`
|
|
62
|
+
*
|
|
63
|
+
* - Fields defined as `string | string[] | MatchOptions` will be converted to a `MatchOptions`
|
|
64
|
+
* - RelativeDate fields are converted to DateRange<number>
|
|
65
|
+
* @param filter
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export function expandUserFilter(filter) {
|
|
69
|
+
var result = {};
|
|
70
|
+
var dateProps = ["created", "modified", "lastlogin"];
|
|
71
|
+
var specialProps = __spreadArrays(["disabled", "term"], dateProps);
|
|
72
|
+
Object.entries(filter).forEach(function (_a) {
|
|
73
|
+
var key = _a[0], value = _a[1];
|
|
74
|
+
// handle Matchish fields
|
|
75
|
+
if (!specialProps.includes(key)) {
|
|
76
|
+
// setProp side-steps typescript complaining
|
|
77
|
+
setProp(key, valueToMatchOptions(value), result);
|
|
78
|
+
}
|
|
79
|
+
// Handle date fields
|
|
80
|
+
if (dateProps.includes(key)) {
|
|
81
|
+
var dateFieldValue = cloneObject(getProp(filter, key));
|
|
82
|
+
if (getProp(filter, key + ".type") === "relative-date") {
|
|
83
|
+
setProp(key, relativeDateToDateRange(dateFieldValue), result);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
setProp(key, dateFieldValue, result);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// disabled is boolean, so we check if the prop exists
|
|
91
|
+
// vs checking if the value is truthy
|
|
92
|
+
if (filter.hasOwnProperty("disabled")) {
|
|
93
|
+
result.disabled = filter.disabled;
|
|
94
|
+
}
|
|
95
|
+
if (filter.term) {
|
|
96
|
+
result.term = filter.term;
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* @private
|
|
102
|
+
* Serialize an `IUserFilterDefinition` into an `ISearchOptions` for use
|
|
103
|
+
* with `searchUsers`
|
|
104
|
+
* @param filter
|
|
105
|
+
* @returns
|
|
106
|
+
*/
|
|
107
|
+
export function serializeUserFilterForPortal(filter) {
|
|
108
|
+
var result = {
|
|
109
|
+
q: "",
|
|
110
|
+
filter: "",
|
|
111
|
+
};
|
|
112
|
+
var dateProps = ["created", "modified", "lastlogin"];
|
|
113
|
+
var specialProps = __spreadArrays(["term", "filterType"], dateProps);
|
|
114
|
+
Object.entries(filter).forEach(function (_a) {
|
|
115
|
+
var key = _a[0], value = _a[1];
|
|
116
|
+
// MatchOptions fields
|
|
117
|
+
if (!specialProps.includes(key)) {
|
|
118
|
+
result = mergeSearchOptions(result, serializeMatchOptions(key, value), "AND");
|
|
119
|
+
}
|
|
120
|
+
// Dates only go into q
|
|
121
|
+
if (dateProps.includes(key)) {
|
|
122
|
+
result = mergeSearchOptions(result, serializeDateRange(key, value), "AND");
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
// disabled is also a top-level property
|
|
126
|
+
if (filter.hasOwnProperty("disabled")) {
|
|
127
|
+
result.disabled = filter.disabled;
|
|
128
|
+
}
|
|
129
|
+
// add the term
|
|
130
|
+
if (filter.term) {
|
|
131
|
+
// Note: this is slightly different from other types
|
|
132
|
+
result.q = ("(" + filter.term + ") " + result.q).trim();
|
|
133
|
+
}
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=user-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-utils.js","sourceRoot":"","sources":["../../../src/search/user-utils.ts"],"names":[],"mappings":"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"}
|