@esri/hub-common 14.104.0 → 14.106.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/esm/events/api/events.js +1 -1
- package/dist/esm/events/api/utils/authenticate-request.js +1 -1
- package/dist/esm/items/follow.js +102 -0
- package/dist/esm/items/follow.js.map +1 -0
- package/dist/esm/items/index.js +2 -0
- package/dist/esm/items/index.js.map +1 -1
- package/dist/esm/newsletters/api/index.js +4 -0
- package/dist/esm/newsletters/api/index.js.map +1 -0
- package/dist/esm/newsletters/api/orval/api/orval-newsletters.js +107 -0
- package/dist/esm/newsletters/api/orval/api/orval-newsletters.js.map +1 -0
- package/dist/esm/newsletters/api/orval/awaited-type.js +1 -0
- package/dist/esm/newsletters/api/orval/awaited-type.js.map +1 -0
- package/dist/esm/newsletters/api/orval/custom-client.js +44 -0
- package/dist/esm/newsletters/api/orval/custom-client.js.map +1 -0
- package/dist/esm/newsletters/api/subscriptions.js +53 -0
- package/dist/esm/newsletters/api/subscriptions.js.map +1 -0
- package/dist/esm/newsletters/api/types.js +2 -0
- package/dist/esm/newsletters/api/types.js.map +1 -0
- package/dist/esm/newsletters/api/users.js +43 -0
- package/dist/esm/newsletters/api/users.js.map +1 -0
- package/dist/esm/newsletters/api/utils/authenticate-request.js +15 -0
- package/dist/esm/newsletters/api/utils/authenticate-request.js.map +1 -0
- package/dist/esm/newsletters/index.js +2 -0
- package/dist/esm/newsletters/index.js.map +1 -0
- package/dist/esm/surveys/utils/get-s123-edit-url.js +4 -0
- package/dist/esm/surveys/utils/get-s123-edit-url.js.map +1 -0
- package/dist/esm/surveys/utils/index.js +1 -0
- package/dist/esm/surveys/utils/index.js.map +1 -1
- package/dist/node/events/api/events.js +1 -1
- package/dist/node/events/api/utils/authenticate-request.js +1 -1
- package/dist/node/items/follow.js +109 -0
- package/dist/node/items/follow.js.map +1 -0
- package/dist/node/items/index.js +2 -0
- package/dist/node/items/index.js.map +1 -1
- package/dist/node/newsletters/api/index.js +7 -0
- package/dist/node/newsletters/api/index.js.map +1 -0
- package/dist/node/newsletters/api/orval/api/orval-newsletters.js +110 -0
- package/dist/node/newsletters/api/orval/api/orval-newsletters.js.map +1 -0
- package/dist/node/newsletters/api/orval/awaited-type.js +3 -0
- package/dist/node/newsletters/api/orval/awaited-type.js.map +1 -0
- package/dist/node/newsletters/api/orval/custom-client.js +48 -0
- package/dist/node/newsletters/api/orval/custom-client.js.map +1 -0
- package/dist/node/newsletters/api/subscriptions.js +61 -0
- package/dist/node/newsletters/api/subscriptions.js.map +1 -0
- package/dist/node/newsletters/api/types.js +7 -0
- package/dist/node/newsletters/api/types.js.map +1 -0
- package/dist/node/newsletters/api/users.js +50 -0
- package/dist/node/newsletters/api/users.js.map +1 -0
- package/dist/node/newsletters/api/utils/authenticate-request.js +19 -0
- package/dist/node/newsletters/api/utils/authenticate-request.js.map +1 -0
- package/dist/node/newsletters/index.js +5 -0
- package/dist/node/newsletters/index.js.map +1 -0
- package/dist/node/surveys/utils/get-s123-edit-url.js +8 -0
- package/dist/node/surveys/utils/get-s123-edit-url.js.map +1 -0
- package/dist/node/surveys/utils/index.js +1 -0
- package/dist/node/surveys/utils/index.js.map +1 -1
- package/dist/types/events/api/events.d.ts +1 -1
- package/dist/types/events/api/utils/authenticate-request.d.ts +1 -1
- package/dist/types/items/follow.d.ts +50 -0
- package/dist/types/items/index.d.ts +2 -0
- package/dist/types/newsletters/api/index.d.ts +3 -0
- package/dist/types/newsletters/api/orval/api/orval-newsletters.d.ts +215 -0
- package/dist/types/newsletters/api/orval/awaited-type.d.ts +5 -0
- package/dist/types/newsletters/api/orval/custom-client.d.ts +22 -0
- package/dist/types/newsletters/api/subscriptions.d.ts +36 -0
- package/dist/types/newsletters/api/types.d.ts +47 -0
- package/dist/types/newsletters/api/users.d.ts +29 -0
- package/dist/types/newsletters/api/utils/authenticate-request.d.ts +9 -0
- package/dist/types/newsletters/index.d.ts +1 -0
- package/dist/types/surveys/utils/get-s123-edit-url.d.ts +2 -0
- package/dist/types/surveys/utils/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* return a token created using options.authentication or set on options.token
|
|
3
3
|
*
|
|
4
4
|
* @export
|
|
5
|
-
* @param {
|
|
5
|
+
* @param {IEventsRequestOptions} options
|
|
6
6
|
* @return {*} {Promise<string>}
|
|
7
7
|
*/
|
|
8
8
|
export function authenticateRequest(options) {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { joinGroup, leaveGroup } from "@esri/arcgis-rest-portal";
|
|
2
|
+
import { fetchHubEntity } from "../core";
|
|
3
|
+
/**
|
|
4
|
+
* Get the entity's followers group id
|
|
5
|
+
* @param entityId entity id
|
|
6
|
+
* @param entityType entity type
|
|
7
|
+
* @param context context used to support fetchHubEntity so it has access
|
|
8
|
+
* to different types of request options based on the entity type
|
|
9
|
+
* @returns {string} entity's followers group id
|
|
10
|
+
*/
|
|
11
|
+
export async function getEntityFollowersGroupId(entityId, entityType, context) {
|
|
12
|
+
// entity's type is IWithFollowers as we only want to accept hub entities
|
|
13
|
+
// backed by item entities which extend IWithFollowers
|
|
14
|
+
let entity;
|
|
15
|
+
try {
|
|
16
|
+
entity = (await fetchHubEntity(entityType, entityId, context));
|
|
17
|
+
return entity.followersGroupId;
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
throw new Error(`Error fetching entity followers group ID: ${e}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Whether the user is currently following the entity
|
|
25
|
+
* @param entityOrId hub entity or entity id, type is IWithFollowers
|
|
26
|
+
* as we only want to accept hub entities backed by item entities which
|
|
27
|
+
* extend IWithFollowers
|
|
28
|
+
* @param user
|
|
29
|
+
* @param entityType
|
|
30
|
+
* @param context
|
|
31
|
+
* @returns {boolean}
|
|
32
|
+
*/
|
|
33
|
+
export async function isUserFollowing(entityOrId, user, entityType, context) {
|
|
34
|
+
// get the entity's followers group id
|
|
35
|
+
let groupId;
|
|
36
|
+
if (typeof entityOrId === "string") {
|
|
37
|
+
groupId = await getEntityFollowersGroupId(entityOrId, entityType, context);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
groupId = entityOrId.followersGroupId;
|
|
41
|
+
}
|
|
42
|
+
// looks through the users group list and find the same group
|
|
43
|
+
const group = user.groups.find((g) => g.id === groupId);
|
|
44
|
+
return !!group;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Follow an entity
|
|
48
|
+
* @param entityId entity id
|
|
49
|
+
* @param user user who attempts to follow the entity
|
|
50
|
+
* @param entityType optional if entityOrId is a string
|
|
51
|
+
* @param context optional if entityOrId is a string
|
|
52
|
+
* @returns promise that resolves { success: true, username: user.username }
|
|
53
|
+
* or rejects with an error
|
|
54
|
+
*/
|
|
55
|
+
export async function followEntity(entityId, user, entityType, context) {
|
|
56
|
+
const isFollowing = await isUserFollowing(entityId, user, entityType, context);
|
|
57
|
+
// don't update if user is already following
|
|
58
|
+
if (isFollowing) {
|
|
59
|
+
return Promise.reject("User is already following this entity.");
|
|
60
|
+
}
|
|
61
|
+
const groupId = await getEntityFollowersGroupId(entityId, entityType, context);
|
|
62
|
+
try {
|
|
63
|
+
await joinGroup({
|
|
64
|
+
id: groupId,
|
|
65
|
+
authentication: context.hubRequestOptions.authentication,
|
|
66
|
+
});
|
|
67
|
+
// successfully joined the group
|
|
68
|
+
return { success: true, username: user.username };
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw new Error(`Error joining group: ${error}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Unfollow an entity
|
|
76
|
+
* @param entityId entity id
|
|
77
|
+
* @param user user who attempts to unfollow the entity
|
|
78
|
+
* @param entityType optional if entityOrId is a string
|
|
79
|
+
* @param context optional if entityOrId is a string
|
|
80
|
+
* @returns promise that resolves { success: true, username: user.username } or
|
|
81
|
+
* rejects with an error
|
|
82
|
+
*/
|
|
83
|
+
export async function unfollowEntity(entityId, user, entityType, context) {
|
|
84
|
+
const isFollowing = await isUserFollowing(entityId, user, entityType, context);
|
|
85
|
+
// don't update if user is not following
|
|
86
|
+
if (!isFollowing) {
|
|
87
|
+
return Promise.reject("User is not following this entity.");
|
|
88
|
+
}
|
|
89
|
+
const groupId = await getEntityFollowersGroupId(entityId, entityType, context);
|
|
90
|
+
try {
|
|
91
|
+
await leaveGroup({
|
|
92
|
+
id: groupId,
|
|
93
|
+
authentication: context.hubRequestOptions.authentication,
|
|
94
|
+
});
|
|
95
|
+
// successfully left the group
|
|
96
|
+
return { success: true, username: user.username };
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
throw new Error(`Error leaving group: ${error}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=follow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"follow.js","sourceRoot":"","sources":["../../../src/items/follow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAiB,cAAc,EAAE,MAAM,SAAS,CAAC;AAIxD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,UAAyB,EACzB,OAAuB;IAEvB,yEAAyE;IACzE,sDAAsD;IACtD,IAAI,MAAsB,CAAC;IAC3B,IAAI;QACF,MAAM,GAAG,CAAC,MAAM,cAAc,CAC5B,UAAU,EACV,QAAQ,EACR,OAAO,CACR,CAAmB,CAAC;QACrB,OAAO,MAAM,CAAC,gBAAgB,CAAC;KAChC;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,EAAE,CAAC,CAAC;KACnE;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAmC,EACnC,IAAW,EACX,UAA0B,EAC1B,OAAwB;IAExB,sCAAsC;IACtC,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAC5E;SAAM;QACL,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC;KACvC;IACD,6DAA6D;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,IAAW,EACX,UAA0B,EAC1B,OAAwB;IAExB,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,OAAO,CACR,CAAC;IACF,4CAA4C;IAC5C,IAAI,WAAW,EAAE;QACf,OAAO,OAAO,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;KACjE;IACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAC7C,QAAQ,EACR,UAAU,EACV,OAAO,CACR,CAAC;IACF,IAAI;QACF,MAAM,SAAS,CAAC;YACd,EAAE,EAAE,OAAO;YACX,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc;SACzD,CAAC,CAAC;QACH,gCAAgC;QAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnD;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;KAClD;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,IAAW,EACX,UAA0B,EAC1B,OAAwB;IAExB,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,OAAO,CACR,CAAC;IACF,wCAAwC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,OAAO,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAC7D;IACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAC7C,QAAQ,EACR,UAAU,EACV,OAAO,CACR,CAAC;IACF,IAAI;QACF,MAAM,UAAU,CAAC;YACf,EAAE,EAAE,OAAO;YACX,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc;SACzD,CAAC,CAAC;QACH,8BAA8B;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnD;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;KAClD;AACH,CAAC"}
|
package/dist/esm/items/index.js
CHANGED
|
@@ -24,6 +24,8 @@ export * from "./uploadImageResource";
|
|
|
24
24
|
export * from "./is-services-directory-disabled";
|
|
25
25
|
export * from "./getItemIdentifier";
|
|
26
26
|
export * from "./deleteItemThumbnail";
|
|
27
|
+
export * from "./deleteItemThumbnail";
|
|
28
|
+
export * from "./follow";
|
|
27
29
|
// No longer exported as the only App Hub needed this for was a Site
|
|
28
30
|
// and that registration is now done in the domain service with a
|
|
29
31
|
// signed HMAC request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,oEAAoE;AACpE,iEAAiE;AACjE,uBAAuB;AACvB,wCAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,oEAAoE;AACpE,iEAAiE;AACjE,uBAAuB;AACvB,wCAAwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/newsletters/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by orval v6.24.0 🍺
|
|
3
|
+
* Do not edit manually.
|
|
4
|
+
* Hub Newsletters Service
|
|
5
|
+
* OpenAPI spec version: 0.0.1
|
|
6
|
+
*/
|
|
7
|
+
import { customClient } from "../custom-client";
|
|
8
|
+
export var DeliveryMethod;
|
|
9
|
+
(function (DeliveryMethod) {
|
|
10
|
+
DeliveryMethod["EMAIL"] = "EMAIL";
|
|
11
|
+
})(DeliveryMethod || (DeliveryMethod = {}));
|
|
12
|
+
export var Cadence;
|
|
13
|
+
(function (Cadence) {
|
|
14
|
+
Cadence["ON_EVENT"] = "ON_EVENT";
|
|
15
|
+
Cadence["DAILY"] = "DAILY";
|
|
16
|
+
Cadence["WEEKLY"] = "WEEKLY";
|
|
17
|
+
Cadence["MONTHLY"] = "MONTHLY";
|
|
18
|
+
})(Cadence || (Cadence = {}));
|
|
19
|
+
export var SystemNotificationSpecNames;
|
|
20
|
+
(function (SystemNotificationSpecNames) {
|
|
21
|
+
SystemNotificationSpecNames["TELEMETRY_REPORT"] = "TELEMETRY_REPORT";
|
|
22
|
+
SystemNotificationSpecNames["EVENT"] = "EVENT";
|
|
23
|
+
})(SystemNotificationSpecNames || (SystemNotificationSpecNames = {}));
|
|
24
|
+
export const createSubscription = (iCreateSubscription, options) => {
|
|
25
|
+
return customClient({
|
|
26
|
+
url: `/api/newsletters/v1/subscriptions`,
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: { "Content-Type": "application/json" },
|
|
29
|
+
data: iCreateSubscription,
|
|
30
|
+
}, options);
|
|
31
|
+
};
|
|
32
|
+
export const getSubscriptions = (params, options) => {
|
|
33
|
+
return customClient({ url: `/api/newsletters/v1/subscriptions`, method: "GET", params }, options);
|
|
34
|
+
};
|
|
35
|
+
export const subscribe = (iSubscribe, options) => {
|
|
36
|
+
return customClient({
|
|
37
|
+
url: `/api/newsletters/v1/subscriptions/subscribe`,
|
|
38
|
+
method: "POST",
|
|
39
|
+
headers: { "Content-Type": "application/json" },
|
|
40
|
+
data: iSubscribe,
|
|
41
|
+
}, options);
|
|
42
|
+
};
|
|
43
|
+
export const getSubscription = (id, options) => {
|
|
44
|
+
return customClient({ url: `/api/newsletters/v1/subscriptions/${id}`, method: "GET" }, options);
|
|
45
|
+
};
|
|
46
|
+
export const updateSubscription = (id, iUpdateSubscription, options) => {
|
|
47
|
+
return customClient({
|
|
48
|
+
url: `/api/newsletters/v1/subscriptions/${id}`,
|
|
49
|
+
method: "PATCH",
|
|
50
|
+
headers: { "Content-Type": "application/json" },
|
|
51
|
+
data: iUpdateSubscription,
|
|
52
|
+
}, options);
|
|
53
|
+
};
|
|
54
|
+
export const deleteSubscription = (id, options) => {
|
|
55
|
+
return customClient({ url: `/api/newsletters/v1/subscriptions/${id}`, method: "DELETE" }, options);
|
|
56
|
+
};
|
|
57
|
+
export const createUser = (iCreateUser, options) => {
|
|
58
|
+
return customClient({
|
|
59
|
+
url: `/api/newsletters/v1/users`,
|
|
60
|
+
method: "POST",
|
|
61
|
+
headers: { "Content-Type": "application/json" },
|
|
62
|
+
data: iCreateUser,
|
|
63
|
+
}, options);
|
|
64
|
+
};
|
|
65
|
+
export const getUsers = (options) => {
|
|
66
|
+
return customClient({ url: `/api/newsletters/v1/users`, method: "GET" }, options);
|
|
67
|
+
};
|
|
68
|
+
export const getUser = (userId, options) => {
|
|
69
|
+
return customClient({ url: `/api/newsletters/v1/users/${userId}`, method: "GET" }, options);
|
|
70
|
+
};
|
|
71
|
+
export const updateUser = (userId, iUpdateUser, options) => {
|
|
72
|
+
return customClient({
|
|
73
|
+
url: `/api/newsletters/v1/users/${userId}`,
|
|
74
|
+
method: "PATCH",
|
|
75
|
+
headers: { "Content-Type": "application/json" },
|
|
76
|
+
data: iUpdateUser,
|
|
77
|
+
}, options);
|
|
78
|
+
};
|
|
79
|
+
export const deleteUser = (userId, options) => {
|
|
80
|
+
return customClient({ url: `/api/newsletters/v1/users/${userId}`, method: "DELETE" }, options);
|
|
81
|
+
};
|
|
82
|
+
export const createNotificationSpec = (iCreateNotificationSpec, options) => {
|
|
83
|
+
return customClient({
|
|
84
|
+
url: `/api/newsletters/v1/notification-specs`,
|
|
85
|
+
method: "POST",
|
|
86
|
+
headers: { "Content-Type": "application/json" },
|
|
87
|
+
data: iCreateNotificationSpec,
|
|
88
|
+
}, options);
|
|
89
|
+
};
|
|
90
|
+
export const getNotificationSpecs = (options) => {
|
|
91
|
+
return customClient({ url: `/api/newsletters/v1/notification-specs`, method: "GET" }, options);
|
|
92
|
+
};
|
|
93
|
+
export const getNotificationSpec = (id, options) => {
|
|
94
|
+
return customClient({ url: `/api/newsletters/v1/notification-specs/${id}`, method: "GET" }, options);
|
|
95
|
+
};
|
|
96
|
+
export const updateNotificationSpec = (id, iUpdateNotificationSpec, options) => {
|
|
97
|
+
return customClient({
|
|
98
|
+
url: `/api/newsletters/v1/notification-specs/${id}`,
|
|
99
|
+
method: "PATCH",
|
|
100
|
+
headers: { "Content-Type": "application/json" },
|
|
101
|
+
data: iUpdateNotificationSpec,
|
|
102
|
+
}, options);
|
|
103
|
+
};
|
|
104
|
+
export const deleteNotificationSpec = (id, options) => {
|
|
105
|
+
return customClient({ url: `/api/newsletters/v1/notification-specs/${id}`, method: "DELETE" }, options);
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=orval-newsletters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orval-newsletters.js","sourceRoot":"","sources":["../../../../../../src/newsletters/api/orval/api/orval-newsletters.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAuGhD,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,iCAAe,CAAA;AACjB,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AACD,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,gCAAqB,CAAA;IACrB,0BAAe,CAAA;IACf,4BAAiB,CAAA;IACjB,8BAAmB,CAAA;AACrB,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AA6BD,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,oEAAqC,CAAA;IACrC,8CAAe,CAAA;AACjB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAmDD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,mBAAwC,EACxC,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,mCAAmC;QACxC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,mBAAmB;KAC1B,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAA+B,EAC/B,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,mCAAmC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EACnE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,UAAsB,EACtB,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,6CAA6C;QAClD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,UAAU;KACjB,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,EAAU,EACV,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,qCAAqC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EACjE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,EAAU,EACV,mBAAwC,EACxC,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,qCAAqC,EAAE,EAAE;QAC9C,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,mBAAmB;KAC1B,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,EAAU,EACV,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,qCAAqC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,WAAwB,EACxB,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,2BAA2B;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,WAAW;KAClB,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAA8C,EAAE,EAAE;IACzE,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,2BAA2B,EAAE,MAAM,EAAE,KAAK,EAAE,EACnD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAc,EACd,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,6BAA6B,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAC7D,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAAc,EACd,WAAwB,EACxB,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,6BAA6B,MAAM,EAAE;QAC1C,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,WAAW;KAClB,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAAc,EACd,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,6BAA6B,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAChE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,uBAAgD,EAChD,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,wCAAwC;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,uBAAuB;KAC9B,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,wCAAwC,EAAE,MAAM,EAAE,KAAK,EAAE,EAChE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,EAAU,EACV,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,0CAA0C,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EACtE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,EAAU,EACV,uBAAgD,EAChD,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB;QACE,GAAG,EAAE,0CAA0C,EAAE,EAAE;QACnD,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,uBAAuB;KAC9B,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,EAAU,EACV,OAA8C,EAC9C,EAAE;IACF,OAAO,YAAY,CACjB,EAAE,GAAG,EAAE,0CAA0C,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EACzE,OAAO,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=awaited-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaited-type.js","sourceRoot":"","sources":["../../../../../src/newsletters/api/orval/awaited-type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export async function customClient(orvalParams, customParams) {
|
|
2
|
+
const { url, method, data } = orvalParams;
|
|
3
|
+
const { mode, cache, credentials } = customParams;
|
|
4
|
+
const { headers, params } = combineParams(orvalParams, customParams);
|
|
5
|
+
const baseUrl = removeTrailingSlash(customParams.hubApiUrl);
|
|
6
|
+
const requestUrl = `${baseUrl}${url}?${new URLSearchParams(params)}`;
|
|
7
|
+
const requestOptions = {
|
|
8
|
+
headers,
|
|
9
|
+
method,
|
|
10
|
+
cache,
|
|
11
|
+
credentials,
|
|
12
|
+
mode,
|
|
13
|
+
};
|
|
14
|
+
if (data) {
|
|
15
|
+
requestOptions.body = JSON.stringify(data);
|
|
16
|
+
}
|
|
17
|
+
const res = await fetch(requestUrl, requestOptions);
|
|
18
|
+
const { statusText, status } = res;
|
|
19
|
+
if (res.ok) {
|
|
20
|
+
return res.json();
|
|
21
|
+
}
|
|
22
|
+
const error = await res.json();
|
|
23
|
+
throw new RemoteServerError(statusText, requestUrl, status, JSON.stringify(error.message));
|
|
24
|
+
}
|
|
25
|
+
function removeTrailingSlash(hubApiUrl = "https://hub.arcgis.com") {
|
|
26
|
+
return hubApiUrl.replace(/\/$/, "");
|
|
27
|
+
}
|
|
28
|
+
function combineParams(orvalParams, options) {
|
|
29
|
+
const headers = new Headers(Object.assign(Object.assign({}, orvalParams.headers), options.headers));
|
|
30
|
+
if (options.token) {
|
|
31
|
+
headers.set("Authorization", options.token);
|
|
32
|
+
}
|
|
33
|
+
const params = Object.assign(Object.assign({}, orvalParams.params), options.params);
|
|
34
|
+
return { headers, params };
|
|
35
|
+
}
|
|
36
|
+
class RemoteServerError extends Error {
|
|
37
|
+
constructor(message, url, status, error) {
|
|
38
|
+
super(message);
|
|
39
|
+
this.status = status;
|
|
40
|
+
this.url = url;
|
|
41
|
+
this.error = error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=custom-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-client.js","sourceRoot":"","sources":["../../../../../src/newsletters/api/orval/custom-client.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAyB,EACzB,YAA2B;IAE3B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;IAC1C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAClD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,mBAAmB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,GAAG,OAAO,GAAG,GAAG,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IAErE,MAAM,cAAc,GAAgB;QAClC,OAAO;QACP,MAAM;QACN,KAAK;QACL,WAAW;QACX,IAAI;KACL,CAAC;IACF,IAAI,IAAI,EAAE;QACR,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC5C;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEnC,IAAI,GAAG,CAAC,EAAE,EAAE;QACV,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,iBAAiB,CACzB,UAAU,EACV,UAAU,EACV,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAS,GAAG,wBAAwB;IAC/D,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,WAAyB,EAAE,OAAsB;IACtE,MAAM,OAAO,GAAG,IAAI,OAAO,iCACtB,WAAW,CAAC,OAAO,GACnB,OAAO,CAAC,OAAO,EAClB,CAAC;IACH,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7C;IAED,MAAM,MAAM,mCACP,WAAW,CAAC,MAAM,GAClB,OAAO,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,iBAAkB,SAAQ,KAAK;IAKnC,YAAY,OAAe,EAAE,GAAW,EAAE,MAAc,EAAE,KAAa;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { authenticateRequest } from "./utils/authenticate-request";
|
|
2
|
+
import { subscribe as _subscribe, createSubscription as _createSubscription, getSubscriptions as _getSubscriptions, getSubscription as _getSubscription, updateSubscription as _updateSubscription, } from "./orval/api/orval-newsletters";
|
|
3
|
+
/**
|
|
4
|
+
* create a subscription for user (existing or not) to a newsletter
|
|
5
|
+
*
|
|
6
|
+
* @param {ISubscribeParams} options
|
|
7
|
+
* @return {Promise<ISubscription>}
|
|
8
|
+
*/
|
|
9
|
+
export async function subscribe(options) {
|
|
10
|
+
options.token = await authenticateRequest(options);
|
|
11
|
+
return _subscribe(options.data, options);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* create a subscription for user (existing) to a newsletter
|
|
15
|
+
*
|
|
16
|
+
* @param {ICreateSubscriptionParams} options
|
|
17
|
+
* @return {Promise<ISubscription>}
|
|
18
|
+
*/
|
|
19
|
+
export async function createSubscription(options) {
|
|
20
|
+
options.token = await authenticateRequest(options);
|
|
21
|
+
return _createSubscription(options.data, options);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* get subscriptions
|
|
25
|
+
*
|
|
26
|
+
* @param {IGetSubscriptionsParams} options
|
|
27
|
+
* @return {Promise<ISubscription[]>}
|
|
28
|
+
*/
|
|
29
|
+
export async function getSubscriptions(options) {
|
|
30
|
+
options.token = await authenticateRequest(options);
|
|
31
|
+
return _getSubscriptions(options.data, options);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* get a subscription
|
|
35
|
+
*
|
|
36
|
+
* @param {IGetSubscriptionParams} options
|
|
37
|
+
* @return {Promise<ISubscription>}
|
|
38
|
+
*/
|
|
39
|
+
export async function getSubscription(options) {
|
|
40
|
+
options.token = await authenticateRequest(options);
|
|
41
|
+
return _getSubscription(options.subscriptionId, options);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* update a subscription
|
|
45
|
+
*
|
|
46
|
+
* @param {IUpdateSubscriptionParams} options
|
|
47
|
+
* @return {Promise<ISubscription>}
|
|
48
|
+
*/
|
|
49
|
+
export async function updateSubscription(options) {
|
|
50
|
+
options.token = await authenticateRequest(options);
|
|
51
|
+
return _updateSubscription(options.subscriptionId, options.data, options);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../../src/newsletters/api/subscriptions.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,SAAS,IAAI,UAAU,EACvB,kBAAkB,IAAI,mBAAmB,EACzC,gBAAgB,IAAI,iBAAiB,EACrC,eAAe,IAAI,gBAAgB,EACnC,kBAAkB,IAAI,mBAAmB,GAC1C,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAyB;IAEzB,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B;IAE/B,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/newsletters/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EAQd,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { authenticateRequest } from "./utils/authenticate-request";
|
|
2
|
+
import { createUser as _createUser, getUser as _getUser, updateUser as _updateUser, deleteUser as _deleteUser, } from "./orval/api/orval-newsletters";
|
|
3
|
+
/**
|
|
4
|
+
* create a user
|
|
5
|
+
*
|
|
6
|
+
* @param {ICreateUserParams} options
|
|
7
|
+
* @return {Promise<IUser>}
|
|
8
|
+
*/
|
|
9
|
+
export async function createUser(options) {
|
|
10
|
+
options.token = await authenticateRequest(options);
|
|
11
|
+
return _createUser(options.data, options);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* get a user
|
|
15
|
+
*
|
|
16
|
+
* @param {IGetUserParams} options
|
|
17
|
+
* @return {Promise<IUser>}
|
|
18
|
+
*/
|
|
19
|
+
export async function getUser(options) {
|
|
20
|
+
options.token = await authenticateRequest(options);
|
|
21
|
+
return _getUser(options.userId, options);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* update a user
|
|
25
|
+
*
|
|
26
|
+
* @param {IUpdateUserParams} options
|
|
27
|
+
* @return {Promise<IUser>}
|
|
28
|
+
*/
|
|
29
|
+
export async function updateUser(options) {
|
|
30
|
+
options.token = await authenticateRequest(options);
|
|
31
|
+
return _updateUser(options.userId, options.data, options);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* delete a user
|
|
35
|
+
*
|
|
36
|
+
* @param {IDeleteUserParams} options
|
|
37
|
+
* @return {Promise<IUser>}
|
|
38
|
+
*/
|
|
39
|
+
export async function deleteUser(options) {
|
|
40
|
+
options.token = await authenticateRequest(options);
|
|
41
|
+
return _deleteUser(options.userId, options);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../../../src/newsletters/api/users.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,OAAO,IAAI,QAAQ,EACnB,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,GAC1B,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACnD,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* return a token created using options.authentication or set on options.token
|
|
3
|
+
*
|
|
4
|
+
* @export
|
|
5
|
+
* @param {INewslettersRequestOptions} options
|
|
6
|
+
* @return {*} {Promise<string>}
|
|
7
|
+
*/
|
|
8
|
+
export function authenticateRequest(options) {
|
|
9
|
+
const { token, authentication } = options;
|
|
10
|
+
if (authentication) {
|
|
11
|
+
return authentication.getToken(authentication.portal);
|
|
12
|
+
}
|
|
13
|
+
return Promise.resolve(token);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=authenticate-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticate-request.js","sourceRoot":"","sources":["../../../../../src/newsletters/api/utils/authenticate-request.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAmC;IAEnC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE1C,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KACvD;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/newsletters/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-s123-edit-url.js","sourceRoot":"","sources":["../../../../src/surveys/utils/get-s123-edit-url.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,OAAuB;IAChE,OAAO,GAAG,OAAO,CAAC,YAAY,YAAY,EAAE,cAAc,kBAAkB,CAC1E,OAAO,CAAC,SAAS,CAClB,EAAE,CAAC;AACN,CAAC"}
|
|
@@ -3,6 +3,7 @@ export * from "./get-form-info-json";
|
|
|
3
3
|
export * from "./get-form-json";
|
|
4
4
|
export * from "./get-input-feature-service-model";
|
|
5
5
|
export * from "./get-map-question";
|
|
6
|
+
export * from "./get-s123-edit-url";
|
|
6
7
|
export * from "./get-s123-share-url";
|
|
7
8
|
export * from "./get-source-feature-service-model-from-fieldworker";
|
|
8
9
|
export * from "./get-stakeholder-model";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/surveys/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qDAAqD,CAAC;AACpE,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/surveys/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qDAAqD,CAAC;AACpE,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
|
|
@@ -5,7 +5,7 @@ exports.authenticateRequest = void 0;
|
|
|
5
5
|
* return a token created using options.authentication or set on options.token
|
|
6
6
|
*
|
|
7
7
|
* @export
|
|
8
|
-
* @param {
|
|
8
|
+
* @param {IEventsRequestOptions} options
|
|
9
9
|
* @return {*} {Promise<string>}
|
|
10
10
|
*/
|
|
11
11
|
function authenticateRequest(options) {
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unfollowEntity = exports.followEntity = exports.isUserFollowing = exports.getEntityFollowersGroupId = void 0;
|
|
4
|
+
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
|
+
const core_1 = require("../core");
|
|
6
|
+
/**
|
|
7
|
+
* Get the entity's followers group id
|
|
8
|
+
* @param entityId entity id
|
|
9
|
+
* @param entityType entity type
|
|
10
|
+
* @param context context used to support fetchHubEntity so it has access
|
|
11
|
+
* to different types of request options based on the entity type
|
|
12
|
+
* @returns {string} entity's followers group id
|
|
13
|
+
*/
|
|
14
|
+
async function getEntityFollowersGroupId(entityId, entityType, context) {
|
|
15
|
+
// entity's type is IWithFollowers as we only want to accept hub entities
|
|
16
|
+
// backed by item entities which extend IWithFollowers
|
|
17
|
+
let entity;
|
|
18
|
+
try {
|
|
19
|
+
entity = (await core_1.fetchHubEntity(entityType, entityId, context));
|
|
20
|
+
return entity.followersGroupId;
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
throw new Error(`Error fetching entity followers group ID: ${e}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.getEntityFollowersGroupId = getEntityFollowersGroupId;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the user is currently following the entity
|
|
29
|
+
* @param entityOrId hub entity or entity id, type is IWithFollowers
|
|
30
|
+
* as we only want to accept hub entities backed by item entities which
|
|
31
|
+
* extend IWithFollowers
|
|
32
|
+
* @param user
|
|
33
|
+
* @param entityType
|
|
34
|
+
* @param context
|
|
35
|
+
* @returns {boolean}
|
|
36
|
+
*/
|
|
37
|
+
async function isUserFollowing(entityOrId, user, entityType, context) {
|
|
38
|
+
// get the entity's followers group id
|
|
39
|
+
let groupId;
|
|
40
|
+
if (typeof entityOrId === "string") {
|
|
41
|
+
groupId = await getEntityFollowersGroupId(entityOrId, entityType, context);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
groupId = entityOrId.followersGroupId;
|
|
45
|
+
}
|
|
46
|
+
// looks through the users group list and find the same group
|
|
47
|
+
const group = user.groups.find((g) => g.id === groupId);
|
|
48
|
+
return !!group;
|
|
49
|
+
}
|
|
50
|
+
exports.isUserFollowing = isUserFollowing;
|
|
51
|
+
/**
|
|
52
|
+
* Follow an entity
|
|
53
|
+
* @param entityId entity id
|
|
54
|
+
* @param user user who attempts to follow the entity
|
|
55
|
+
* @param entityType optional if entityOrId is a string
|
|
56
|
+
* @param context optional if entityOrId is a string
|
|
57
|
+
* @returns promise that resolves { success: true, username: user.username }
|
|
58
|
+
* or rejects with an error
|
|
59
|
+
*/
|
|
60
|
+
async function followEntity(entityId, user, entityType, context) {
|
|
61
|
+
const isFollowing = await isUserFollowing(entityId, user, entityType, context);
|
|
62
|
+
// don't update if user is already following
|
|
63
|
+
if (isFollowing) {
|
|
64
|
+
return Promise.reject("User is already following this entity.");
|
|
65
|
+
}
|
|
66
|
+
const groupId = await getEntityFollowersGroupId(entityId, entityType, context);
|
|
67
|
+
try {
|
|
68
|
+
await arcgis_rest_portal_1.joinGroup({
|
|
69
|
+
id: groupId,
|
|
70
|
+
authentication: context.hubRequestOptions.authentication,
|
|
71
|
+
});
|
|
72
|
+
// successfully joined the group
|
|
73
|
+
return { success: true, username: user.username };
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
throw new Error(`Error joining group: ${error}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.followEntity = followEntity;
|
|
80
|
+
/**
|
|
81
|
+
* Unfollow an entity
|
|
82
|
+
* @param entityId entity id
|
|
83
|
+
* @param user user who attempts to unfollow the entity
|
|
84
|
+
* @param entityType optional if entityOrId is a string
|
|
85
|
+
* @param context optional if entityOrId is a string
|
|
86
|
+
* @returns promise that resolves { success: true, username: user.username } or
|
|
87
|
+
* rejects with an error
|
|
88
|
+
*/
|
|
89
|
+
async function unfollowEntity(entityId, user, entityType, context) {
|
|
90
|
+
const isFollowing = await isUserFollowing(entityId, user, entityType, context);
|
|
91
|
+
// don't update if user is not following
|
|
92
|
+
if (!isFollowing) {
|
|
93
|
+
return Promise.reject("User is not following this entity.");
|
|
94
|
+
}
|
|
95
|
+
const groupId = await getEntityFollowersGroupId(entityId, entityType, context);
|
|
96
|
+
try {
|
|
97
|
+
await arcgis_rest_portal_1.leaveGroup({
|
|
98
|
+
id: groupId,
|
|
99
|
+
authentication: context.hubRequestOptions.authentication,
|
|
100
|
+
});
|
|
101
|
+
// successfully left the group
|
|
102
|
+
return { success: true, username: user.username };
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
throw new Error(`Error leaving group: ${error}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.unfollowEntity = unfollowEntity;
|
|
109
|
+
//# sourceMappingURL=follow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"follow.js","sourceRoot":"","sources":["../../../src/items/follow.ts"],"names":[],"mappings":"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"}
|
package/dist/node/items/index.js
CHANGED
|
@@ -27,6 +27,8 @@ tslib_1.__exportStar(require("./uploadImageResource"), exports);
|
|
|
27
27
|
tslib_1.__exportStar(require("./is-services-directory-disabled"), exports);
|
|
28
28
|
tslib_1.__exportStar(require("./getItemIdentifier"), exports);
|
|
29
29
|
tslib_1.__exportStar(require("./deleteItemThumbnail"), exports);
|
|
30
|
+
tslib_1.__exportStar(require("./deleteItemThumbnail"), exports);
|
|
31
|
+
tslib_1.__exportStar(require("./follow"), exports);
|
|
30
32
|
// No longer exported as the only App Hub needed this for was a Site
|
|
31
33
|
// and that registration is now done in the domain service with a
|
|
32
34
|
// signed HMAC request.
|