@aneuhold/be-ts-db-lib 2.0.22 → 2.0.61
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/lib/services/MigrationService.js +6 -6
- package/lib/services/MigrationService.js.map +1 -1
- package/lib/services/MigrationService.ts +6 -6
- package/lib/validators/BaseValidator.js +11 -11
- package/lib/validators/BaseValidator.js.map +1 -1
- package/lib/validators/BaseValidator.ts +11 -11
- package/lib/validators/common/ApiKeyValidator.d.ts.map +1 -1
- package/lib/validators/common/ApiKeyValidator.js +5 -2
- package/lib/validators/common/ApiKeyValidator.js.map +1 -1
- package/lib/validators/common/ApiKeyValidator.ts +11 -2
- package/lib/validators/common/UserValidator.d.ts.map +1 -1
- package/lib/validators/common/UserValidator.js +3 -2
- package/lib/validators/common/UserValidator.js.map +1 -1
- package/lib/validators/common/UserValidator.ts +3 -2
- package/lib/validators/dashboard/NonogramKatanaItemValidator.js +2 -2
- package/lib/validators/dashboard/NonogramKatanaItemValidator.js.map +1 -1
- package/lib/validators/dashboard/NonogramKatanaItemValidator.ts +2 -2
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js +2 -2
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js.map +1 -1
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.ts +2 -2
- package/lib/validators/dashboard/TaskValidator.js +2 -2
- package/lib/validators/dashboard/TaskValidator.js.map +1 -1
- package/lib/validators/dashboard/TaskValidator.ts +2 -2
- package/lib/validators/dashboard/UserConfigValidator.d.ts.map +1 -1
- package/lib/validators/dashboard/UserConfigValidator.js +7 -2
- package/lib/validators/dashboard/UserConfigValidator.js.map +1 -1
- package/lib/validators/dashboard/UserConfigValidator.ts +15 -2
- package/package.json +14 -14
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// @ts-nocheck
|
|
3
|
-
import {
|
|
3
|
+
import { DR } from '@aneuhold/core-ts-lib';
|
|
4
4
|
import UserRepository from '../repositories/common/UserRepository.js';
|
|
5
5
|
/**
|
|
6
6
|
* A service for migrating the DB to a new state after an existing document
|
|
@@ -25,7 +25,7 @@ export default class MigrationService {
|
|
|
25
25
|
const updatedUsers = [];
|
|
26
26
|
allUsers.forEach((user) => {
|
|
27
27
|
if (user.password) {
|
|
28
|
-
|
|
28
|
+
DR.logger.error(`User with ID: ${user._id} has a password in the wrong spot.`);
|
|
29
29
|
user.auth.password = user.password;
|
|
30
30
|
delete user.password;
|
|
31
31
|
updatedUsers.push(user);
|
|
@@ -33,19 +33,19 @@ export default class MigrationService {
|
|
|
33
33
|
});
|
|
34
34
|
if (dryRun) {
|
|
35
35
|
if (updatedUsers.length > 0) {
|
|
36
|
-
|
|
36
|
+
DR.logger.info(`Would update ${updatedUsers.length} users.`);
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
|
-
|
|
39
|
+
DR.logger.success('No changes to make.');
|
|
40
40
|
}
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
if (updatedUsers.length > 0) {
|
|
44
|
-
|
|
44
|
+
DR.logger.info(`Updating ${updatedUsers.length} users.`);
|
|
45
45
|
await userRepo.updateMany(updatedUsers);
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
48
|
-
|
|
48
|
+
DR.logger.success('No changes to make.');
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationService.js","sourceRoot":"./src/","sources":["services/MigrationService.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MigrationService.js","sourceRoot":"./src/","sources":["services/MigrationService.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,cAAc,MAAM,0CAA0C,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK;QACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAQ,CAAC;QAClD,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,iBAAiB,IAAI,CAAC,GAAG,oCAAoC,CAC9D,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACnC,OAAO,IAAI,CAAC,QAAQ,CAAC;gBACrB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC;YACzD,MAAM,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// @ts-nocheck
|
|
3
|
-
import {
|
|
3
|
+
import { DR } from '@aneuhold/core-ts-lib';
|
|
4
4
|
import UserRepository from '../repositories/common/UserRepository.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -26,7 +26,7 @@ export default class MigrationService {
|
|
|
26
26
|
const updatedUsers = [];
|
|
27
27
|
allUsers.forEach((user) => {
|
|
28
28
|
if (user.password) {
|
|
29
|
-
|
|
29
|
+
DR.logger.error(
|
|
30
30
|
`User with ID: ${user._id} has a password in the wrong spot.`
|
|
31
31
|
);
|
|
32
32
|
user.auth.password = user.password;
|
|
@@ -36,17 +36,17 @@ export default class MigrationService {
|
|
|
36
36
|
});
|
|
37
37
|
if (dryRun) {
|
|
38
38
|
if (updatedUsers.length > 0) {
|
|
39
|
-
|
|
39
|
+
DR.logger.info(`Would update ${updatedUsers.length} users.`);
|
|
40
40
|
} else {
|
|
41
|
-
|
|
41
|
+
DR.logger.success('No changes to make.');
|
|
42
42
|
}
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
if (updatedUsers.length > 0) {
|
|
46
|
-
|
|
46
|
+
DR.logger.info(`Updating ${updatedUsers.length} users.`);
|
|
47
47
|
await userRepo.updateMany(updatedUsers);
|
|
48
48
|
} else {
|
|
49
|
-
|
|
49
|
+
DR.logger.success('No changes to make.');
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DR } from '@aneuhold/core-ts-lib';
|
|
2
2
|
export var ObjectSchemaState;
|
|
3
3
|
(function (ObjectSchemaState) {
|
|
4
4
|
ObjectSchemaState[ObjectSchemaState["Valid"] = 0] = "Valid";
|
|
@@ -40,44 +40,44 @@ export default class IValidator {
|
|
|
40
40
|
docsToValidate.forEach((doc) => {
|
|
41
41
|
const { updatedDoc, errors } = documentValidator(doc);
|
|
42
42
|
if (errors.length !== 0) {
|
|
43
|
-
|
|
43
|
+
DR.logger.error(`${docName} with ID: ${doc._id.toString()} is invalid. Errors:`);
|
|
44
44
|
numInvalidDocs += 1;
|
|
45
45
|
errors.forEach((error) => {
|
|
46
|
-
|
|
46
|
+
DR.logger.error(error);
|
|
47
47
|
});
|
|
48
48
|
docsToUpdate.push(updatedDoc);
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
if (dryRun) {
|
|
52
52
|
if (numInvalidDocs === 0) {
|
|
53
|
-
|
|
53
|
+
DR.logger.success(`No invalid ${docName}s found.`);
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
|
|
56
|
+
DR.logger.info(`Would update ${numInvalidDocs} ${docName}s in the database.`);
|
|
57
57
|
}
|
|
58
58
|
if (docIdsToDelete.length === 0) {
|
|
59
|
-
|
|
59
|
+
DR.logger.success(`No ${docName}s to delete found.`);
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
|
-
|
|
62
|
+
DR.logger.info(`Would delete ${docIdsToDelete.length} ${docName}s in the database.`);
|
|
63
63
|
}
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
66
|
// Delete all invalid
|
|
67
67
|
if (docIdsToDelete.length !== 0) {
|
|
68
|
-
|
|
68
|
+
DR.logger.info(`Deleting ${docIdsToDelete.length} ${docName}s from the database.`);
|
|
69
69
|
await deletionFunction(docIdsToDelete);
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
-
|
|
72
|
+
DR.logger.success(`No ${docName}s to delete found.`);
|
|
73
73
|
}
|
|
74
74
|
// Update all that need to be updated
|
|
75
75
|
if (docsToUpdate.length !== 0) {
|
|
76
|
-
|
|
76
|
+
DR.logger.info(`Updating ${docsToUpdate.length} ${docName}s in the database.`);
|
|
77
77
|
await updateFunction(docsToUpdate);
|
|
78
78
|
}
|
|
79
79
|
else {
|
|
80
|
-
|
|
80
|
+
DR.logger.success(`No ${docName}s to update found.`);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseValidator.js","sourceRoot":"./src/","sources":["validators/BaseValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"BaseValidator.js","sourceRoot":"./src/","sources":["validators/BaseValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseDocument, DocumentValidator } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import { ObjectId } from 'bson';
|
|
4
4
|
|
|
5
5
|
export enum ObjectSchemaState {
|
|
@@ -88,28 +88,28 @@ export default abstract class IValidator<TBaseType extends BaseDocument> {
|
|
|
88
88
|
docsToValidate.forEach((doc) => {
|
|
89
89
|
const { updatedDoc, errors } = documentValidator(doc);
|
|
90
90
|
if (errors.length !== 0) {
|
|
91
|
-
|
|
91
|
+
DR.logger.error(
|
|
92
92
|
`${docName} with ID: ${doc._id.toString()} is invalid. Errors:`
|
|
93
93
|
);
|
|
94
94
|
numInvalidDocs += 1;
|
|
95
95
|
errors.forEach((error) => {
|
|
96
|
-
|
|
96
|
+
DR.logger.error(error);
|
|
97
97
|
});
|
|
98
98
|
docsToUpdate.push(updatedDoc);
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
101
|
if (dryRun) {
|
|
102
102
|
if (numInvalidDocs === 0) {
|
|
103
|
-
|
|
103
|
+
DR.logger.success(`No invalid ${docName}s found.`);
|
|
104
104
|
} else {
|
|
105
|
-
|
|
105
|
+
DR.logger.info(
|
|
106
106
|
`Would update ${numInvalidDocs} ${docName}s in the database.`
|
|
107
107
|
);
|
|
108
108
|
}
|
|
109
109
|
if (docIdsToDelete.length === 0) {
|
|
110
|
-
|
|
110
|
+
DR.logger.success(`No ${docName}s to delete found.`);
|
|
111
111
|
} else {
|
|
112
|
-
|
|
112
|
+
DR.logger.info(
|
|
113
113
|
`Would delete ${docIdsToDelete.length} ${docName}s in the database.`
|
|
114
114
|
);
|
|
115
115
|
}
|
|
@@ -117,21 +117,21 @@ export default abstract class IValidator<TBaseType extends BaseDocument> {
|
|
|
117
117
|
}
|
|
118
118
|
// Delete all invalid
|
|
119
119
|
if (docIdsToDelete.length !== 0) {
|
|
120
|
-
|
|
120
|
+
DR.logger.info(
|
|
121
121
|
`Deleting ${docIdsToDelete.length} ${docName}s from the database.`
|
|
122
122
|
);
|
|
123
123
|
await deletionFunction(docIdsToDelete);
|
|
124
124
|
} else {
|
|
125
|
-
|
|
125
|
+
DR.logger.success(`No ${docName}s to delete found.`);
|
|
126
126
|
}
|
|
127
127
|
// Update all that need to be updated
|
|
128
128
|
if (docsToUpdate.length !== 0) {
|
|
129
|
-
|
|
129
|
+
DR.logger.info(
|
|
130
130
|
`Updating ${docsToUpdate.length} ${docName}s in the database.`
|
|
131
131
|
);
|
|
132
132
|
await updateFunction(docsToUpdate);
|
|
133
133
|
} else {
|
|
134
|
-
|
|
134
|
+
DR.logger.success(`No ${docName}s to update found.`);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKeyValidator.d.ts","sourceRoot":"./src/","sources":["validators/common/ApiKeyValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,0BAA0B,CAAC;AAKlE,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,MAAM,CAAC;IACvD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiKeyValidator.d.ts","sourceRoot":"./src/","sources":["validators/common/ApiKeyValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,0BAA0B,CAAC;AAKlE,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,MAAM,CAAC;IACvD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BnD,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validateApiKey } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import ApiKeyRepository from '../../repositories/common/ApiKeyRepository.js';
|
|
4
4
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
5
5
|
import IValidator from '../BaseValidator.js';
|
|
@@ -9,6 +9,7 @@ export default class ApiKeyValidator extends IValidator {
|
|
|
9
9
|
const userRepo = UserRepository.getRepo();
|
|
10
10
|
const userInDb = await userRepo.get({ _id: newApiKey.userId });
|
|
11
11
|
if (!userInDb) {
|
|
12
|
+
DR.logger.error(`User with ID: ${newApiKey.userId.toString()} does not exist in the database.`);
|
|
12
13
|
ErrorUtils.throwError(`User with ID: ${newApiKey.userId.toString()} does not exist in the database.`, newApiKey);
|
|
13
14
|
return;
|
|
14
15
|
}
|
|
@@ -16,12 +17,14 @@ export default class ApiKeyValidator extends IValidator {
|
|
|
16
17
|
const apiKeyRepo = ApiKeyRepository.getRepo();
|
|
17
18
|
const apiKeyInDb = await apiKeyRepo.get({ userId: newApiKey.userId });
|
|
18
19
|
if (apiKeyInDb) {
|
|
20
|
+
DR.logger.error(`User with ID: ${newApiKey.userId.toString()} already has an API key.`);
|
|
19
21
|
ErrorUtils.throwError(`User with ID: ${newApiKey.userId.toString()} already has an API key.`, newApiKey);
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
23
25
|
async validateUpdateObject(updatedApiKey) {
|
|
24
26
|
// Throw, because API keys should not be updated. Only created and deleted.
|
|
27
|
+
DR.logger.error(`API keys should not be updated at this time. Only created and deleted.`);
|
|
25
28
|
ErrorUtils.throwError(`API keys should not be updated at this time. Only created and deleted.`, updatedApiKey);
|
|
26
29
|
}
|
|
27
30
|
async validateRepositoryInDb(dryRun) {
|
|
@@ -34,7 +37,7 @@ export default class ApiKeyValidator extends IValidator {
|
|
|
34
37
|
allDocs: allApiKeys,
|
|
35
38
|
shouldDelete: (apiKey) => {
|
|
36
39
|
if (!allUserIds[apiKey.userId.toString()]) {
|
|
37
|
-
|
|
40
|
+
DR.logger.error(`API Key with ID: ${apiKey._id.toString()} has no valid associated user.`);
|
|
38
41
|
return true;
|
|
39
42
|
}
|
|
40
43
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKeyValidator.js","sourceRoot":"./src/","sources":["validators/common/ApiKeyValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ApiKeyValidator.js","sourceRoot":"./src/","sources":["validators/common/ApiKeyValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiKey, validateApiKey } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import { ObjectId } from 'bson';
|
|
4
4
|
import ApiKeyRepository from '../../repositories/common/ApiKeyRepository.js';
|
|
5
5
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
@@ -11,6 +11,9 @@ export default class ApiKeyValidator extends IValidator<ApiKey> {
|
|
|
11
11
|
const userRepo = UserRepository.getRepo();
|
|
12
12
|
const userInDb = await userRepo.get({ _id: newApiKey.userId });
|
|
13
13
|
if (!userInDb) {
|
|
14
|
+
DR.logger.error(
|
|
15
|
+
`User with ID: ${newApiKey.userId.toString()} does not exist in the database.`
|
|
16
|
+
);
|
|
14
17
|
ErrorUtils.throwError(
|
|
15
18
|
`User with ID: ${newApiKey.userId.toString()} does not exist in the database.`,
|
|
16
19
|
newApiKey
|
|
@@ -21,6 +24,9 @@ export default class ApiKeyValidator extends IValidator<ApiKey> {
|
|
|
21
24
|
const apiKeyRepo = ApiKeyRepository.getRepo();
|
|
22
25
|
const apiKeyInDb = await apiKeyRepo.get({ userId: newApiKey.userId });
|
|
23
26
|
if (apiKeyInDb) {
|
|
27
|
+
DR.logger.error(
|
|
28
|
+
`User with ID: ${newApiKey.userId.toString()} already has an API key.`
|
|
29
|
+
);
|
|
24
30
|
ErrorUtils.throwError(
|
|
25
31
|
`User with ID: ${newApiKey.userId.toString()} already has an API key.`,
|
|
26
32
|
newApiKey
|
|
@@ -31,6 +37,9 @@ export default class ApiKeyValidator extends IValidator<ApiKey> {
|
|
|
31
37
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
32
38
|
async validateUpdateObject(updatedApiKey: Partial<ApiKey>): Promise<void> {
|
|
33
39
|
// Throw, because API keys should not be updated. Only created and deleted.
|
|
40
|
+
DR.logger.error(
|
|
41
|
+
`API keys should not be updated at this time. Only created and deleted.`
|
|
42
|
+
);
|
|
34
43
|
ErrorUtils.throwError(
|
|
35
44
|
`API keys should not be updated at this time. Only created and deleted.`,
|
|
36
45
|
updatedApiKey
|
|
@@ -48,7 +57,7 @@ export default class ApiKeyValidator extends IValidator<ApiKey> {
|
|
|
48
57
|
allDocs: allApiKeys,
|
|
49
58
|
shouldDelete: (apiKey: ApiKey) => {
|
|
50
59
|
if (!allUserIds[apiKey.userId.toString()]) {
|
|
51
|
-
|
|
60
|
+
DR.logger.error(
|
|
52
61
|
`API Key with ID: ${apiKey._id.toString()} has no valid associated user.`
|
|
53
62
|
);
|
|
54
63
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserValidator.d.ts","sourceRoot":"./src/","sources":["validators/common/UserValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,0BAA0B,CAAC;AAK9D,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU,CAAC,IAAI,CAAC;IACnD,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;;;;OAKG;IACG,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BhE,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B5D;;;;;;OAMG;YACW,qBAAqB;
|
|
1
|
+
{"version":3,"file":"UserValidator.d.ts","sourceRoot":"./src/","sources":["validators/common/UserValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,0BAA0B,CAAC;AAK9D,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU,CAAC,IAAI,CAAC;IACnD,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;;;;OAKG;IACG,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BhE,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B5D;;;;;;OAMG;YACW,qBAAqB;CAYpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { User, validateUser } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
4
4
|
import { TEST_USER_NAME_PREFIX } from '../../tests/globalTestVariables.js';
|
|
5
5
|
import IValidator from '../BaseValidator.js';
|
|
@@ -45,7 +45,7 @@ export default class UserValidator extends IValidator {
|
|
|
45
45
|
allDocs: allUsers,
|
|
46
46
|
shouldDelete: (user) => {
|
|
47
47
|
if (user.userName.startsWith(TEST_USER_NAME_PREFIX)) {
|
|
48
|
-
|
|
48
|
+
DR.logger.error(`User with ID: ${user._id.toString()} is a test user and should be deleted`);
|
|
49
49
|
return true;
|
|
50
50
|
}
|
|
51
51
|
return false;
|
|
@@ -71,6 +71,7 @@ export default class UserValidator extends IValidator {
|
|
|
71
71
|
userName
|
|
72
72
|
});
|
|
73
73
|
if (userNameSearchResult) {
|
|
74
|
+
DR.logger.error('Username already exists');
|
|
74
75
|
ErrorUtils.throwError('Username already exists', { userName });
|
|
75
76
|
}
|
|
76
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserValidator.js","sourceRoot":"./src/","sources":["validators/common/UserValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"UserValidator.js","sourceRoot":"./src/","sources":["validators/common/UserValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { User, validateUser } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import { ObjectId } from 'bson';
|
|
4
4
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
5
5
|
import { TEST_USER_NAME_PREFIX } from '../../tests/globalTestVariables.js';
|
|
@@ -60,7 +60,7 @@ export default class UserValidator extends IValidator<User> {
|
|
|
60
60
|
allDocs: allUsers,
|
|
61
61
|
shouldDelete: (user: User) => {
|
|
62
62
|
if (user.userName.startsWith(TEST_USER_NAME_PREFIX)) {
|
|
63
|
-
|
|
63
|
+
DR.logger.error(
|
|
64
64
|
`User with ID: ${user._id.toString()} is a test user and should be deleted`
|
|
65
65
|
);
|
|
66
66
|
return true;
|
|
@@ -92,6 +92,7 @@ export default class UserValidator extends IValidator<User> {
|
|
|
92
92
|
userName
|
|
93
93
|
});
|
|
94
94
|
if (userNameSearchResult) {
|
|
95
|
+
DR.logger.error('Username already exists');
|
|
95
96
|
ErrorUtils.throwError('Username already exists', { userName });
|
|
96
97
|
}
|
|
97
98
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validateNonogramKatanaItem } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
4
4
|
import DashboardNonogramKatanaItemRepository from '../../repositories/dashboard/DashboardNonogramKatanaItemRepository.js';
|
|
5
5
|
import IValidator from '../BaseValidator.js';
|
|
@@ -37,7 +37,7 @@ export default class DashboardNonogramKatanaItemValidator extends IValidator {
|
|
|
37
37
|
allDocs: allItems,
|
|
38
38
|
shouldDelete: (item) => {
|
|
39
39
|
if (!allUserIds[item.userId.toString()]) {
|
|
40
|
-
|
|
40
|
+
DR.logger.error(`Nonogram Katana Item with ID: ${item._id.toString()} has no valid associated user.`);
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonogramKatanaItemValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/NonogramKatanaItemValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"NonogramKatanaItemValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/NonogramKatanaItemValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,cAAc,MAAM,6CAA6C,CAAC;AACzE,OAAO,qCAAqC,MAAM,uEAAuE,CAAC;AAC1H,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,UAA8B;IAC9F,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACjD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,qCAAqC,CAAC,OAAO,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU,CAAC,UAAU,CACnB,iDAAiD,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAC5E,OAAO,CACR,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,UAAU,CAAC,UAAU,CACnB,wBAAwB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EACnD,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,oBAAoB,CACxB,WAAwC;QAExC,4BAA4B;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACrB,UAAU,CAAC,UAAU,CACnB,+CAA+C,EAC/C,WAAW,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAe;QAC1C,MAAM,QAAQ,GAAG,qCAAqC,CAAC,OAAO,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC;QAEpE,MAAM,IAAI,CAAC,kCAAkC,CAAC;YAC5C,MAAM;YACN,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,CAAC,IAAwB,EAAE,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;oBACxC,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,iCAAiC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gCAAgC,CACrF,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBAChE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAChC,CAAC;YACD,gBAAgB,EAAE,KAAK,EAAE,cAA0B,EAAE,EAAE;gBACrD,MAAM,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,YAAkC,EAAE,EAAE;gBAC3D,MAAM,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
NonogramKatanaItem,
|
|
3
3
|
validateNonogramKatanaItem
|
|
4
4
|
} from '@aneuhold/core-ts-db-lib';
|
|
5
|
-
import {
|
|
5
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
6
6
|
import { ObjectId } from 'bson';
|
|
7
7
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
8
8
|
import DashboardNonogramKatanaItemRepository from '../../repositories/dashboard/DashboardNonogramKatanaItemRepository.js';
|
|
@@ -56,7 +56,7 @@ export default class DashboardNonogramKatanaItemValidator extends IValidator<Non
|
|
|
56
56
|
allDocs: allItems,
|
|
57
57
|
shouldDelete: (item: NonogramKatanaItem) => {
|
|
58
58
|
if (!allUserIds[item.userId.toString()]) {
|
|
59
|
-
|
|
59
|
+
DR.logger.error(
|
|
60
60
|
`Nonogram Katana Item with ID: ${item._id.toString()} has no valid associated user.`
|
|
61
61
|
);
|
|
62
62
|
return true;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validateNonogramKatanaUpgrade } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
4
4
|
import DashboardNonogramKatanaUpgradeRepository from '../../repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js';
|
|
5
5
|
import IValidator from '../BaseValidator.js';
|
|
@@ -37,7 +37,7 @@ export default class DashboardNonogramKatanaUpgradeValidator extends IValidator
|
|
|
37
37
|
allDocs: allUpgrades,
|
|
38
38
|
shouldDelete: (upgrade) => {
|
|
39
39
|
if (!allUserIds[upgrade.userId.toString()]) {
|
|
40
|
-
|
|
40
|
+
DR.logger.error(`Nonogram Katana Upgrade with ID: ${upgrade._id.toString()} has no valid associated user.`);
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonogramKatanaUpgradeValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/NonogramKatanaUpgradeValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"NonogramKatanaUpgradeValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/NonogramKatanaUpgradeValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,cAAc,MAAM,6CAA6C,CAAC;AACzE,OAAO,wCAAwC,MAAM,0EAA0E,CAAC;AAChI,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,uCAAwC,SAAQ,UAAiC;IACpG,KAAK,CAAC,iBAAiB,CAAC,UAAiC;QACvD,gDAAgD;QAChD,MAAM,WAAW,GAAG,wCAAwC,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC;YACzC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC,CAAC;QACH,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU,CAAC,UAAU,CACnB,oDAAoD,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAClF,UAAU,CACX,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,UAAU,CAAC,UAAU,CACnB,wBAAwB,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EACtD,UAAU,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,oBAAoB,CACxB,cAA8C;QAE9C,4BAA4B;QAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YACxB,UAAU,CAAC,UAAU,CACnB,kDAAkD,EAClD,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAe;QAC1C,MAAM,WAAW,GAAG,wCAAwC,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC;QAEpE,MAAM,IAAI,CAAC,kCAAkC,CAAC;YAC5C,MAAM;YACN,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,CAAC,OAA8B,EAAE,EAAE;gBAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;oBAC3C,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,oCAAoC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,gCAAgC,CAC3F,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACtE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAChC,CAAC;YACD,gBAAgB,EAAE,KAAK,EAAE,cAA0B,EAAE,EAAE;gBACrD,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC/C,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,YAAqC,EAAE,EAAE;gBAC9D,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
NonogramKatanaUpgrade,
|
|
3
3
|
validateNonogramKatanaUpgrade
|
|
4
4
|
} from '@aneuhold/core-ts-db-lib';
|
|
5
|
-
import {
|
|
5
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
6
6
|
import { ObjectId } from 'bson';
|
|
7
7
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
8
8
|
import DashboardNonogramKatanaUpgradeRepository from '../../repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js';
|
|
@@ -56,7 +56,7 @@ export default class DashboardNonogramKatanaUpgradeValidator extends IValidator<
|
|
|
56
56
|
allDocs: allUpgrades,
|
|
57
57
|
shouldDelete: (upgrade: NonogramKatanaUpgrade) => {
|
|
58
58
|
if (!allUserIds[upgrade.userId.toString()]) {
|
|
59
|
-
|
|
59
|
+
DR.logger.error(
|
|
60
60
|
`Nonogram Katana Upgrade with ID: ${upgrade._id.toString()} has no valid associated user.`
|
|
61
61
|
);
|
|
62
62
|
return true;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validateDashboardTask } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
4
4
|
import DashboardTaskRepository from '../../repositories/dashboard/DashboardTaskRepository.js';
|
|
5
5
|
import IValidator from '../BaseValidator.js';
|
|
@@ -47,7 +47,7 @@ export default class DashboardTaskValidator extends IValidator {
|
|
|
47
47
|
allDocs: allTasks,
|
|
48
48
|
shouldDelete: (task) => {
|
|
49
49
|
if (!allUserIds[task.userId.toString()]) {
|
|
50
|
-
|
|
50
|
+
DR.logger.error(`Dashboard Task with ID: ${task._id.toString()} has no valid associated owner (user).`);
|
|
51
51
|
return true;
|
|
52
52
|
}
|
|
53
53
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/TaskValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TaskValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/TaskValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DashboardTask, validateDashboardTask } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import { ObjectId } from 'bson';
|
|
4
4
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
5
5
|
import DashboardTaskRepository from '../../repositories/dashboard/DashboardTaskRepository.js';
|
|
@@ -60,7 +60,7 @@ export default class DashboardTaskValidator extends IValidator<DashboardTask> {
|
|
|
60
60
|
allDocs: allTasks,
|
|
61
61
|
shouldDelete: (task: DashboardTask) => {
|
|
62
62
|
if (!allUserIds[task.userId.toString()]) {
|
|
63
|
-
|
|
63
|
+
DR.logger.error(
|
|
64
64
|
`Dashboard Task with ID: ${task._id.toString()} has no valid associated owner (user).`
|
|
65
65
|
);
|
|
66
66
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserConfigValidator.d.ts","sourceRoot":"./src/","sources":["validators/dashboard/UserConfigValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IACjF,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"UserConfigValidator.d.ts","sourceRoot":"./src/","sources":["validators/dashboard/UserConfigValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IACjF,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCpE,oBAAoB,CACxB,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC;IA6BV,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA0C7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validateDashboardUserConfig } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
3
3
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
4
4
|
import DashboardUserConfigRepository from '../../repositories/dashboard/DashboardUserConfigRepository.js';
|
|
5
5
|
import IValidator from '../BaseValidator.js';
|
|
@@ -11,16 +11,19 @@ export default class DashboardUserConfigValidator extends IValidator {
|
|
|
11
11
|
userId: newUserConfig.userId
|
|
12
12
|
});
|
|
13
13
|
if (existingConfig) {
|
|
14
|
+
DR.logger.error(`Config already exists for user: ${newUserConfig.userId.toString()}`);
|
|
14
15
|
ErrorUtils.throwError(`Config already exists for user: ${newUserConfig.userId.toString()}`, newUserConfig);
|
|
15
16
|
}
|
|
16
17
|
const userRepo = UserRepository.getRepo();
|
|
17
18
|
const user = await userRepo.get({ _id: newUserConfig.userId });
|
|
18
19
|
if (!user) {
|
|
20
|
+
DR.logger.error(`User does not exist: ${newUserConfig.userId.toString()}`);
|
|
19
21
|
ErrorUtils.throwError(`User does not exist: ${newUserConfig.userId.toString()}`, newUserConfig);
|
|
20
22
|
}
|
|
21
23
|
if (newUserConfig.collaborators.length > 0) {
|
|
22
24
|
const collaborators = await userRepo.getList(newUserConfig.collaborators);
|
|
23
25
|
if (collaborators.length !== newUserConfig.collaborators.length) {
|
|
26
|
+
DR.logger.error(`Some collaborators not found. Expected ${newUserConfig.collaborators.length}, found ${collaborators.length}`);
|
|
24
27
|
ErrorUtils.throwError(`Some collaborators not found. Expected ${newUserConfig.collaborators.length}, found ${collaborators.length}`, newUserConfig);
|
|
25
28
|
}
|
|
26
29
|
}
|
|
@@ -28,6 +31,7 @@ export default class DashboardUserConfigValidator extends IValidator {
|
|
|
28
31
|
async validateUpdateObject(updatedUserConfig) {
|
|
29
32
|
// Check if an id is defined
|
|
30
33
|
if (!updatedUserConfig._id) {
|
|
34
|
+
DR.logger.error(`No _id defined for DashboardUserConfig update.`);
|
|
31
35
|
ErrorUtils.throwError(`No _id defined for DashboardUserConfig update.`, updatedUserConfig);
|
|
32
36
|
}
|
|
33
37
|
if (updatedUserConfig.collaborators &&
|
|
@@ -35,6 +39,7 @@ export default class DashboardUserConfigValidator extends IValidator {
|
|
|
35
39
|
const userRepo = UserRepository.getRepo();
|
|
36
40
|
const collaborators = await userRepo.getList(updatedUserConfig.collaborators);
|
|
37
41
|
if (collaborators.length !== updatedUserConfig.collaborators.length) {
|
|
42
|
+
DR.logger.error(`Some collaborators not found. Expected ${updatedUserConfig.collaborators.length}, found ${collaborators.length}`);
|
|
38
43
|
ErrorUtils.throwError(`Some collaborators not found. Expected ${updatedUserConfig.collaborators.length}, found ${collaborators.length}`, updatedUserConfig);
|
|
39
44
|
}
|
|
40
45
|
}
|
|
@@ -49,7 +54,7 @@ export default class DashboardUserConfigValidator extends IValidator {
|
|
|
49
54
|
allDocs: allUserConfigs,
|
|
50
55
|
shouldDelete: (userConfig) => {
|
|
51
56
|
if (!allUserIds[userConfig.userId.toString()]) {
|
|
52
|
-
|
|
57
|
+
DR.logger.error(`Dashboard User Config with ID: ${userConfig._id.toString()} has no valid associated user.`);
|
|
53
58
|
return true;
|
|
54
59
|
}
|
|
55
60
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserConfigValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/UserConfigValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"UserConfigValidator.js","sourceRoot":"./src/","sources":["validators/dashboard/UserConfigValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DashboardUserConfig,
|
|
3
3
|
validateDashboardUserConfig
|
|
4
4
|
} from '@aneuhold/core-ts-db-lib';
|
|
5
|
-
import {
|
|
5
|
+
import { DR, ErrorUtils } from '@aneuhold/core-ts-lib';
|
|
6
6
|
import { ObjectId } from 'bson';
|
|
7
7
|
import UserRepository from '../../repositories/common/UserRepository.js';
|
|
8
8
|
import DashboardUserConfigRepository from '../../repositories/dashboard/DashboardUserConfigRepository.js';
|
|
@@ -16,6 +16,9 @@ export default class DashboardUserConfigValidator extends IValidator<DashboardUs
|
|
|
16
16
|
userId: newUserConfig.userId
|
|
17
17
|
});
|
|
18
18
|
if (existingConfig) {
|
|
19
|
+
DR.logger.error(
|
|
20
|
+
`Config already exists for user: ${newUserConfig.userId.toString()}`
|
|
21
|
+
);
|
|
19
22
|
ErrorUtils.throwError(
|
|
20
23
|
`Config already exists for user: ${newUserConfig.userId.toString()}`,
|
|
21
24
|
newUserConfig
|
|
@@ -24,6 +27,9 @@ export default class DashboardUserConfigValidator extends IValidator<DashboardUs
|
|
|
24
27
|
const userRepo = UserRepository.getRepo();
|
|
25
28
|
const user = await userRepo.get({ _id: newUserConfig.userId });
|
|
26
29
|
if (!user) {
|
|
30
|
+
DR.logger.error(
|
|
31
|
+
`User does not exist: ${newUserConfig.userId.toString()}`
|
|
32
|
+
);
|
|
27
33
|
ErrorUtils.throwError(
|
|
28
34
|
`User does not exist: ${newUserConfig.userId.toString()}`,
|
|
29
35
|
newUserConfig
|
|
@@ -32,6 +38,9 @@ export default class DashboardUserConfigValidator extends IValidator<DashboardUs
|
|
|
32
38
|
if (newUserConfig.collaborators.length > 0) {
|
|
33
39
|
const collaborators = await userRepo.getList(newUserConfig.collaborators);
|
|
34
40
|
if (collaborators.length !== newUserConfig.collaborators.length) {
|
|
41
|
+
DR.logger.error(
|
|
42
|
+
`Some collaborators not found. Expected ${newUserConfig.collaborators.length}, found ${collaborators.length}`
|
|
43
|
+
);
|
|
35
44
|
ErrorUtils.throwError(
|
|
36
45
|
`Some collaborators not found. Expected ${newUserConfig.collaborators.length}, found ${collaborators.length}`,
|
|
37
46
|
newUserConfig
|
|
@@ -45,6 +54,7 @@ export default class DashboardUserConfigValidator extends IValidator<DashboardUs
|
|
|
45
54
|
): Promise<void> {
|
|
46
55
|
// Check if an id is defined
|
|
47
56
|
if (!updatedUserConfig._id) {
|
|
57
|
+
DR.logger.error(`No _id defined for DashboardUserConfig update.`);
|
|
48
58
|
ErrorUtils.throwError(
|
|
49
59
|
`No _id defined for DashboardUserConfig update.`,
|
|
50
60
|
updatedUserConfig
|
|
@@ -59,6 +69,9 @@ export default class DashboardUserConfigValidator extends IValidator<DashboardUs
|
|
|
59
69
|
updatedUserConfig.collaborators
|
|
60
70
|
);
|
|
61
71
|
if (collaborators.length !== updatedUserConfig.collaborators.length) {
|
|
72
|
+
DR.logger.error(
|
|
73
|
+
`Some collaborators not found. Expected ${updatedUserConfig.collaborators.length}, found ${collaborators.length}`
|
|
74
|
+
);
|
|
62
75
|
ErrorUtils.throwError(
|
|
63
76
|
`Some collaborators not found. Expected ${updatedUserConfig.collaborators.length}, found ${collaborators.length}`,
|
|
64
77
|
updatedUserConfig
|
|
@@ -78,7 +91,7 @@ export default class DashboardUserConfigValidator extends IValidator<DashboardUs
|
|
|
78
91
|
allDocs: allUserConfigs,
|
|
79
92
|
shouldDelete: (userConfig: DashboardUserConfig) => {
|
|
80
93
|
if (!allUserIds[userConfig.userId.toString()]) {
|
|
81
|
-
|
|
94
|
+
DR.logger.error(
|
|
82
95
|
`Dashboard User Config with ID: ${userConfig._id.toString()} has no valid associated user.`
|
|
83
96
|
);
|
|
84
97
|
return true;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@aneuhold/be-ts-db-lib",
|
|
3
3
|
"author": "Anton G. Neuhold Jr.",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.61",
|
|
6
6
|
"description": "A backend database library meant to actually interact with various databases in personal projects",
|
|
7
7
|
"packageManager": "yarn@4.6.0",
|
|
8
8
|
"type": "module",
|
|
@@ -47,23 +47,23 @@
|
|
|
47
47
|
"MongoDB"
|
|
48
48
|
],
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@aneuhold/be-ts-lib": "^2.0.
|
|
51
|
-
"@aneuhold/core-ts-db-lib": "^2.0.
|
|
52
|
-
"@aneuhold/core-ts-lib": "^2.
|
|
50
|
+
"@aneuhold/be-ts-lib": "^2.0.64",
|
|
51
|
+
"@aneuhold/core-ts-db-lib": "^2.0.66",
|
|
52
|
+
"@aneuhold/core-ts-lib": "^2.1.1",
|
|
53
53
|
"bson": "^6.2.0",
|
|
54
|
-
"mongodb": "^6.
|
|
54
|
+
"mongodb": "^6.8.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@aneuhold/eslint-config": "^1.0.
|
|
58
|
-
"@aneuhold/main-scripts": "^2.0
|
|
59
|
-
"@types/node": "^22.
|
|
57
|
+
"@aneuhold/eslint-config": "^1.0.89",
|
|
58
|
+
"@aneuhold/main-scripts": "^2.1.0",
|
|
59
|
+
"@types/node": "^22.15.3",
|
|
60
60
|
"@types/node-fetch": "^2.6.12",
|
|
61
|
-
"eslint": "^9.
|
|
62
|
-
"jsr": "^0.13.
|
|
63
|
-
"prettier": "^3.
|
|
61
|
+
"eslint": "^9.26.0",
|
|
62
|
+
"jsr": "^0.13.4",
|
|
63
|
+
"prettier": "^3.5.3",
|
|
64
64
|
"rimraf": "^6.0.1",
|
|
65
|
-
"tsx": "^4.19.
|
|
66
|
-
"typescript": "^5.
|
|
67
|
-
"vitest": "^3.
|
|
65
|
+
"tsx": "^4.19.4",
|
|
66
|
+
"typescript": "^5.8.3",
|
|
67
|
+
"vitest": "^3.1.2"
|
|
68
68
|
}
|
|
69
69
|
}
|