bruce-models 2.3.6 → 2.3.8
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/bruce-models.es5.js +8041 -8033
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +7805 -7797
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/account/account-invite.js +81 -81
- package/dist/lib/account/account-settings.js +2 -2
- package/dist/lib/account/account.js +169 -169
- package/dist/lib/account/account.js.map +1 -1
- package/dist/lib/ann-document/ann-document.js +94 -94
- package/dist/lib/api/abstract-api.js +269 -269
- package/dist/lib/api/api-getters.js +172 -172
- package/dist/lib/api/api.js +93 -93
- package/dist/lib/api/bruce-api.js +224 -220
- package/dist/lib/api/bruce-api.js.map +1 -1
- package/dist/lib/api/cam-api.js +88 -88
- package/dist/lib/api/global-api.js +82 -82
- package/dist/lib/api/guardian-api.js +82 -82
- package/dist/lib/api/idm-api.js +90 -90
- package/dist/lib/bruce-models.js +95 -91
- package/dist/lib/bruce-models.js.map +1 -1
- package/dist/lib/calculator/calculator.js +341 -341
- package/dist/lib/client-file/client-file.js +255 -255
- package/dist/lib/client-file/client-file.js.map +1 -1
- package/dist/lib/common/bounds.js +61 -61
- package/dist/lib/common/bruce-event.js +46 -46
- package/dist/lib/common/bruce-variable.js +60 -60
- package/dist/lib/common/cache.js +188 -188
- package/dist/lib/common/cache.js.map +1 -1
- package/dist/lib/common/camera.js +11 -11
- package/dist/lib/common/cartes.js +123 -123
- package/dist/lib/common/carto.js +60 -60
- package/dist/lib/common/color.js +86 -86
- package/dist/lib/common/delay-queue.js +56 -56
- package/dist/lib/common/dictionary.js +2 -2
- package/dist/lib/common/geometry.js +120 -120
- package/dist/lib/common/lru-cache.js +25 -25
- package/dist/lib/common/transform.js +2 -2
- package/dist/lib/common/utc.js +39 -39
- package/dist/lib/custom-form/custom-form-content.js +26 -26
- package/dist/lib/custom-form/custom-form.js +114 -114
- package/dist/lib/data-lab/data-lab.js +49 -49
- package/dist/lib/entity/entity-attachment-type.js +87 -87
- package/dist/lib/entity/entity-attachment-type.js.map +1 -1
- package/dist/lib/entity/entity-attachment.js +126 -126
- package/dist/lib/entity/entity-attachment.js.map +1 -1
- package/dist/lib/entity/entity-attribute.js +29 -29
- package/dist/lib/entity/entity-comment.js +86 -86
- package/dist/lib/entity/entity-comment.js.map +1 -1
- package/dist/lib/entity/entity-coords.js +153 -153
- package/dist/lib/entity/entity-coords.js.map +1 -1
- package/dist/lib/entity/entity-link.js +86 -86
- package/dist/lib/entity/entity-link.js.map +1 -1
- package/dist/lib/entity/entity-lod-category.js +108 -108
- package/dist/lib/entity/entity-lod.js +197 -197
- package/dist/lib/entity/entity-lod.js.map +1 -1
- package/dist/lib/entity/entity-relation-type.js +117 -117
- package/dist/lib/entity/entity-relation-type.js.map +1 -1
- package/dist/lib/entity/entity-relation.js +157 -157
- package/dist/lib/entity/entity-source.js +136 -136
- package/dist/lib/entity/entity-source.js.map +1 -1
- package/dist/lib/entity/entity-tag.js +157 -157
- package/dist/lib/entity/entity-type-visual-settings.js +13 -13
- package/dist/lib/entity/entity-type.js +122 -122
- package/dist/lib/entity/entity.js +341 -341
- package/dist/lib/entity/entity.js.map +1 -1
- package/dist/lib/entity/getters/batched-data-getter.js +84 -84
- package/dist/lib/entity/getters/batched-data-getter.js.map +1 -1
- package/dist/lib/entity/getters/entity-filter-getter.js +316 -316
- package/dist/lib/entity/getters/entity-filter-getter.js.map +1 -1
- package/dist/lib/entity/getters/entity-globe.js +175 -175
- package/dist/lib/entity/getters/view-monitor.js +2 -2
- package/dist/lib/import/import-cad.js +53 -53
- package/dist/lib/import/import-cad.js.map +1 -1
- package/dist/lib/import/import-csv.js +23 -23
- package/dist/lib/import/import-json.js +23 -23
- package/dist/lib/import/import-kml.js +23 -23
- package/dist/lib/import/imported-file.js +130 -130
- package/dist/lib/internal/uploader.js +76 -76
- package/dist/lib/internal/uploader.js.map +1 -1
- package/dist/lib/markup/markup.js +185 -185
- package/dist/lib/plugin/plugin.js +91 -91
- package/dist/lib/program-key/program-key.js +120 -120
- package/dist/lib/program-key/program-key.js.map +1 -1
- package/dist/lib/project/menu-item.js +122 -122
- package/dist/lib/project/project-view-bookmark.js +159 -159
- package/dist/lib/project/project-view-bookmark.js.map +1 -1
- package/dist/lib/project/project-view-legacy-tile.js +77 -77
- package/dist/lib/project/project-view-legacy-tile.js.map +1 -1
- package/dist/lib/project/project-view-tile.js +125 -125
- package/dist/lib/project/project-view.js +141 -141
- package/dist/lib/project/zoom-control.js +17 -17
- package/dist/lib/server/hosting-location.js +156 -156
- package/dist/lib/server/hosting-location.js.map +1 -1
- package/dist/lib/server/message-broker.js +142 -142
- package/dist/lib/server/message-broker.js.map +1 -1
- package/dist/lib/server/pending-action.js +83 -83
- package/dist/lib/server/task.js +63 -63
- package/dist/lib/style/style.js +129 -129
- package/dist/lib/style/style.js.map +1 -1
- package/dist/lib/tileset/tileset.js +431 -431
- package/dist/lib/tileset/tileset.js.map +1 -1
- package/dist/lib/user/permission.js +20 -20
- package/dist/lib/user/session.js +145 -142
- package/dist/lib/user/session.js.map +1 -1
- package/dist/lib/user/user-group.js +94 -94
- package/dist/lib/user/user.js +475 -474
- package/dist/lib/user/user.js.map +1 -1
- package/dist/lib/util/encrypt-utils.js +19 -19
- package/dist/lib/util/math-utils.js +40 -40
- package/dist/lib/util/object-utils.js +17 -17
- package/dist/lib/util/path-utils.js +61 -61
- package/dist/lib/util/url-utils.js +94 -94
- package/dist/lib/util/url-utils.js.map +1 -1
- package/dist/types/account/account-invite.d.ts +68 -68
- package/dist/types/account/account-settings.d.ts +24 -24
- package/dist/types/account/account.d.ts +84 -84
- package/dist/types/ann-document/ann-document.d.ts +50 -50
- package/dist/types/api/abstract-api.d.ts +36 -36
- package/dist/types/api/api-getters.d.ts +64 -64
- package/dist/types/api/api.d.ts +93 -93
- package/dist/types/api/bruce-api.d.ts +64 -63
- package/dist/types/api/cam-api.d.ts +26 -26
- package/dist/types/api/global-api.d.ts +25 -25
- package/dist/types/api/guardian-api.d.ts +25 -25
- package/dist/types/api/idm-api.d.ts +28 -28
- package/dist/types/bruce-models.d.ts +79 -79
- package/dist/types/calculator/calculator.d.ts +61 -61
- package/dist/types/client-file/client-file.d.ts +130 -130
- package/dist/types/common/bounds.d.ts +30 -30
- package/dist/types/common/bruce-event.d.ts +12 -12
- package/dist/types/common/bruce-variable.d.ts +21 -21
- package/dist/types/common/cache.d.ts +57 -57
- package/dist/types/common/camera.d.ts +6 -6
- package/dist/types/common/cartes.d.ts +51 -51
- package/dist/types/common/carto.d.ts +15 -15
- package/dist/types/common/color.d.ts +24 -24
- package/dist/types/common/delay-queue.d.ts +14 -14
- package/dist/types/common/dictionary.d.ts +3 -3
- package/dist/types/common/geometry.d.ts +44 -44
- package/dist/types/common/lru-cache.d.ts +7 -7
- package/dist/types/common/transform.d.ts +15 -15
- package/dist/types/common/utc.d.ts +29 -29
- package/dist/types/custom-form/custom-form-content.d.ts +60 -60
- package/dist/types/custom-form/custom-form.d.ts +49 -49
- package/dist/types/data-lab/data-lab.d.ts +28 -28
- package/dist/types/entity/entity-attachment-type.d.ts +39 -39
- package/dist/types/entity/entity-attachment.d.ts +61 -61
- package/dist/types/entity/entity-attribute.d.ts +39 -39
- package/dist/types/entity/entity-comment.d.ts +40 -40
- package/dist/types/entity/entity-coords.d.ts +66 -66
- package/dist/types/entity/entity-link.d.ts +36 -36
- package/dist/types/entity/entity-lod-category.d.ts +36 -36
- package/dist/types/entity/entity-lod.d.ts +99 -99
- package/dist/types/entity/entity-relation-type.d.ts +44 -44
- package/dist/types/entity/entity-relation.d.ts +59 -59
- package/dist/types/entity/entity-source.d.ts +45 -45
- package/dist/types/entity/entity-tag.d.ts +53 -53
- package/dist/types/entity/entity-type-visual-settings.d.ts +16 -16
- package/dist/types/entity/entity-type.d.ts +63 -63
- package/dist/types/entity/entity.d.ts +118 -118
- package/dist/types/entity/getters/batched-data-getter.d.ts +26 -26
- package/dist/types/entity/getters/entity-filter-getter.d.ts +61 -61
- package/dist/types/entity/getters/entity-globe.d.ts +21 -21
- package/dist/types/entity/getters/view-monitor.d.ts +13 -13
- package/dist/types/import/import-cad.d.ts +49 -49
- package/dist/types/import/import-csv.d.ts +31 -31
- package/dist/types/import/import-json.d.ts +26 -26
- package/dist/types/import/import-kml.d.ts +19 -19
- package/dist/types/import/imported-file.d.ts +47 -47
- package/dist/types/internal/uploader.d.ts +16 -16
- package/dist/types/markup/markup.d.ts +227 -227
- package/dist/types/plugin/plugin.d.ts +39 -39
- package/dist/types/program-key/program-key.d.ts +48 -48
- package/dist/types/project/menu-item.d.ts +169 -169
- package/dist/types/project/project-view-bookmark.d.ts +179 -179
- package/dist/types/project/project-view-legacy-tile.d.ts +48 -48
- package/dist/types/project/project-view-tile.d.ts +65 -65
- package/dist/types/project/project-view.d.ts +136 -136
- package/dist/types/project/zoom-control.d.ts +22 -22
- package/dist/types/server/hosting-location.d.ts +74 -74
- package/dist/types/server/message-broker.d.ts +86 -86
- package/dist/types/server/pending-action.d.ts +66 -66
- package/dist/types/server/task.d.ts +36 -36
- package/dist/types/style/style.d.ts +107 -107
- package/dist/types/tileset/tileset.d.ts +264 -264
- package/dist/types/user/permission.d.ts +15 -15
- package/dist/types/user/session.d.ts +72 -66
- package/dist/types/user/user-group.d.ts +58 -58
- package/dist/types/user/user.d.ts +189 -188
- package/dist/types/util/encrypt-utils.d.ts +3 -3
- package/dist/types/util/math-utils.d.ts +16 -16
- package/dist/types/util/object-utils.d.ts +7 -7
- package/dist/types/util/path-utils.d.ts +8 -8
- package/dist/types/util/url-utils.d.ts +26 -26
- package/package.json +79 -78
package/dist/lib/user/user.js
CHANGED
|
@@ -1,475 +1,476 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.User = void 0;
|
|
13
|
-
const api_1 = require("../api/api");
|
|
14
|
-
/**
|
|
15
|
-
* Describes the "User" concept within Bruce.
|
|
16
|
-
* A user is either a login-user or an access-token.
|
|
17
|
-
*
|
|
18
|
-
* You cannot login using an access-token, but both concepts are-
|
|
19
|
-
* treated the same way in terms of permissions and user groups.
|
|
20
|
-
*/
|
|
21
|
-
var User;
|
|
22
|
-
(function (User) {
|
|
23
|
-
function GetCacheKey(userId, accountId) {
|
|
24
|
-
if (!accountId) {
|
|
25
|
-
accountId = "";
|
|
26
|
-
}
|
|
27
|
-
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Id + userId + api_1.Api.ECacheKey.Id + accountId;
|
|
28
|
-
}
|
|
29
|
-
User.GetCacheKey = GetCacheKey;
|
|
30
|
-
function GetEmailCacheKey(email, accountId) {
|
|
31
|
-
if (!accountId) {
|
|
32
|
-
accountId = "";
|
|
33
|
-
}
|
|
34
|
-
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.UserEmail + email + api_1.Api.ECacheKey.Id + accountId;
|
|
35
|
-
}
|
|
36
|
-
User.GetEmailCacheKey = GetEmailCacheKey;
|
|
37
|
-
function GetSettingsCacheKey(userId, appId) {
|
|
38
|
-
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.UserSettings + userId + api_1.Api.ECacheKey.Id + appId;
|
|
39
|
-
}
|
|
40
|
-
User.GetSettingsCacheKey = GetSettingsCacheKey;
|
|
41
|
-
let EType;
|
|
42
|
-
(function (EType) {
|
|
43
|
-
EType["User"] = "LOGIN_USER";
|
|
44
|
-
EType["AccessToken"] = "ACCESS_TOKEN";
|
|
45
|
-
})(EType = User.EType || (User.EType = {}));
|
|
46
|
-
function Get(params) {
|
|
47
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
const { api, userId: id, accountId, req: reqParams } = params;
|
|
49
|
-
if (!id) {
|
|
50
|
-
throw ("ID is required.");
|
|
51
|
-
}
|
|
52
|
-
const cache = yield api.GetCacheItem(GetCacheKey(id, accountId), reqParams);
|
|
53
|
-
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
54
|
-
return cache.data;
|
|
55
|
-
}
|
|
56
|
-
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
try {
|
|
58
|
-
const data = yield api.GET(`user/${id}${accountId ? `?clientAccountID=${accountId}` : ""}`, reqParams);
|
|
59
|
-
res({
|
|
60
|
-
user: data
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
catch (e) {
|
|
64
|
-
rej(e);
|
|
65
|
-
}
|
|
66
|
-
}));
|
|
67
|
-
yield api.SetCacheItem({
|
|
68
|
-
key: GetCacheKey(id, accountId),
|
|
69
|
-
value: prom,
|
|
70
|
-
req: reqParams
|
|
71
|
-
});
|
|
72
|
-
return prom;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
User.Get = Get;
|
|
76
|
-
function Update(params) {
|
|
77
|
-
var _a;
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const { api, user: data, req: reqParams } = params;
|
|
80
|
-
if (!(data === null || data === void 0 ? void 0 : data.ID) || !(data === null || data === void 0 ? void 0 : data.Type)) {
|
|
81
|
-
throw ("ID and Type are required.");
|
|
82
|
-
}
|
|
83
|
-
// When getting a user it is structured slightly different to when we update it.
|
|
84
|
-
// We can make up the difference here.
|
|
85
|
-
if ((_a = data.AccessPermissions) === null || _a === void 0 ? void 0 : _a.length) {
|
|
86
|
-
for (let i = 0; i < data.AccessPermissions.length; i++) {
|
|
87
|
-
const perm = data.AccessPermissions[i];
|
|
88
|
-
if (!perm["UserGroup.ID"] && perm.UserGroups) {
|
|
89
|
-
perm["UserGroup.ID"] = [];
|
|
90
|
-
for (let j = 0; j < perm.UserGroups.length; j++) {
|
|
91
|
-
perm["UserGroup.ID"].push(perm.UserGroups[j].ID);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
const res = yield api.POST(`user/${data.ID}`, data, reqParams);
|
|
97
|
-
api.Cache.RemoveByContains(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Id + data.ID);
|
|
98
|
-
if (data.Type == EType.AccessToken) {
|
|
99
|
-
yield api.Cache.RemoveByStartsWith(api_1.Api.ECacheKey.AccessToken + api_1.Api.ECacheKey.Account);
|
|
100
|
-
}
|
|
101
|
-
else if (data.Type == EType.User) {
|
|
102
|
-
yield api.Cache.RemoveByStartsWith(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Account);
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
user: res
|
|
106
|
-
};
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
User.Update = Update;
|
|
110
|
-
/**
|
|
111
|
-
* Loads settings for a given user + app.
|
|
112
|
-
* The session's account id is used to separate settings between accounts.
|
|
113
|
-
* @param params
|
|
114
|
-
*/
|
|
115
|
-
function GetSettings(params) {
|
|
116
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
const { api, userId, appId, req } = params;
|
|
118
|
-
if (!userId || !appId) {
|
|
119
|
-
throw ("UserId and appId are required.");
|
|
120
|
-
}
|
|
121
|
-
const cache = yield api.GetCacheItem(GetSettingsCacheKey(userId, appId), req);
|
|
122
|
-
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
123
|
-
return cache.data;
|
|
124
|
-
}
|
|
125
|
-
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
126
|
-
try {
|
|
127
|
-
const data = yield api.GET(`user/${userId}/application/${appId}/settings`);
|
|
128
|
-
const settings = (data === null || data === void 0 ? void 0 : data.Settings) ? data.Settings : {};
|
|
129
|
-
res({
|
|
130
|
-
settings: settings
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
catch (e) {
|
|
134
|
-
// It will complain if an app id hasn't been used yet.
|
|
135
|
-
// We need to suppress that error.
|
|
136
|
-
if (e && typeof e == "object") {
|
|
137
|
-
if (e.ERROR && typeof e.ERROR == "object" && e.ERROR.Type == "NotFound") {
|
|
138
|
-
res({
|
|
139
|
-
settings: {}
|
|
140
|
-
});
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
rej(e);
|
|
145
|
-
}
|
|
146
|
-
}));
|
|
147
|
-
yield api.SetCacheItem({
|
|
148
|
-
key: GetSettingsCacheKey(userId, appId),
|
|
149
|
-
value: prom,
|
|
150
|
-
req: req
|
|
151
|
-
});
|
|
152
|
-
return prom;
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
User.GetSettings = GetSettings;
|
|
156
|
-
/**
|
|
157
|
-
* Updates settings for a given accId + user + app.
|
|
158
|
-
* The settings update will replace the existing record, please ensure to merge with existing settings.
|
|
159
|
-
*
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
api.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
*
|
|
287
|
-
* @
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
*
|
|
304
|
-
* @
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
*
|
|
319
|
-
* @
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
data
|
|
329
|
-
data.
|
|
330
|
-
data.
|
|
331
|
-
|
|
332
|
-
api.
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
*
|
|
345
|
-
* @
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
*
|
|
374
|
-
* @
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
const {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
api.
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
yield api.
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
})(
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.User = void 0;
|
|
13
|
+
const api_1 = require("../api/api");
|
|
14
|
+
/**
|
|
15
|
+
* Describes the "User" concept within Bruce.
|
|
16
|
+
* A user is either a login-user or an access-token.
|
|
17
|
+
*
|
|
18
|
+
* You cannot login using an access-token, but both concepts are-
|
|
19
|
+
* treated the same way in terms of permissions and user groups.
|
|
20
|
+
*/
|
|
21
|
+
var User;
|
|
22
|
+
(function (User) {
|
|
23
|
+
function GetCacheKey(userId, accountId) {
|
|
24
|
+
if (!accountId) {
|
|
25
|
+
accountId = "";
|
|
26
|
+
}
|
|
27
|
+
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Id + userId + api_1.Api.ECacheKey.Id + accountId;
|
|
28
|
+
}
|
|
29
|
+
User.GetCacheKey = GetCacheKey;
|
|
30
|
+
function GetEmailCacheKey(email, accountId) {
|
|
31
|
+
if (!accountId) {
|
|
32
|
+
accountId = "";
|
|
33
|
+
}
|
|
34
|
+
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.UserEmail + email + api_1.Api.ECacheKey.Id + accountId;
|
|
35
|
+
}
|
|
36
|
+
User.GetEmailCacheKey = GetEmailCacheKey;
|
|
37
|
+
function GetSettingsCacheKey(userId, appId) {
|
|
38
|
+
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.UserSettings + userId + api_1.Api.ECacheKey.Id + appId;
|
|
39
|
+
}
|
|
40
|
+
User.GetSettingsCacheKey = GetSettingsCacheKey;
|
|
41
|
+
let EType;
|
|
42
|
+
(function (EType) {
|
|
43
|
+
EType["User"] = "LOGIN_USER";
|
|
44
|
+
EType["AccessToken"] = "ACCESS_TOKEN";
|
|
45
|
+
})(EType = User.EType || (User.EType = {}));
|
|
46
|
+
function Get(params) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const { api, userId: id, accountId, req: reqParams } = params;
|
|
49
|
+
if (!id) {
|
|
50
|
+
throw ("ID is required.");
|
|
51
|
+
}
|
|
52
|
+
const cache = yield api.GetCacheItem(GetCacheKey(id, accountId), reqParams);
|
|
53
|
+
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
54
|
+
return cache.data;
|
|
55
|
+
}
|
|
56
|
+
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
try {
|
|
58
|
+
const data = yield api.GET(`user/${id}${accountId ? `?clientAccountID=${accountId}` : ""}`, reqParams);
|
|
59
|
+
res({
|
|
60
|
+
user: data
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
rej(e);
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
yield api.SetCacheItem({
|
|
68
|
+
key: GetCacheKey(id, accountId),
|
|
69
|
+
value: prom,
|
|
70
|
+
req: reqParams
|
|
71
|
+
});
|
|
72
|
+
return prom;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
User.Get = Get;
|
|
76
|
+
function Update(params) {
|
|
77
|
+
var _a;
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const { api, user: data, req: reqParams } = params;
|
|
80
|
+
if (!(data === null || data === void 0 ? void 0 : data.ID) || !(data === null || data === void 0 ? void 0 : data.Type)) {
|
|
81
|
+
throw ("ID and Type are required.");
|
|
82
|
+
}
|
|
83
|
+
// When getting a user it is structured slightly different to when we update it.
|
|
84
|
+
// We can make up the difference here.
|
|
85
|
+
if ((_a = data.AccessPermissions) === null || _a === void 0 ? void 0 : _a.length) {
|
|
86
|
+
for (let i = 0; i < data.AccessPermissions.length; i++) {
|
|
87
|
+
const perm = data.AccessPermissions[i];
|
|
88
|
+
if (!perm["UserGroup.ID"] && perm.UserGroups) {
|
|
89
|
+
perm["UserGroup.ID"] = [];
|
|
90
|
+
for (let j = 0; j < perm.UserGroups.length; j++) {
|
|
91
|
+
perm["UserGroup.ID"].push(perm.UserGroups[j].ID);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const res = yield api.POST(`user/${data.ID}`, data, reqParams);
|
|
97
|
+
api.Cache.RemoveByContains(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Id + data.ID);
|
|
98
|
+
if (data.Type == EType.AccessToken) {
|
|
99
|
+
yield api.Cache.RemoveByStartsWith(api_1.Api.ECacheKey.AccessToken + api_1.Api.ECacheKey.Account);
|
|
100
|
+
}
|
|
101
|
+
else if (data.Type == EType.User) {
|
|
102
|
+
yield api.Cache.RemoveByStartsWith(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Account);
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
user: res
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
User.Update = Update;
|
|
110
|
+
/**
|
|
111
|
+
* Loads settings for a given user + app.
|
|
112
|
+
* The session's account id is used to separate settings between accounts.
|
|
113
|
+
* @param params
|
|
114
|
+
*/
|
|
115
|
+
function GetSettings(params) {
|
|
116
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
const { api, userId, appId, req } = params;
|
|
118
|
+
if (!userId || !appId) {
|
|
119
|
+
throw ("UserId and appId are required.");
|
|
120
|
+
}
|
|
121
|
+
const cache = yield api.GetCacheItem(GetSettingsCacheKey(userId, appId), req);
|
|
122
|
+
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
123
|
+
return cache.data;
|
|
124
|
+
}
|
|
125
|
+
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
try {
|
|
127
|
+
const data = yield api.GET(`user/${userId}/application/${appId}/settings`);
|
|
128
|
+
const settings = (data === null || data === void 0 ? void 0 : data.Settings) ? data.Settings : {};
|
|
129
|
+
res({
|
|
130
|
+
settings: settings
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
// It will complain if an app id hasn't been used yet.
|
|
135
|
+
// We need to suppress that error.
|
|
136
|
+
if (e && typeof e == "object") {
|
|
137
|
+
if (e.ERROR && typeof e.ERROR == "object" && e.ERROR.Type == "NotFound") {
|
|
138
|
+
res({
|
|
139
|
+
settings: {}
|
|
140
|
+
});
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
rej(e);
|
|
145
|
+
}
|
|
146
|
+
}));
|
|
147
|
+
yield api.SetCacheItem({
|
|
148
|
+
key: GetSettingsCacheKey(userId, appId),
|
|
149
|
+
value: prom,
|
|
150
|
+
req: req
|
|
151
|
+
});
|
|
152
|
+
return prom;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
User.GetSettings = GetSettings;
|
|
156
|
+
/**
|
|
157
|
+
* Updates settings for a given accId + user + app.
|
|
158
|
+
* The settings update will replace the existing record, please ensure to merge with existing settings.
|
|
159
|
+
* AccountId is optional and will use a globally shared record if not provided.
|
|
160
|
+
* @param params
|
|
161
|
+
*/
|
|
162
|
+
function UpdateSettings(params) {
|
|
163
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
+
const { api, accId, userId, appId, settings, req } = params;
|
|
165
|
+
if (!userId || !appId) {
|
|
166
|
+
throw ("UserId and appId are required.");
|
|
167
|
+
}
|
|
168
|
+
const postBody = {
|
|
169
|
+
Settings: settings == null ? {} : settings,
|
|
170
|
+
Application: appId,
|
|
171
|
+
ClientAccountID: accId,
|
|
172
|
+
UserID: userId
|
|
173
|
+
};
|
|
174
|
+
const prom = api.POST(`user/${userId}/application/${appId}/settings`, postBody, req);
|
|
175
|
+
api.Cache.Remove(GetSettingsCacheKey(userId, appId));
|
|
176
|
+
return prom;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
User.UpdateSettings = UpdateSettings;
|
|
180
|
+
function GetUsernameAvailable(params) {
|
|
181
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
182
|
+
const { api, username, excludeUserId, req: reqParams } = params;
|
|
183
|
+
if (!username) {
|
|
184
|
+
throw ("Username is required.");
|
|
185
|
+
}
|
|
186
|
+
const req = api.GET(`user/loginavailable/${username}${excludeUserId ? "?excludeUserId=" + excludeUserId : ""}`, reqParams);
|
|
187
|
+
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
try {
|
|
189
|
+
const data = yield req;
|
|
190
|
+
res({
|
|
191
|
+
isAvailable: data.IsAvailable
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
rej(e);
|
|
196
|
+
}
|
|
197
|
+
}));
|
|
198
|
+
return prom;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
User.GetUsernameAvailable = GetUsernameAvailable;
|
|
202
|
+
let LoginUser;
|
|
203
|
+
(function (LoginUser) {
|
|
204
|
+
function GetListCacheKey(accountId) {
|
|
205
|
+
return api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Account + api_1.Api.ECacheKey.Id + accountId;
|
|
206
|
+
}
|
|
207
|
+
LoginUser.GetListCacheKey = GetListCacheKey;
|
|
208
|
+
function GetByEmail(params) {
|
|
209
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
210
|
+
const { api, email, accountId, req: reqParams } = params;
|
|
211
|
+
if (!email) {
|
|
212
|
+
throw ("Email is required.");
|
|
213
|
+
}
|
|
214
|
+
const cache = yield api.GetCacheItem(GetEmailCacheKey(email, accountId), reqParams);
|
|
215
|
+
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
216
|
+
return cache.data;
|
|
217
|
+
}
|
|
218
|
+
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
219
|
+
try {
|
|
220
|
+
const data = yield api.GET(`userByEmail/${email}${accountId ? `?clientAccountID=${accountId}` : ""}`, reqParams);
|
|
221
|
+
res({
|
|
222
|
+
user: data
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
catch (e) {
|
|
226
|
+
rej(e);
|
|
227
|
+
}
|
|
228
|
+
}));
|
|
229
|
+
yield api.SetCacheItem({
|
|
230
|
+
key: GetEmailCacheKey(email, accountId),
|
|
231
|
+
value: prom,
|
|
232
|
+
req: reqParams
|
|
233
|
+
});
|
|
234
|
+
return prom;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
LoginUser.GetByEmail = GetByEmail;
|
|
238
|
+
function GetList(params) {
|
|
239
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
240
|
+
let { api, accountId, exclusive, req: reqParams } = params;
|
|
241
|
+
if (!accountId) {
|
|
242
|
+
throw ("Client account ID is required.");
|
|
243
|
+
}
|
|
244
|
+
if (!exclusive) {
|
|
245
|
+
exclusive = false;
|
|
246
|
+
}
|
|
247
|
+
const cache = exclusive ? null : yield api.GetCacheItem(GetListCacheKey(accountId), reqParams);
|
|
248
|
+
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
249
|
+
return cache.data;
|
|
250
|
+
}
|
|
251
|
+
const req = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
252
|
+
try {
|
|
253
|
+
const data = yield api.GET(`users?clientAccountID=${accountId}${exclusive ? "&allExcludingClientAccount=true" : ""}`, reqParams);
|
|
254
|
+
res({
|
|
255
|
+
users: data.Items
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
catch (e) {
|
|
259
|
+
rej(e);
|
|
260
|
+
}
|
|
261
|
+
}));
|
|
262
|
+
req.then((data) => __awaiter(this, void 0, void 0, function* () {
|
|
263
|
+
const users = data.users;
|
|
264
|
+
for (let i = 0; i < users.length; i++) {
|
|
265
|
+
yield api.SetCacheItem({
|
|
266
|
+
key: GetCacheKey(users[i].ID, accountId),
|
|
267
|
+
value: {
|
|
268
|
+
user: users[i]
|
|
269
|
+
},
|
|
270
|
+
req: reqParams
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}));
|
|
274
|
+
if (!exclusive) {
|
|
275
|
+
yield api.SetCacheItem({
|
|
276
|
+
key: GetListCacheKey(accountId),
|
|
277
|
+
value: req,
|
|
278
|
+
req: reqParams
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
return req;
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
LoginUser.GetList = GetList;
|
|
285
|
+
/**
|
|
286
|
+
* Sends a signup email to the specified email address.
|
|
287
|
+
* @param params
|
|
288
|
+
* @returns
|
|
289
|
+
*/
|
|
290
|
+
function Signup(params) {
|
|
291
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
292
|
+
const { api, email, req: reqParams } = params;
|
|
293
|
+
if (!email) {
|
|
294
|
+
throw ("Email is required.");
|
|
295
|
+
}
|
|
296
|
+
return api.POST("clientaccount/signup", {
|
|
297
|
+
Email: email
|
|
298
|
+
}, reqParams);
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
LoginUser.Signup = Signup;
|
|
302
|
+
/**
|
|
303
|
+
* Sends a new signup email using a previous one's expired code.
|
|
304
|
+
* @param params
|
|
305
|
+
* @returns
|
|
306
|
+
*/
|
|
307
|
+
function SignupResend(params) {
|
|
308
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
const { api, expiredCode, req: reqParams } = params;
|
|
310
|
+
if (!expiredCode) {
|
|
311
|
+
throw ("Expired activation code is required.");
|
|
312
|
+
}
|
|
313
|
+
return api.POST(`clientaccount/signup/resend?activationKey=${api_1.Api.Encode(expiredCode)}`, null, reqParams);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
LoginUser.SignupResend = SignupResend;
|
|
317
|
+
/**
|
|
318
|
+
* Completes signup using user data and a signup code.
|
|
319
|
+
* @param params
|
|
320
|
+
* @returns
|
|
321
|
+
*/
|
|
322
|
+
function SignupComplete(params) {
|
|
323
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
324
|
+
let { api, code, user: data, accountId, req: reqParams } = params;
|
|
325
|
+
if (!code || !(data === null || data === void 0 ? void 0 : data.Login) || !(data === null || data === void 0 ? void 0 : data.Password)) {
|
|
326
|
+
throw ("Login, password, and activation code are required.");
|
|
327
|
+
}
|
|
328
|
+
data = JSON.parse(JSON.stringify(data));
|
|
329
|
+
data.IsActivated = true;
|
|
330
|
+
data.IsDisabled = false;
|
|
331
|
+
data.key = code;
|
|
332
|
+
const res = yield api.POST(`UserActivate/${accountId ? accountId : ""}`, data, reqParams);
|
|
333
|
+
api.Cache.RemoveByContains(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Id + res.ID);
|
|
334
|
+
if (data.Email) {
|
|
335
|
+
api.Cache.RemoveByContains(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.UserEmail + data.Email);
|
|
336
|
+
}
|
|
337
|
+
return {
|
|
338
|
+
user: res
|
|
339
|
+
};
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
LoginUser.SignupComplete = SignupComplete;
|
|
343
|
+
/**
|
|
344
|
+
* Sends a password reset email to the specified email address.
|
|
345
|
+
* @param params
|
|
346
|
+
* @returns user id associated with provided email.
|
|
347
|
+
*/
|
|
348
|
+
function ForgotPassword(params) {
|
|
349
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
350
|
+
const { api, accountId, email, req: reqParams } = params;
|
|
351
|
+
if (!accountId || !email) {
|
|
352
|
+
throw ("Account ID and email are required.");
|
|
353
|
+
}
|
|
354
|
+
const req = api.POST(`UserForgotPassword/${accountId}`, {
|
|
355
|
+
Email: email
|
|
356
|
+
}, reqParams);
|
|
357
|
+
const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
358
|
+
try {
|
|
359
|
+
const data = yield req;
|
|
360
|
+
res({
|
|
361
|
+
userId: data.ID
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
catch (e) {
|
|
365
|
+
rej(e);
|
|
366
|
+
}
|
|
367
|
+
}));
|
|
368
|
+
return prom;
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
LoginUser.ForgotPassword = ForgotPassword;
|
|
372
|
+
/**
|
|
373
|
+
* Completes password reset using a password reset code and new password.
|
|
374
|
+
* @param params
|
|
375
|
+
* @returns
|
|
376
|
+
*/
|
|
377
|
+
function ForgotPasswordComplete(params) {
|
|
378
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
379
|
+
const { api, code, userId, password, req: reqParams } = params;
|
|
380
|
+
const { user } = yield Get({
|
|
381
|
+
api: api,
|
|
382
|
+
userId: userId,
|
|
383
|
+
accountId: "",
|
|
384
|
+
req: reqParams
|
|
385
|
+
});
|
|
386
|
+
const res = yield api.POST("UserSetNameAndPassword", {
|
|
387
|
+
ID: userId,
|
|
388
|
+
Email: user.Email,
|
|
389
|
+
ActivationCode: code,
|
|
390
|
+
Password: password,
|
|
391
|
+
FullName: user.FullName
|
|
392
|
+
}, reqParams);
|
|
393
|
+
return {
|
|
394
|
+
user: res
|
|
395
|
+
};
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
LoginUser.ForgotPasswordComplete = ForgotPasswordComplete;
|
|
399
|
+
})(LoginUser = User.LoginUser || (User.LoginUser = {}));
|
|
400
|
+
let AccessToken;
|
|
401
|
+
(function (AccessToken) {
|
|
402
|
+
function GetListCacheKey(accountId) {
|
|
403
|
+
return api_1.Api.ECacheKey.AccessToken + api_1.Api.ECacheKey.Account + api_1.Api.ECacheKey.Id + accountId;
|
|
404
|
+
}
|
|
405
|
+
AccessToken.GetListCacheKey = GetListCacheKey;
|
|
406
|
+
function GetList(params) {
|
|
407
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
408
|
+
const { api, accountId, req: reqParams } = params;
|
|
409
|
+
const cache = yield api.GetCacheItem(GetListCacheKey(accountId), reqParams);
|
|
410
|
+
if (cache === null || cache === void 0 ? void 0 : cache.found) {
|
|
411
|
+
return cache.data;
|
|
412
|
+
}
|
|
413
|
+
const req = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
|
|
414
|
+
try {
|
|
415
|
+
const data = yield api.GET("usersByClientAccount/accessTokens", reqParams);
|
|
416
|
+
res({
|
|
417
|
+
users: data.Items
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
catch (e) {
|
|
421
|
+
rej(e);
|
|
422
|
+
}
|
|
423
|
+
}));
|
|
424
|
+
req.then((data) => __awaiter(this, void 0, void 0, function* () {
|
|
425
|
+
const users = data.tokens;
|
|
426
|
+
for (let i = 0; i < users.length; i++) {
|
|
427
|
+
yield api.SetCacheItem({
|
|
428
|
+
key: GetCacheKey(users[i].ID, accountId),
|
|
429
|
+
value: {
|
|
430
|
+
user: users[i]
|
|
431
|
+
},
|
|
432
|
+
req: reqParams
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
}));
|
|
436
|
+
yield api.SetCacheItem({
|
|
437
|
+
key: GetListCacheKey(accountId),
|
|
438
|
+
value: req,
|
|
439
|
+
req: reqParams
|
|
440
|
+
});
|
|
441
|
+
return req;
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
AccessToken.GetList = GetList;
|
|
445
|
+
function Delete(params) {
|
|
446
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
447
|
+
const { api, tokenId: id, req: reqParams } = params;
|
|
448
|
+
yield api.DELETE(`accessToken/${id}`, reqParams);
|
|
449
|
+
api.Cache.RemoveByContains(api_1.Api.ECacheKey.User + api_1.Api.ECacheKey.Id + id);
|
|
450
|
+
yield api.Cache.RemoveByStartsWith(api_1.Api.ECacheKey.AccessToken + api_1.Api.ECacheKey.Account);
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
AccessToken.Delete = Delete;
|
|
454
|
+
function Create(params) {
|
|
455
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
456
|
+
let { api, token: data, req: reqParams } = params;
|
|
457
|
+
if (!data) {
|
|
458
|
+
data = {};
|
|
459
|
+
}
|
|
460
|
+
if (data.Type == EType.User) {
|
|
461
|
+
throw ("User type is not allowed.");
|
|
462
|
+
}
|
|
463
|
+
if (!data.Type) {
|
|
464
|
+
data.Type = EType.AccessToken;
|
|
465
|
+
}
|
|
466
|
+
data = yield api.POST("accessToken", data, reqParams);
|
|
467
|
+
yield api.Cache.RemoveByStartsWith(api_1.Api.ECacheKey.AccessToken + api_1.Api.ECacheKey.Account);
|
|
468
|
+
return {
|
|
469
|
+
user: data
|
|
470
|
+
};
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
AccessToken.Create = Create;
|
|
474
|
+
})(AccessToken = User.AccessToken || (User.AccessToken = {}));
|
|
475
|
+
})(User = exports.User || (exports.User = {}));
|
|
475
476
|
//# sourceMappingURL=user.js.map
|