backend-manager 3.0.62 → 3.0.63
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/package.json
CHANGED
|
@@ -23,7 +23,7 @@ Module.prototype.main = function () {
|
|
|
23
23
|
// Get auth user from firebase
|
|
24
24
|
const ip = assistant.request.geolocation.ip;
|
|
25
25
|
const authUser = await Manager.libraries.admin.auth().getUser(user.auth.uid).catch(e => e);
|
|
26
|
-
const usage = await Manager.Usage().init(assistant, {log: true,
|
|
26
|
+
const usage = await Manager.Usage().init(assistant, {log: true, key: ip});
|
|
27
27
|
|
|
28
28
|
if (authUser instanceof Error) {
|
|
29
29
|
return reject(assistant.errorManager(`Failed to get auth user: ${authUser}`, {code: 500, sentry: false, send: false, log: false}).error)
|
|
@@ -31,6 +31,8 @@ Module.prototype.main = function () {
|
|
|
31
31
|
|
|
32
32
|
assistant.log(`Request: ${user.uid}`, user, context);
|
|
33
33
|
|
|
34
|
+
// TODO: ⛔️⛔️⛔️ UTILIZE THE NEW .usage() system (similar to src/manager/functions/core/actions/api/user/sign-up.js)
|
|
35
|
+
|
|
34
36
|
// if (context.additionalUserInfo.recaptchaScore < 0.5) {
|
|
35
37
|
// assistant.error(`Recaptcha score (${context.additionalUserInfo.recaptchaScore}) too low for ${user.uid}`);
|
|
36
38
|
|
|
@@ -41,7 +41,8 @@ Usage.prototype.init = function (assistant, options) {
|
|
|
41
41
|
options.refetch = typeof options.refetch === 'undefined' ? false : options.refetch;
|
|
42
42
|
options.clear = typeof options.clear === 'undefined' ? false : options.clear;
|
|
43
43
|
options.today = typeof options.today === 'undefined' ? undefined : options.today;
|
|
44
|
-
options.
|
|
44
|
+
options.key = typeof options.key === 'undefined' ? undefined : options.key;
|
|
45
|
+
options.unauthenticatedMode = typeof options.unauthenticatedMode === 'undefined' ? 'firestore' : options.unauthenticatedMode;
|
|
45
46
|
options.log = typeof options.log === 'undefined' ? false : options.log;
|
|
46
47
|
|
|
47
48
|
// Check for required options
|
|
@@ -59,11 +60,11 @@ Usage.prototype.init = function (assistant, options) {
|
|
|
59
60
|
self.storage = Manager.storage({name: 'usage', temporary: true, clear: options.clear, log: options.log});
|
|
60
61
|
|
|
61
62
|
// Set local key
|
|
62
|
-
|
|
63
|
+
self.key = (options.key || self.assistant.request.geolocation.ip || '')
|
|
63
64
|
.replace(/[\.:]/g, '_');
|
|
64
65
|
|
|
65
66
|
// Set paths
|
|
66
|
-
self.paths.user = `users.${
|
|
67
|
+
self.paths.user = `users.${self.key}`;
|
|
67
68
|
self.paths.app = `apps.${options.app}`;
|
|
68
69
|
|
|
69
70
|
// Get storage data
|
|
@@ -73,10 +74,26 @@ Usage.prototype.init = function (assistant, options) {
|
|
|
73
74
|
// Authenticate user (user will be resolved as well)
|
|
74
75
|
self.user = await assistant.authenticate();
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
self.useUnauthenticatedStorage = !self.user.auth.uid || self.options.key;
|
|
78
|
+
|
|
79
|
+
// Load usage with temporary if unauthenticated
|
|
80
|
+
if (self.useUnauthenticatedStorage) {
|
|
81
|
+
let foundUsage;
|
|
82
|
+
|
|
83
|
+
if (options.unauthenticatedMode === 'firestore') {
|
|
84
|
+
foundUsage = await Manager.libraries.admin.firestore().doc(`temporary/usage`)
|
|
85
|
+
.get()
|
|
86
|
+
.then((r) => {
|
|
87
|
+
return r.data()?.[`${self.key}`];
|
|
88
|
+
})
|
|
89
|
+
.catch((e) => {
|
|
90
|
+
assistant.errorManager(`Usage.init(): Error fetching usage data: ${e}`, {sentry: true, send: false, log: true});
|
|
91
|
+
});
|
|
92
|
+
} else {
|
|
93
|
+
foundUsage = self.storage.get(`${self.paths.user}.usage`, {}).value();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
self.user.usage = foundUsage ? foundUsage : self.user.usage;
|
|
80
97
|
}
|
|
81
98
|
|
|
82
99
|
// Log
|
|
@@ -209,7 +226,7 @@ Usage.prototype.set = function (path, value) {
|
|
|
209
226
|
const assistant = self.assistant;
|
|
210
227
|
|
|
211
228
|
// Update total and period
|
|
212
|
-
const resolved = `usage.${path}
|
|
229
|
+
const resolved = `usage.${path}.period`;
|
|
213
230
|
|
|
214
231
|
value = value || 0;
|
|
215
232
|
|
|
@@ -245,11 +262,29 @@ Usage.prototype.update = function () {
|
|
|
245
262
|
const Manager = self.Manager;
|
|
246
263
|
const assistant = self.assistant;
|
|
247
264
|
|
|
248
|
-
// Write self.user to firestore or local if no user or if
|
|
249
|
-
if (
|
|
250
|
-
self.
|
|
251
|
-
|
|
252
|
-
|
|
265
|
+
// Write self.user to firestore or local if no user or if key is set
|
|
266
|
+
if (self.useUnauthenticatedStorage) {
|
|
267
|
+
if (self.options.unauthenticatedMode === 'firestore') {
|
|
268
|
+
Manager.libraries.admin.firestore().doc(`temporary/usage`)
|
|
269
|
+
.set({
|
|
270
|
+
[`${self.key}`]: self.user.usage,
|
|
271
|
+
}, {merge: true})
|
|
272
|
+
.then(() => {
|
|
273
|
+
self.log(`Usage.update(): Updated user.usage in firestore`, self.user.usage);
|
|
274
|
+
|
|
275
|
+
return resolve();
|
|
276
|
+
})
|
|
277
|
+
.catch(e => {
|
|
278
|
+
return reject(assistant.errorManager(e, {sentry: true, send: false, log: false}));
|
|
279
|
+
});
|
|
280
|
+
} else {
|
|
281
|
+
self.storage.set(`${self.paths.user}.usage`, self.user.usage).write();
|
|
282
|
+
|
|
283
|
+
self.log(`Usage.update(): Updated user.usage in local storage`, self.user.usage);
|
|
284
|
+
|
|
285
|
+
return resolve();
|
|
286
|
+
}
|
|
287
|
+
} else {
|
|
253
288
|
Manager.libraries.admin.firestore().doc(`users/${self.user.auth.uid}`)
|
|
254
289
|
.set({
|
|
255
290
|
usage: self.user.usage,
|
|
@@ -262,12 +297,6 @@ Usage.prototype.update = function () {
|
|
|
262
297
|
.catch(e => {
|
|
263
298
|
return reject(assistant.errorManager(e, {sentry: true, send: false, log: false}));
|
|
264
299
|
});
|
|
265
|
-
} else {
|
|
266
|
-
self.storage.set(`${self.paths.user}.usage`, self.user.usage).write();
|
|
267
|
-
|
|
268
|
-
self.log(`Usage.update(): Updated user.usage in local storage`, self.user.usage);
|
|
269
|
-
|
|
270
|
-
return resolve();
|
|
271
300
|
}
|
|
272
301
|
});
|
|
273
302
|
};
|