@esri/hub-common 9.17.1 → 9.18.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.
Files changed (62) hide show
  1. package/dist/es2017/Hub.js +6 -10
  2. package/dist/es2017/Hub.js.map +1 -1
  3. package/dist/es2017/core/types/IHubItemEntityManager.js +1 -0
  4. package/dist/es2017/core/types/IHubItemEntityManager.js.map +1 -0
  5. package/dist/es2017/items/index.js +1 -0
  6. package/dist/es2017/items/index.js.map +1 -1
  7. package/dist/es2017/items/setItemThumbnail.js +31 -0
  8. package/dist/es2017/items/setItemThumbnail.js.map +1 -0
  9. package/dist/es2017/items/slugs.js +39 -15
  10. package/dist/es2017/items/slugs.js.map +1 -1
  11. package/dist/es2017/models/index.js +13 -0
  12. package/dist/es2017/models/index.js.map +1 -1
  13. package/dist/es2017/projects/HubProjectManager.js +40 -4
  14. package/dist/es2017/projects/HubProjectManager.js.map +1 -1
  15. package/dist/es2017/projects/HubProjects.js +91 -18
  16. package/dist/es2017/projects/HubProjects.js.map +1 -1
  17. package/dist/esm/Hub.js +6 -10
  18. package/dist/esm/Hub.js.map +1 -1
  19. package/dist/esm/core/types/IHubItemEntityManager.js +1 -0
  20. package/dist/esm/core/types/IHubItemEntityManager.js.map +1 -0
  21. package/dist/esm/items/index.js +1 -0
  22. package/dist/esm/items/index.js.map +1 -1
  23. package/dist/esm/items/setItemThumbnail.js +46 -0
  24. package/dist/esm/items/setItemThumbnail.js.map +1 -0
  25. package/dist/esm/items/slugs.js +39 -15
  26. package/dist/esm/items/slugs.js.map +1 -1
  27. package/dist/esm/models/index.js +23 -1
  28. package/dist/esm/models/index.js.map +1 -1
  29. package/dist/esm/projects/HubProjectManager.js +58 -4
  30. package/dist/esm/projects/HubProjectManager.js.map +1 -1
  31. package/dist/esm/projects/HubProjects.js +100 -21
  32. package/dist/esm/projects/HubProjects.js.map +1 -1
  33. package/dist/node/Hub.js +6 -10
  34. package/dist/node/Hub.js.map +1 -1
  35. package/dist/node/core/types/IHubItemEntityManager.js +3 -0
  36. package/dist/node/core/types/IHubItemEntityManager.js.map +1 -0
  37. package/dist/node/items/index.js +1 -0
  38. package/dist/node/items/index.js.map +1 -1
  39. package/dist/node/items/setItemThumbnail.js +35 -0
  40. package/dist/node/items/setItemThumbnail.js.map +1 -0
  41. package/dist/node/items/slugs.js +42 -17
  42. package/dist/node/items/slugs.js.map +1 -1
  43. package/dist/node/models/index.js +15 -1
  44. package/dist/node/models/index.js.map +1 -1
  45. package/dist/node/projects/HubProjectManager.js +38 -2
  46. package/dist/node/projects/HubProjectManager.js.map +1 -1
  47. package/dist/node/projects/HubProjects.js +91 -17
  48. package/dist/node/projects/HubProjects.js.map +1 -1
  49. package/dist/types/Hub.d.ts +7 -11
  50. package/dist/types/core/types/IHubEntityManager.d.ts +16 -0
  51. package/dist/types/core/types/IHubItemEntityManager.d.ts +15 -0
  52. package/dist/types/items/index.d.ts +1 -0
  53. package/dist/types/items/setItemThumbnail.d.ts +9 -0
  54. package/dist/types/items/slugs.d.ts +20 -1
  55. package/dist/types/models/index.d.ts +8 -0
  56. package/dist/types/projects/HubProjectManager.d.ts +21 -3
  57. package/dist/types/projects/HubProjects.d.ts +3 -1
  58. package/dist/umd/common.umd.js +267 -47
  59. package/dist/umd/common.umd.js.map +1 -1
  60. package/dist/umd/common.umd.min.js +1 -1
  61. package/dist/umd/common.umd.min.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUniqueSlug = exports.getItemBySlug = exports.setSlugKeyword = exports.constructSlug = void 0;
3
+ exports.getUniqueSlug = exports.findItemsBySlug = exports.getItemBySlug = exports.setSlugKeyword = exports.constructSlug = void 0;
4
4
  const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
5
5
  const __1 = require("..");
6
6
  // TODO: work out how to unify content slug fns
@@ -45,25 +45,50 @@ exports.setSlugKeyword = setSlugKeyword;
45
45
  * @returns
46
46
  */
47
47
  function getItemBySlug(slug, requestOptions) {
48
+ return findItemsBySlug({ slug }, requestOptions).then((results) => {
49
+ if (results.length) {
50
+ return results[0];
51
+ }
52
+ else {
53
+ return null;
54
+ }
55
+ });
56
+ }
57
+ exports.getItemBySlug = getItemBySlug;
58
+ /**
59
+ * Find items by slug typeKeywords.
60
+ *
61
+ * Optional exclude parameter accepts the id of an item we expect to
62
+ * have this particular slug. This is used during update calls
63
+ * where we don't know if the slug specifically has been updated, but we
64
+ * don't want a false-postive from the item we are updating
65
+ *
66
+ * @param slug
67
+ * @param requestOptions
68
+ * @returns
69
+ */
70
+ function findItemsBySlug(slugInfo, requestOptions) {
48
71
  const opts = {
49
72
  q: "",
50
- filter: `typekeywords:"slug|${slug}"`,
73
+ filter: `typekeywords:"slug|${slugInfo.slug}"`,
51
74
  authentication: requestOptions.authentication,
52
75
  };
76
+ // We need to check for other items w/ a slug during
77
+ // the update calls. For those scenarios we are interested
78
+ // in any _other_ items which may have a specific slug
79
+ // but not one specific item
80
+ if (slugInfo.exclude) {
81
+ opts.q = `NOT id:${slugInfo.exclude}`;
82
+ }
53
83
  return arcgis_rest_portal_1.searchItems(opts)
54
84
  .then((response) => {
55
- if (response.results.length) {
56
- return response.results[0];
57
- }
58
- else {
59
- return null;
60
- }
85
+ return response.results;
61
86
  })
62
87
  .catch((e) => {
63
88
  throw Error(`Error in getItemBySlug ${e}`);
64
89
  });
65
90
  }
66
- exports.getItemBySlug = getItemBySlug;
91
+ exports.findItemsBySlug = findItemsBySlug;
67
92
  /**
68
93
  * Given a slug, search for items using that slug, incrementing the slug name until
69
94
  * a unique value is found
@@ -76,19 +101,19 @@ exports.getItemBySlug = getItemBySlug;
76
101
  * @param step
77
102
  * @returns
78
103
  */
79
- function getUniqueSlug(slug, requestOptions, step = 0) {
80
- let combined = slug;
104
+ function getUniqueSlug(slugInfo, requestOptions, step = 0) {
105
+ let combinedSlug = slugInfo.slug;
81
106
  if (step) {
82
- combined = `${slug}-${step}`;
107
+ combinedSlug = `${slugInfo.slug}-${step}`;
83
108
  }
84
- return getItemBySlug(combined, requestOptions)
85
- .then((result) => {
86
- if (result) {
109
+ return findItemsBySlug({ slug: combinedSlug, exclude: slugInfo.existingId }, requestOptions)
110
+ .then((results) => {
111
+ if (results.length) {
87
112
  step++;
88
- return getUniqueSlug(slug, requestOptions, step);
113
+ return getUniqueSlug(slugInfo, requestOptions, step);
89
114
  }
90
115
  else {
91
- return combined;
116
+ return combinedSlug;
92
117
  }
93
118
  })
94
119
  .catch((e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/items/slugs.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAGvD,0BAA6B;AAE7B,+CAA+C;AAC/C,2FAA2F;AAE3F;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,KAAa,EAAE,MAAc;IACzD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC;AAFD,sCAEC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,YAAsB,EAAE,IAAY;IACjE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AATD,wCASC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,cAA+B;IAE/B,MAAM,IAAI,GAAG;QACX,CAAC,EAAE,EAAE;QACL,MAAM,EAAE,sBAAsB,IAAI,GAAG;QACrC,cAAc,EAAE,cAAc,CAAC,cAAc;KAC9C,CAAC;IACF,OAAO,gCAAW,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;YAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC5B;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AApBD,sCAoBC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,cAA+B,EAC/B,OAAe,CAAC;IAEhB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,EAAE;QACR,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;KAC9B;IACD,OAAO,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC;SAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,MAAM,EAAE;YACV,IAAI,EAAE,CAAC;YACP,OAAO,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;SAClD;aAAM;YACL,OAAO,QAAQ,CAAC;SACjB;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AArBD,sCAqBC"}
1
+ {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/items/slugs.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAGvD,0BAA6B;AAE7B,+CAA+C;AAC/C,2FAA2F;AAE3F;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,KAAa,EAAE,MAAc;IACzD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,WAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC;AAFD,sCAEC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,YAAsB,EAAE,IAAY;IACjE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AATD,wCASC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,cAA+B;IAE/B,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChE,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;SACnB;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAXD,sCAWC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAC7B,QAGC,EACD,cAA+B;IAE/B,MAAM,IAAI,GAAG;QACX,CAAC,EAAE,EAAE;QACL,MAAM,EAAE,sBAAsB,QAAQ,CAAC,IAAI,GAAG;QAC9C,cAAc,EAAE,cAAc,CAAC,cAAc;KAC9C,CAAC;IACF,oDAAoD;IACpD,0DAA0D;IAC1D,sDAAsD;IACtD,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,OAAO,EAAE;QACpB,IAAI,CAAC,CAAC,GAAG,UAAU,QAAQ,CAAC,OAAO,EAAE,CAAC;KACvC;IACD,OAAO,gCAAW,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AA1BD,0CA0BC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAC3B,QAGC,EACD,cAA+B,EAC/B,OAAe,CAAC;IAEhB,IAAI,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;IACjC,IAAI,IAAI,EAAE;QACR,YAAY,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;KAC3C;IACD,OAAO,eAAe,CACpB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,EACpD,cAAc,CACf;SACE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,EAAE,CAAC;YACP,OAAO,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;SACtD;aAAM;YACL,OAAO,YAAY,CAAC;SACrB;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AA3BD,sCA2BC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateModel = exports.createModel = exports.getModelBySlug = exports.getModel = void 0;
3
+ exports.fetchModelFromItem = exports.updateModel = exports.createModel = exports.getModelBySlug = exports.getModel = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./serializeModel"), exports);
6
6
  const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
@@ -103,4 +103,18 @@ function updateModel(model, requestOptions) {
103
103
  });
104
104
  }
105
105
  exports.updateModel = updateModel;
106
+ /**
107
+ * Given an Item, fetch the data json and return an IModel
108
+ * @param item
109
+ * @param requestOptions
110
+ * @returns
111
+ */
112
+ async function fetchModelFromItem(item, requestOptions) {
113
+ const data = await arcgis_rest_portal_1.getItemData(item.id, requestOptions);
114
+ return {
115
+ item,
116
+ data,
117
+ };
118
+ }
119
+ exports.fetchModelFromItem = fetchModelFromItem;
106
120
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ const HubProjects_1 = require("./HubProjects");
5
5
  // Node has issues if this is not directly imported
6
6
  const ArcGISContextManager_1 = require("../ArcGISContextManager");
7
7
  const __1 = require("..");
8
+ const setItemThumbnail_1 = require("../items/setItemThumbnail");
8
9
  /**
9
10
  * Centralized functions used to manage IHubProject instances
10
11
  *
@@ -96,6 +97,14 @@ class HubProjectManager {
96
97
  throw new __1.HubError("Destroy Project", "Destroying Hub Projects requires authentication.");
97
98
  }
98
99
  }
100
+ // DEPRECATED IN FAVOR OF .fetch()
101
+ // TODO: REMOVE AT NEXT MAJOR
102
+ /* istanbul ignore next */
103
+ async get(identifier, requestOptions) {
104
+ // tslint:disable-next-line
105
+ console.warn(`HubProjectManager.get is deprecated and will be removed. Use .fetch() instead.`);
106
+ return this.fetch(identifier, requestOptions);
107
+ }
99
108
  /**
100
109
  * Fetch a Project via id or it's slug
101
110
  *
@@ -108,11 +117,38 @@ class HubProjectManager {
108
117
  */
109
118
  async fetch(identifier, requestOptions) {
110
119
  if (requestOptions || this.context.requestOptions) {
111
- return HubProjects_1.getProject(identifier, requestOptions || this.context.requestOptions);
120
+ return HubProjects_1.fetchProject(identifier, requestOptions || this.context.requestOptions);
112
121
  }
113
122
  else {
114
- throw new __1.HubError("Get Project", "Can not retrieve context.requestOptions from Context Manager. HubProjectManager is configured incorrectly.");
123
+ throw new __1.HubError("Fetch Project", "Can not retrieve context.requestOptions from Context Manager. HubProjectManager is configured incorrectly.");
124
+ }
125
+ }
126
+ /**
127
+ * Search for Projects
128
+ *
129
+ * @param filter
130
+ * @param options
131
+ */
132
+ async search(filter, options) {
133
+ // if we were not passed auth, and we have a session, use it
134
+ if (!options.authentication && this.context.session) {
135
+ options.authentication = this.context.session;
115
136
  }
137
+ return HubProjects_1.searchProjects(filter, options);
138
+ }
139
+ /**
140
+ * Set the thumbnail for the Project
141
+ * @param id
142
+ * @param file
143
+ * @param filename
144
+ * @param requestOptions
145
+ * @returns
146
+ */
147
+ async updateThumbnail(project, file, filename, requestOptions) {
148
+ const ro = requestOptions || this.context.userRequestOptions;
149
+ await setItemThumbnail_1.setItemThumbnail(project.id, file, filename, ro);
150
+ // get the item so we have updated props and timestamps
151
+ return this.fetch(project.id, requestOptions);
116
152
  }
117
153
  }
118
154
  exports.HubProjectManager = HubProjectManager;
@@ -1 +1 @@
1
- {"version":3,"file":"HubProjectManager.js","sourceRoot":"","sources":["../../../src/projects/HubProjectManager.ts"],"names":[],"mappings":";;;AAEA,+CAKuB;AACvB,mDAAmD;AACnD,kEAA+D;AAC/D,0BAA8C;AAG9C;;;;;;GAMG;AACH,MAAa,iBAAiB;IAgB5B;;;;OAIG;IACH,YAAoB,gBAAuD;QACzE,IAAI,gBAAgB,YAAY,2CAAoB,EAAE;YACpD,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SAClC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CACT,gBAAuD;QAEvD,OAAO,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,OAA6B,EAC7B,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,0BAA0B;YAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;aAChD;YACD,OAAO,2BAAa,CAClB,OAAO,EACP,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,YAAQ,CAChB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,OAAoB,EACpB,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,OAAO,2BAAa,CAClB,OAAO,EACP,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,YAAQ,CAChB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,EAAU,EACV,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,OAAO,4BAAc,CACnB,EAAE,EACF,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,YAAQ,CAChB,iBAAiB,EACjB,kDAAkD,CACnD,CAAC;SACH;IACH,CAAC;IACD;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACT,UAAkB,EAClB,cAAgC;QAEhC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACjD,OAAO,wBAAU,CACf,UAAU,EACV,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAC9C,CAAC;SACH;aAAM;YACL,MAAM,IAAI,YAAQ,CAChB,aAAa,EACb,4GAA4G,CAC7G,CAAC;SACH;IACH,CAAC;CAgBF;AAzKD,8CAyKC"}
1
+ {"version":3,"file":"HubProjectManager.js","sourceRoot":"","sources":["../../../src/projects/HubProjectManager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.destroyProject = exports.getProject = exports.updateProject = exports.createProject = exports.HUB_PROJECT_ITEM_TYPE = void 0;
3
+ exports.searchProjects = exports.destroyProject = exports.fetchProject = exports.updateProject = exports.createProject = exports.HUB_PROJECT_ITEM_TYPE = void 0;
4
4
  // Note - we separate these imports so we can cleanly spy on things in tests
5
5
  const models_1 = require("../models");
6
6
  const slugs_1 = require("../items/slugs");
@@ -15,6 +15,7 @@ const DEFAULT_PROJECT = {
15
15
  name: "No title provided",
16
16
  tags: [],
17
17
  typeKeywords: ["IHubProject", "HubProject"],
18
+ status: "inactive",
18
19
  };
19
20
  /**
20
21
  * Default values for a new HubProject Model
@@ -26,7 +27,7 @@ const DEFAULT_PROJECT_MODEL = {
26
27
  description: "No Description Provided",
27
28
  snippet: "",
28
29
  tags: [],
29
- typeKeywords: [],
30
+ typeKeywords: ["Hub Project"],
30
31
  properties: {
31
32
  slug: "",
32
33
  },
@@ -34,7 +35,6 @@ const DEFAULT_PROJECT_MODEL = {
34
35
  data: {
35
36
  display: "about",
36
37
  timeline: {},
37
- org: {},
38
38
  status: "inactive",
39
39
  contacts: [],
40
40
  schemaVersion: 1,
@@ -111,7 +111,7 @@ async function createProject(partialProject, requestOptions) {
111
111
  project.slug = slugs_1.constructSlug(project.name, project.orgUrlKey);
112
112
  }
113
113
  // Ensure slug is unique
114
- project.slug = await slugs_1.getUniqueSlug(project.slug, requestOptions);
114
+ project.slug = await slugs_1.getUniqueSlug({ slug: project.slug }, requestOptions);
115
115
  // add slug to keywords
116
116
  project.typeKeywords = slugs_1.setSlugKeyword(project.typeKeywords, project.slug);
117
117
  // Map project object onto a default project Model
@@ -132,10 +132,8 @@ exports.createProject = createProject;
132
132
  * @param requestOptions
133
133
  */
134
134
  async function updateProject(project, requestOptions) {
135
- // verify that the slug is unique
136
- // TODO: if the slug has not changed, we don't want to do this because
137
- // the existing item will cause this to increment
138
- project.slug = await slugs_1.getUniqueSlug(project.slug, requestOptions);
135
+ // verify that the slug is unique, excluding the current project
136
+ project.slug = await slugs_1.getUniqueSlug({ slug: project.slug, existingId: project.id }, requestOptions);
139
137
  // get the backing item & data
140
138
  const model = await models_1.getModel(project.id, requestOptions);
141
139
  // create the PropertyMapper
@@ -158,7 +156,7 @@ exports.updateProject = updateProject;
158
156
  * @param identifier item id or slug
159
157
  * @param requestOptions
160
158
  */
161
- function getProject(identifier, requestOptions) {
159
+ function fetchProject(identifier, requestOptions) {
162
160
  let getPrms;
163
161
  if (__1.isGuid(identifier)) {
164
162
  // get item by id
@@ -166,16 +164,24 @@ function getProject(identifier, requestOptions) {
166
164
  }
167
165
  else {
168
166
  // search for item using filter=typekeywords:slug|identifier
167
+ // although we could leverage searchProjects with an appropriate filter
168
+ // getModelBySlug is a generalized function that works for any type
169
169
  getPrms = models_1.getModelBySlug(identifier, requestOptions);
170
170
  }
171
171
  return getPrms.then((model) => {
172
172
  // transform the model into a HubProject
173
173
  const mapper = new PropertyMapper_1.PropertyMapper(getProjectPropertyMap());
174
174
  const project = mapper.modelToObject(model, {});
175
+ let token;
176
+ if (requestOptions.authentication) {
177
+ const us = requestOptions.authentication;
178
+ token = us.token;
179
+ }
180
+ project.thumbnailUrl = __1.getItemThumbnailUrl(model.item, requestOptions, token);
175
181
  return project;
176
182
  });
177
183
  }
178
- exports.getProject = getProject;
184
+ exports.fetchProject = fetchProject;
179
185
  /**
180
186
  * Remove a Hub Project
181
187
  * @param id
@@ -191,11 +197,79 @@ exports.destroyProject = destroyProject;
191
197
  // i.e. delegate to searchContent or just do an item search
192
198
  // and convert to IHubProject objects.
193
199
  //
194
- // export async function searchProjects(
195
- // filter: Filter<"content">,
196
- // opts: IHubSearchOptions
197
- // ): Promise<ISearchResponse<IHubProject>> {
198
- // return _searchContent(filter, opts).then((results) => {
199
- // })
200
- // }
200
+ async function searchProjects(filter, options) {
201
+ var _a;
202
+ // Scope to Hub Projects
203
+ const scopingFilter = {
204
+ filterType: "content",
205
+ typekeywords: {
206
+ exact: ["HubProject"],
207
+ },
208
+ };
209
+ // merge filters
210
+ const projectFilter = __1.mergeContentFilter([scopingFilter, filter]);
211
+ // expand filter so we can serialize to either api
212
+ const expanded = __1.expandContentFilter(projectFilter);
213
+ const so = __1.serializeContentFilterForPortal(expanded);
214
+ // Aggregations
215
+ if ((_a = options.aggregations) === null || _a === void 0 ? void 0 : _a.length) {
216
+ so.countFields = options.aggregations.join(",");
217
+ so.countSize = 200;
218
+ }
219
+ // copy over various options
220
+ if (options.num) {
221
+ so.num = options.num;
222
+ }
223
+ if (options.sortField) {
224
+ so.sortField = options.sortField;
225
+ }
226
+ if (options.sortOrder) {
227
+ so.sortOrder = options.sortOrder;
228
+ }
229
+ if (options.site) {
230
+ so.site = __1.cloneObject(options.site);
231
+ }
232
+ if (options.authentication) {
233
+ so.authentication = options.authentication;
234
+ }
235
+ return searchPortalProjects(so);
236
+ }
237
+ exports.searchProjects = searchProjects;
238
+ /**
239
+ * Internal fn that takes
240
+ * @param searchOptions
241
+ * @returns
242
+ */
243
+ async function searchPortalProjects(searchOptions) {
244
+ const response = await arcgis_rest_portal_1.searchItems(searchOptions);
245
+ const hasNext = response.nextStart > -1;
246
+ // TODO: Change to leveraging the enrichment pipelines
247
+ // Convert the item's into models
248
+ const modelPromises = response.results.map((itm) => {
249
+ return models_1.fetchModelFromItem(itm, {
250
+ authentication: searchOptions.authentication,
251
+ });
252
+ });
253
+ const models = await Promise.all(modelPromises);
254
+ // create a mapper to convert the model int
255
+ const mapper = new PropertyMapper_1.PropertyMapper(getProjectPropertyMap());
256
+ let token;
257
+ if (searchOptions.authentication) {
258
+ const us = searchOptions.authentication;
259
+ token = us.token;
260
+ }
261
+ // map over the results, converting them into IHubProject pojos
262
+ const projects = models.map((m) => {
263
+ const prj = mapper.modelToObject(m, {});
264
+ prj.thumbnailUrl = __1.getItemThumbnailUrl(m.item, { authentication: searchOptions.authentication }, token);
265
+ return prj;
266
+ });
267
+ return {
268
+ total: response.total,
269
+ results: projects,
270
+ facets: [],
271
+ hasNext,
272
+ next: __1.getNextFunction(searchOptions, response.nextStart, response.total, searchPortalProjects),
273
+ };
274
+ }
201
275
  //# sourceMappingURL=HubProjects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
@@ -24,14 +24,12 @@ export interface IHubOptions {
24
24
  *
25
25
  * myHub.context.currentUser //=> {username: "casey", ...} as IUser
26
26
  *
27
- * const projectStore = await myHub.getProjectStore();
28
- *
29
- * const pavingProject = await projectStore.create({name: "12th Street Paving"});
27
+ * const pavingProject = await myHub.projects.create({name: "12th Street Paving"});
30
28
  * pavingProject.summary = "This is the 2024 planned paving of 12th Street, between 8th and 11th Ave";
31
- * await projectStore.update(pavingProject);
29
+ * await myHub.projects.update(pavingProject);
32
30
  * ```
33
31
  *
34
- * This is a convenience class. Hub Stores can be created
32
+ * This is a convenience class. Hub Managers can be created
35
33
  * directly, or the underlying functions can be imported an used
36
34
  * as need for scenarios where these class structures introduce
37
35
  * unwanted complexity
@@ -42,20 +40,18 @@ export declare class Hub {
42
40
  * an application. When authentication changes, the .context
43
41
  * property on the context manager will be replaced. As long as
44
42
  * all the fns in this class leverage properties on .context
45
- * everything be kept in sync.
43
+ * everything will be kept in sync.
46
44
  */
47
45
  private _contextManager;
48
46
  private _projectManager;
49
47
  /**
50
- * Private so we can employ a factory function should we need
48
+ * Private so we can employ a factory function to do
51
49
  * async work during creation
52
50
  * @param contextManager
53
51
  */
54
52
  private constructor();
55
53
  /**
56
- * Factory function to construct a new HubProjectStore instance.
57
- *
58
- * Note: Used so that we could do async actions in the ctor.
54
+ * Factory function to construct a new Hub instance.
59
55
  * @param contextManager
60
56
  * @returns
61
57
  */
@@ -65,7 +61,7 @@ export declare class Hub {
65
61
  */
66
62
  get context(): import("./ArcGISContext").IArcGISContext;
67
63
  /**
68
- * Create a Project Store connected to the current Hub
64
+ * HubProjectManager for the current Hub
69
65
  * @returns
70
66
  */
71
67
  get projects(): HubProjectManager;
@@ -1,5 +1,6 @@
1
1
  import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
2
  import { IRequestOptions } from "@esri/arcgis-rest-request";
3
+ import { Filter, IHubSearchOptions, ISearchResponse } from "../..";
3
4
  /**
4
5
  * Baseline CRUD+Search functions required for all Store classes
5
6
  */
@@ -30,4 +31,19 @@ export interface IHubEntityManager<T> {
30
31
  * @param requestOptions
31
32
  */
32
33
  fetch(identifier: string, requestOptions: IRequestOptions): Promise<T>;
34
+ /**
35
+ * [WIP] We need to work out how best to handle the typing on this. Simply
36
+ * delegating to `searchContent` with a filter constraining to an Entity type
37
+ * will return `ISearchResponse<IHubContent>` and not the expected type.
38
+ *
39
+ * Search for Entitys of type `T`
40
+ *
41
+ * Note: When implementing, this should be a search for things of type `T`
42
+ * not searching "within" the `T`.
43
+ *
44
+ * i.e. Searching for Teams, not searching for content shared to a team.
45
+ * @param filter
46
+ * @param opts
47
+ */
48
+ search(filter: Filter<"content">, opts: IHubSearchOptions): Promise<ISearchResponse<T>>;
33
49
  }
@@ -0,0 +1,15 @@
1
+ import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
+ /**
3
+ * Item specific functions that must be implemented by Managers which operate against
4
+ * items stored in the Portal API
5
+ */
6
+ export interface IHubItemEntityManager<T> {
7
+ /**
8
+ * Add a thumbnail to an item
9
+ * @param entity
10
+ * @param file
11
+ * @param name
12
+ * @param requestOptions
13
+ */
14
+ updateThumbnail(entity: T, file: any, filename: string, requestOptions?: IUserRequestOptions): Promise<T>;
15
+ }
@@ -15,3 +15,4 @@ export * from "./fetch-all-pages";
15
15
  export * from "./get-structured-license";
16
16
  export * from "./slugs";
17
17
  export * from "./normalize-solution-template-item";
18
+ export * from "./setItemThumbnail";
@@ -0,0 +1,9 @@
1
+ import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
+ /**
3
+ * Upload a file to be used as the thumbnail for an item
4
+ * @param id
5
+ * @param file
6
+ * @param filename
7
+ * @param requestOptions
8
+ */
9
+ export declare function setItemThumbnail(id: string, file: any, filename: string, requestOptions: IUserRequestOptions): Promise<void>;
@@ -28,6 +28,22 @@ export declare function setSlugKeyword(typeKeywords: string[], slug: string): st
28
28
  * @returns
29
29
  */
30
30
  export declare function getItemBySlug(slug: string, requestOptions: IRequestOptions): Promise<IItem>;
31
+ /**
32
+ * Find items by slug typeKeywords.
33
+ *
34
+ * Optional exclude parameter accepts the id of an item we expect to
35
+ * have this particular slug. This is used during update calls
36
+ * where we don't know if the slug specifically has been updated, but we
37
+ * don't want a false-postive from the item we are updating
38
+ *
39
+ * @param slug
40
+ * @param requestOptions
41
+ * @returns
42
+ */
43
+ export declare function findItemsBySlug(slugInfo: {
44
+ slug: string;
45
+ exclude?: string;
46
+ }, requestOptions: IRequestOptions): Promise<IItem[]>;
31
47
  /**
32
48
  * Given a slug, search for items using that slug, incrementing the slug name until
33
49
  * a unique value is found
@@ -40,4 +56,7 @@ export declare function getItemBySlug(slug: string, requestOptions: IRequestOpti
40
56
  * @param step
41
57
  * @returns
42
58
  */
43
- export declare function getUniqueSlug(slug: string, requestOptions: IRequestOptions, step?: number): Promise<string>;
59
+ export declare function getUniqueSlug(slugInfo: {
60
+ slug: string;
61
+ existingId?: string;
62
+ }, requestOptions: IRequestOptions, step?: number): Promise<string>;
@@ -1,5 +1,6 @@
1
1
  export * from "./serializeModel";
2
2
  import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
3
+ import { IItem } from "@esri/arcgis-rest-portal";
3
4
  import { IRequestOptions } from "@esri/arcgis-rest-request";
4
5
  import { IModel } from "..";
5
6
  /**
@@ -40,3 +41,10 @@ export declare function createModel(model: IModel, requestOptions: IUserRequestO
40
41
  * @returns {Promise<IModel>}
41
42
  */
42
43
  export declare function updateModel(model: IModel, requestOptions: IUserRequestOptions): Promise<IModel>;
44
+ /**
45
+ * Given an Item, fetch the data json and return an IModel
46
+ * @param item
47
+ * @param requestOptions
48
+ * @returns
49
+ */
50
+ export declare function fetchModelFromItem(item: IItem, requestOptions: IRequestOptions): Promise<IModel>;
@@ -1,8 +1,9 @@
1
1
  import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
2
  import { IRequestOptions } from "@esri/arcgis-rest-request";
3
3
  import { ArcGISContextManager } from "../ArcGISContextManager";
4
- import { IArcGISContext } from "..";
5
- import { IHubProject, IHubEntityManager } from "../core/types";
4
+ import { Filter, IArcGISContext, IHubSearchOptions, ISearchResponse } from "..";
5
+ import { IHubEntityManager, IHubProject } from "../core/types";
6
+ import { IHubItemEntityManager } from "../core/types/IHubItemEntityManager";
6
7
  /**
7
8
  * Centralized functions used to manage IHubProject instances
8
9
  *
@@ -10,7 +11,7 @@ import { IHubProject, IHubEntityManager } from "../core/types";
10
11
  * are also directly accessible for use in scenarios where
11
12
  * classes are inconvenient.
12
13
  */
13
- export declare class HubProjectManager implements IHubEntityManager<IHubProject> {
14
+ export declare class HubProjectManager implements IHubEntityManager<IHubProject>, IHubItemEntityManager<IHubProject> {
14
15
  /**
15
16
  * Hold a context manager, which should be a single instance for
16
17
  * an application. When authentication changes, the .context
@@ -67,6 +68,7 @@ export declare class HubProjectManager implements IHubEntityManager<IHubProject>
67
68
  * @returns
68
69
  */
69
70
  destroy(id: string, requestOptions?: IUserRequestOptions): Promise<void>;
71
+ get(identifier: string, requestOptions?: IRequestOptions): Promise<IHubProject>;
70
72
  /**
71
73
  * Fetch a Project via id or it's slug
72
74
  *
@@ -78,4 +80,20 @@ export declare class HubProjectManager implements IHubEntityManager<IHubProject>
78
80
  * @returns
79
81
  */
80
82
  fetch(identifier: string, requestOptions?: IRequestOptions): Promise<IHubProject>;
83
+ /**
84
+ * Search for Projects
85
+ *
86
+ * @param filter
87
+ * @param options
88
+ */
89
+ search(filter: Filter<"content">, options: IHubSearchOptions): Promise<ISearchResponse<IHubProject>>;
90
+ /**
91
+ * Set the thumbnail for the Project
92
+ * @param id
93
+ * @param file
94
+ * @param filename
95
+ * @param requestOptions
96
+ * @returns
97
+ */
98
+ updateThumbnail(project: IHubProject, file: any, filename: string, requestOptions?: IUserRequestOptions): Promise<IHubProject>;
81
99
  }