@aneuhold/be-ts-db-lib 4.2.29 → 4.2.31
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/CHANGELOG.md +15 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.ts +1 -1
- package/lib/repositories/BaseRepository.d.ts +2 -12
- package/lib/repositories/BaseRepository.d.ts.map +1 -1
- package/lib/repositories/BaseRepository.js +8 -8
- package/lib/repositories/BaseRepository.js.map +1 -1
- package/lib/repositories/BaseRepository.ts +9 -9
- package/lib/repositories/common/UserRepository.d.ts +1 -2
- package/lib/repositories/common/UserRepository.d.ts.map +1 -1
- package/lib/repositories/common/UserRepository.js +6 -6
- package/lib/repositories/common/UserRepository.js.map +1 -1
- package/lib/repositories/common/UserRepository.ts +6 -6
- package/lib/repositories/dashboard/DashboardBaseRepository.d.ts +1 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.js +2 -2
- package/lib/repositories/dashboard/DashboardBaseRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.ts +2 -2
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts +2 -2
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js +4 -4
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts +5 -5
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts +2 -2
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js +4 -4
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts +5 -5
- package/lib/repositories/dashboard/DashboardTaskRepository.d.ts +2 -10
- package/lib/repositories/dashboard/DashboardTaskRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardTaskRepository.js +7 -7
- package/lib/repositories/dashboard/DashboardTaskRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardTaskRepository.ts +8 -8
- package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts +2 -15
- package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardUserConfigRepository.js +9 -9
- package/lib/repositories/dashboard/DashboardUserConfigRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardUserConfigRepository.ts +10 -10
- package/lib/repositories/workout/WorkoutBaseRepository.d.ts +1 -1
- package/lib/repositories/workout/WorkoutBaseRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutBaseRepository.js +2 -2
- package/lib/repositories/workout/WorkoutBaseRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutBaseRepository.ts +2 -2
- package/lib/repositories/workout/WorkoutEquipmentTypeRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutEquipmentTypeRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutEquipmentTypeRepository.js +4 -4
- package/lib/repositories/workout/WorkoutEquipmentTypeRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutEquipmentTypeRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.js +4 -4
- package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutExerciseRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutExerciseRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutExerciseRepository.js +4 -4
- package/lib/repositories/workout/WorkoutExerciseRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutExerciseRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutMesocycleRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutMesocycleRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutMesocycleRepository.js +4 -4
- package/lib/repositories/workout/WorkoutMesocycleRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutMesocycleRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutMicrocycleRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutMicrocycleRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutMicrocycleRepository.js +4 -4
- package/lib/repositories/workout/WorkoutMicrocycleRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutMicrocycleRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutMuscleGroupRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutMuscleGroupRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutMuscleGroupRepository.js +4 -4
- package/lib/repositories/workout/WorkoutMuscleGroupRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutMuscleGroupRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutSessionExerciseRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutSessionExerciseRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutSessionExerciseRepository.js +4 -4
- package/lib/repositories/workout/WorkoutSessionExerciseRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutSessionExerciseRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutSessionRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutSessionRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutSessionRepository.js +4 -4
- package/lib/repositories/workout/WorkoutSessionRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutSessionRepository.ts +5 -5
- package/lib/repositories/workout/WorkoutSetRepository.d.ts +2 -2
- package/lib/repositories/workout/WorkoutSetRepository.d.ts.map +1 -1
- package/lib/repositories/workout/WorkoutSetRepository.js +4 -4
- package/lib/repositories/workout/WorkoutSetRepository.js.map +1 -1
- package/lib/repositories/workout/WorkoutSetRepository.ts +5 -5
- package/lib/services/DemoAccountsService/DashboardDemoAccounts.service.d.ts +21 -0
- package/lib/services/DemoAccountsService/DashboardDemoAccounts.service.d.ts.map +1 -0
- package/lib/services/DemoAccountsService/{DashboardDemoAccountsService.js → DashboardDemoAccounts.service.js} +28 -28
- package/lib/services/DemoAccountsService/DashboardDemoAccounts.service.js.map +1 -0
- package/lib/services/DemoAccountsService/{DashboardDemoAccountsService.ts → DashboardDemoAccounts.service.ts} +27 -27
- package/lib/services/DemoAccountsService/{DemoAccountsService.d.ts → DemoAccounts.service.d.ts} +1 -1
- package/lib/services/DemoAccountsService/DemoAccounts.service.d.ts.map +1 -0
- package/lib/services/DemoAccountsService/{DemoAccountsService.js → DemoAccounts.service.js} +2 -2
- package/lib/services/DemoAccountsService/DemoAccounts.service.js.map +1 -0
- package/lib/services/DemoAccountsService/{DemoAccountsService.ts → DemoAccounts.service.ts} +1 -1
- package/lib/services/DemoAccountsService/index.d.ts +1 -1
- package/lib/services/DemoAccountsService/index.d.ts.map +1 -1
- package/lib/services/DemoAccountsService/index.js +1 -1
- package/lib/services/DemoAccountsService/index.js.map +1 -1
- package/lib/services/DemoAccountsService/index.ts +1 -1
- package/lib/services/{GoogleAuthService.d.ts → GoogleAuth.service.d.ts} +2 -8
- package/lib/services/GoogleAuth.service.d.ts.map +1 -0
- package/lib/services/{GoogleAuthService.js → GoogleAuth.service.js} +6 -6
- package/lib/services/GoogleAuth.service.js.map +1 -0
- package/lib/services/{GoogleAuthService.ts → GoogleAuth.service.ts} +5 -5
- package/lib/services/{MigrationService.d.ts → Migration.service.d.ts} +1 -1
- package/lib/services/Migration.service.d.ts.map +1 -0
- package/lib/services/{MigrationService.js → Migration.service.js} +1 -1
- package/lib/services/Migration.service.js.map +1 -0
- package/lib/services/{RepoSubscriptionService.d.ts → RepoSubscription.service.d.ts} +1 -1
- package/lib/services/RepoSubscription.service.d.ts.map +1 -0
- package/lib/services/{RepoSubscriptionService.js → RepoSubscription.service.js} +1 -1
- package/lib/services/RepoSubscription.service.js.map +1 -0
- package/lib/util/DbOperationMetaData.d.ts +1 -4
- package/lib/util/DbOperationMetaData.d.ts.map +1 -1
- package/lib/util/DbOperationMetaData.js +12 -12
- package/lib/util/DbOperationMetaData.js.map +1 -1
- package/lib/util/DbOperationMetaData.ts +12 -12
- package/lib/util/DocumentDb.d.ts +1 -9
- package/lib/util/DocumentDb.d.ts.map +1 -1
- package/lib/util/DocumentDb.js +14 -14
- package/lib/util/DocumentDb.js.map +1 -1
- package/lib/util/DocumentDb.ts +14 -14
- package/lib/validators/common/UserValidator.d.ts +1 -8
- package/lib/validators/common/UserValidator.d.ts.map +1 -1
- package/lib/validators/common/UserValidator.js +3 -3
- package/lib/validators/common/UserValidator.js.map +1 -1
- package/lib/validators/common/UserValidator.ts +3 -3
- package/package.json +6 -6
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts +0 -72
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts.map +0 -1
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js.map +0 -1
- package/lib/services/DemoAccountsService/DemoAccountsService.d.ts.map +0 -1
- package/lib/services/DemoAccountsService/DemoAccountsService.js.map +0 -1
- package/lib/services/GoogleAuthService.d.ts.map +0 -1
- package/lib/services/GoogleAuthService.js.map +0 -1
- package/lib/services/MigrationService.d.ts.map +0 -1
- package/lib/services/MigrationService.js.map +0 -1
- package/lib/services/RepoSubscriptionService.d.ts.map +0 -1
- package/lib/services/RepoSubscriptionService.js.map +0 -1
- /package/lib/services/{MigrationService.ts → Migration.service.ts} +0 -0
- /package/lib/services/{RepoSubscriptionService.ts → RepoSubscription.service.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NonogramKatanaUpgrade, User } from '@aneuhold/core-ts-db-lib';
|
|
2
2
|
import { NonogramKatanaUpgrade_docType } from '@aneuhold/core-ts-db-lib';
|
|
3
|
-
import type { RepoListeners } from '../../services/
|
|
3
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
4
4
|
import DashboardNonogramKatanaUpgradeValidator from '../../validators/dashboard/NonogramKatanaUpgradeValidator.js';
|
|
5
5
|
import DashboardBaseWithUserIdRepository from './DashboardBaseWithUserIdRepository.js';
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ import DashboardBaseWithUserIdRepository from './DashboardBaseWithUserIdReposito
|
|
|
8
8
|
* The repository that contains {@link NonogramKatanaUpgrade} documents.
|
|
9
9
|
*/
|
|
10
10
|
export default class DashboardNonogramKatanaUpgradeRepository extends DashboardBaseWithUserIdRepository<NonogramKatanaUpgrade> {
|
|
11
|
-
|
|
11
|
+
static #singletonInstance: DashboardNonogramKatanaUpgradeRepository | undefined;
|
|
12
12
|
|
|
13
13
|
private constructor() {
|
|
14
14
|
super(NonogramKatanaUpgrade_docType, new DashboardNonogramKatanaUpgradeValidator());
|
|
@@ -32,10 +32,10 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
|
|
|
32
32
|
* Gets the singleton instance of the {@link DashboardNonogramKatanaUpgradeRepository}.
|
|
33
33
|
*/
|
|
34
34
|
public static getRepo(): DashboardNonogramKatanaUpgradeRepository {
|
|
35
|
-
if (!DashboardNonogramKatanaUpgradeRepository
|
|
36
|
-
DashboardNonogramKatanaUpgradeRepository
|
|
35
|
+
if (!DashboardNonogramKatanaUpgradeRepository.#singletonInstance) {
|
|
36
|
+
DashboardNonogramKatanaUpgradeRepository.#singletonInstance =
|
|
37
37
|
new DashboardNonogramKatanaUpgradeRepository();
|
|
38
38
|
}
|
|
39
|
-
return DashboardNonogramKatanaUpgradeRepository
|
|
39
|
+
return DashboardNonogramKatanaUpgradeRepository.#singletonInstance;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { DashboardTask, User } from '@aneuhold/core-ts-db-lib';
|
|
2
2
|
import type { UUID } from 'crypto';
|
|
3
3
|
import type { BulkWriteResult, DeleteResult, UpdateResult } from 'mongodb';
|
|
4
|
-
import type { RepoListeners } from '../../services/
|
|
4
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
5
5
|
import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
|
|
6
6
|
import DashboardBaseWithUserIdRepository from './DashboardBaseWithUserIdRepository.js';
|
|
7
7
|
/**
|
|
8
8
|
* The repository that contains {@link DashboardTask} documents.
|
|
9
9
|
*/
|
|
10
10
|
export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepository<DashboardTask> {
|
|
11
|
-
private
|
|
11
|
+
#private;
|
|
12
12
|
/**
|
|
13
13
|
* Private constructor to enforce singleton pattern.
|
|
14
14
|
*/
|
|
@@ -57,14 +57,6 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
57
57
|
* @returns The list of tasks for the user.
|
|
58
58
|
*/
|
|
59
59
|
getAllForUser(userId: UUID): Promise<DashboardTask[]>;
|
|
60
|
-
/**
|
|
61
|
-
* Gets all the task IDs that need to be deleted if the provided list of
|
|
62
|
-
* tasks is deleted.
|
|
63
|
-
*
|
|
64
|
-
* @param taskIds The IDs of the tasks to delete.
|
|
65
|
-
* @returns The list of task IDs to delete.
|
|
66
|
-
*/
|
|
67
|
-
private getAllTaskIDsToDelete;
|
|
68
60
|
/**
|
|
69
61
|
* Deletes all tasks for a user and cleans up assignedTo references.
|
|
70
62
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardTaskRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardTaskRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DashboardTaskRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardTaskRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAGzE,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAGvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,iCAAiC,CAAC,aAAa,CAAC;;IAGnG;;OAEG;IACH,OAAO;IASP;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;OAIG;WACW,OAAO,IAAI,uBAAuB;IAOjC,SAAS,CACtB,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAQjB,UAAU,CACvB,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,aAAa,EAAE,CAAC;IASZ,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,EAClC,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,YAAY,CAAC;IAUT,UAAU,CACvB,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,EACrC,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,eAAe,CAAC;IAU3B;;;;;;;OAOG;IACY,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAcrF;;;;;;OAMG;IACY,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAc5F;;;;;;;OAOG;IACY,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA6CpE;;;;;OAKG;IACG,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1F;;;;;OAKG;IACG,4BAA4B,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB/F"}
|
|
@@ -7,7 +7,7 @@ import DashboardUserConfigRepository from './DashboardUserConfigRepository.js';
|
|
|
7
7
|
* The repository that contains {@link DashboardTask} documents.
|
|
8
8
|
*/
|
|
9
9
|
export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepository {
|
|
10
|
-
static singletonInstance;
|
|
10
|
+
static #singletonInstance;
|
|
11
11
|
/**
|
|
12
12
|
* Private constructor to enforce singleton pattern.
|
|
13
13
|
*/
|
|
@@ -43,10 +43,10 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
43
43
|
* @returns The singleton instance of the repository.
|
|
44
44
|
*/
|
|
45
45
|
static getRepo() {
|
|
46
|
-
if (!DashboardTaskRepository
|
|
47
|
-
DashboardTaskRepository
|
|
46
|
+
if (!DashboardTaskRepository.#singletonInstance) {
|
|
47
|
+
DashboardTaskRepository.#singletonInstance = new DashboardTaskRepository();
|
|
48
48
|
}
|
|
49
|
-
return DashboardTaskRepository
|
|
49
|
+
return DashboardTaskRepository.#singletonInstance;
|
|
50
50
|
}
|
|
51
51
|
async insertNew(newDoc, meta) {
|
|
52
52
|
const result = await super.insertNew(newDoc, meta);
|
|
@@ -90,7 +90,7 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
90
90
|
* @returns The result of the delete operation.
|
|
91
91
|
*/
|
|
92
92
|
async delete(docId, meta) {
|
|
93
|
-
const docIdsToDelete = await this
|
|
93
|
+
const docIdsToDelete = await this.#getAllTaskIDsToDelete([docId]);
|
|
94
94
|
// Fetch and cache all tasks before deletion to report sharedWith users
|
|
95
95
|
if (meta && docIdsToDelete.length > 0) {
|
|
96
96
|
const tasksToDelete = await this.fetchAndCacheDocsForMeta(docIdsToDelete, meta);
|
|
@@ -108,7 +108,7 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
108
108
|
* @returns The result of the delete operation.
|
|
109
109
|
*/
|
|
110
110
|
async deleteList(docIds, meta) {
|
|
111
|
-
const docIdsToDelete = await this
|
|
111
|
+
const docIdsToDelete = await this.#getAllTaskIDsToDelete(docIds);
|
|
112
112
|
// Fetch and cache all tasks before deletion to report sharedWith users
|
|
113
113
|
if (meta && docIdsToDelete.length > 0) {
|
|
114
114
|
const tasksToDelete = await this.fetchAndCacheDocsForMeta(docIdsToDelete, meta);
|
|
@@ -157,7 +157,7 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
157
157
|
* @param taskIds The IDs of the tasks to delete.
|
|
158
158
|
* @returns The list of task IDs to delete.
|
|
159
159
|
*/
|
|
160
|
-
async getAllTaskIDsToDelete(taskIds) {
|
|
160
|
+
async #getAllTaskIDsToDelete(taskIds) {
|
|
161
161
|
if (taskIds.length === 0) {
|
|
162
162
|
return taskIds;
|
|
163
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardTaskRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardTaskRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAKvF,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,sBAAsB,MAAM,6CAA6C,CAAC;AACjF,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AACvF,OAAO,6BAA6B,MAAM,oCAAoC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,iCAAgD;
|
|
1
|
+
{"version":3,"file":"DashboardTaskRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardTaskRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { DashboardTask, User } from '@aneuhold/core-ts-db-lib';
|
|
|
2
2
|
import { DashboardTask_docType, DashboardTaskService } from '@aneuhold/core-ts-db-lib';
|
|
3
3
|
import type { UUID } from 'crypto';
|
|
4
4
|
import type { BulkWriteResult, DeleteResult, UpdateResult } from 'mongodb';
|
|
5
|
-
import type { RepoListeners } from '../../services/
|
|
5
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
6
6
|
import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
|
|
7
7
|
import CleanDocument from '../../util/DocumentCleaner.js';
|
|
8
8
|
import DashboardTaskValidator from '../../validators/dashboard/TaskValidator.js';
|
|
@@ -13,7 +13,7 @@ import DashboardUserConfigRepository from './DashboardUserConfigRepository.js';
|
|
|
13
13
|
* The repository that contains {@link DashboardTask} documents.
|
|
14
14
|
*/
|
|
15
15
|
export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepository<DashboardTask> {
|
|
16
|
-
|
|
16
|
+
static #singletonInstance?: DashboardTaskRepository;
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Private constructor to enforce singleton pattern.
|
|
@@ -53,10 +53,10 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
53
53
|
* @returns The singleton instance of the repository.
|
|
54
54
|
*/
|
|
55
55
|
public static getRepo(): DashboardTaskRepository {
|
|
56
|
-
if (!DashboardTaskRepository
|
|
57
|
-
DashboardTaskRepository
|
|
56
|
+
if (!DashboardTaskRepository.#singletonInstance) {
|
|
57
|
+
DashboardTaskRepository.#singletonInstance = new DashboardTaskRepository();
|
|
58
58
|
}
|
|
59
|
-
return DashboardTaskRepository
|
|
59
|
+
return DashboardTaskRepository.#singletonInstance;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
override async insertNew(
|
|
@@ -117,7 +117,7 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
117
117
|
* @returns The result of the delete operation.
|
|
118
118
|
*/
|
|
119
119
|
override async delete(docId: UUID, meta?: DbOperationMetaData): Promise<DeleteResult> {
|
|
120
|
-
const docIdsToDelete = await this
|
|
120
|
+
const docIdsToDelete = await this.#getAllTaskIDsToDelete([docId]);
|
|
121
121
|
|
|
122
122
|
// Fetch and cache all tasks before deletion to report sharedWith users
|
|
123
123
|
if (meta && docIdsToDelete.length > 0) {
|
|
@@ -138,7 +138,7 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
138
138
|
* @returns The result of the delete operation.
|
|
139
139
|
*/
|
|
140
140
|
override async deleteList(docIds: UUID[], meta?: DbOperationMetaData): Promise<DeleteResult> {
|
|
141
|
-
const docIdsToDelete = await this
|
|
141
|
+
const docIdsToDelete = await this.#getAllTaskIDsToDelete(docIds);
|
|
142
142
|
|
|
143
143
|
// Fetch and cache all tasks before deletion to report sharedWith users
|
|
144
144
|
if (meta && docIdsToDelete.length > 0) {
|
|
@@ -191,7 +191,7 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
|
|
|
191
191
|
* @param taskIds The IDs of the tasks to delete.
|
|
192
192
|
* @returns The list of task IDs to delete.
|
|
193
193
|
*/
|
|
194
|
-
|
|
194
|
+
async #getAllTaskIDsToDelete(taskIds: UUID[]): Promise<UUID[]> {
|
|
195
195
|
if (taskIds.length === 0) {
|
|
196
196
|
return taskIds;
|
|
197
197
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
|
|
2
2
|
import type { UUID } from 'crypto';
|
|
3
3
|
import type { BulkWriteResult, UpdateResult } from 'mongodb';
|
|
4
|
-
import type { RepoListeners } from '../../services/
|
|
4
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
5
5
|
import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
|
|
6
6
|
import DashboardBaseWithUserIdRepository from './DashboardBaseWithUserIdRepository.js';
|
|
7
7
|
/**
|
|
8
8
|
* The repository that contains {@link DashboardUserConfig} documents.
|
|
9
9
|
*/
|
|
10
10
|
export default class DashboardUserConfigRepository extends DashboardBaseWithUserIdRepository<DashboardUserConfig> {
|
|
11
|
-
private
|
|
11
|
+
#private;
|
|
12
12
|
/**
|
|
13
13
|
* Private constructor to enforce singleton pattern.
|
|
14
14
|
*/
|
|
@@ -70,19 +70,6 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
70
70
|
* @returns The user config or null if not found.
|
|
71
71
|
*/
|
|
72
72
|
getForUser(userId: UUID): Promise<DashboardUserConfig | null>;
|
|
73
|
-
/**
|
|
74
|
-
* Updates the user configs for the collaborators of the provided user
|
|
75
|
-
* configs.
|
|
76
|
-
*
|
|
77
|
-
* If a collaborator is removed from a user config, the collaborator will
|
|
78
|
-
* have the user removed from their collaborators list.
|
|
79
|
-
*
|
|
80
|
-
* If a collaborator is added to a user config, the collaborator will have
|
|
81
|
-
* the user added to their collaborators list.
|
|
82
|
-
*
|
|
83
|
-
* @param docSets The array of document sets containing original and updated documents.
|
|
84
|
-
*/
|
|
85
|
-
private updateCollaboratorsIfNeeded;
|
|
86
73
|
/**
|
|
87
74
|
* Deletes a user config and removes the user from collaborators lists.
|
|
88
75
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardUserConfigRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAyB,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DashboardUserConfigRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAyB,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAGzE,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,iCAAiC,CAAC,mBAAmB,CAAC;;IAG/G;;OAEG;IACH,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IA2BrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;OAIG;WACW,OAAO,IAAI,6BAA6B;IAOtD;;;;;;;OAOG;IACY,SAAS,CACtB,MAAM,EAAE,mBAAmB,EAC3B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAatC;;;;;;;;OAQG;IACY,UAAU,CACvB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAYjC;;;;;;;OAOG;IACY,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACxC,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAU7C;;;;;;;OAOG;IACY,UAAU,CACvB,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,EAC3C,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,eAAe,CAAC;IAkB3B;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAmEnE;;;;;OAKG;IACG,mCAAmC,CACvC,MAAM,EAAE,IAAI,EACZ,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;IACG,oCAAoC,CACxC,OAAO,EAAE,IAAI,EAAE,EACf,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC;CAajB"}
|
|
@@ -6,7 +6,7 @@ import DashboardBaseWithUserIdRepository from './DashboardBaseWithUserIdReposito
|
|
|
6
6
|
* The repository that contains {@link DashboardUserConfig} documents.
|
|
7
7
|
*/
|
|
8
8
|
export default class DashboardUserConfigRepository extends DashboardBaseWithUserIdRepository {
|
|
9
|
-
static singletonInstance;
|
|
9
|
+
static #singletonInstance;
|
|
10
10
|
/**
|
|
11
11
|
* Private constructor to enforce singleton pattern.
|
|
12
12
|
*/
|
|
@@ -45,10 +45,10 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
45
45
|
* @returns The singleton instance.
|
|
46
46
|
*/
|
|
47
47
|
static getRepo() {
|
|
48
|
-
if (!DashboardUserConfigRepository
|
|
49
|
-
DashboardUserConfigRepository
|
|
48
|
+
if (!DashboardUserConfigRepository.#singletonInstance) {
|
|
49
|
+
DashboardUserConfigRepository.#singletonInstance = new DashboardUserConfigRepository();
|
|
50
50
|
}
|
|
51
|
-
return DashboardUserConfigRepository
|
|
51
|
+
return DashboardUserConfigRepository.#singletonInstance;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Inserts a new config for a user. If the user has collaborators, those
|
|
@@ -61,7 +61,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
61
61
|
async insertNew(newDoc, meta) {
|
|
62
62
|
const result = await super.insertNew(newDoc, meta);
|
|
63
63
|
if (newDoc.collaborators.length > 0) {
|
|
64
|
-
await this
|
|
64
|
+
await this.#updateCollaboratorsIfNeeded([
|
|
65
65
|
{
|
|
66
66
|
originalDoc: DashboardUserConfigSchema.parse({ userId: newDoc.userId }),
|
|
67
67
|
updatedDoc: newDoc
|
|
@@ -82,7 +82,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
82
82
|
async insertMany(newDocs, meta) {
|
|
83
83
|
const result = await super.insertMany(newDocs, meta);
|
|
84
84
|
// Simulate having no collaborators originally.
|
|
85
|
-
await this
|
|
85
|
+
await this.#updateCollaboratorsIfNeeded(newDocs.map((doc) => ({
|
|
86
86
|
originalDoc: DashboardUserConfigSchema.parse({ userId: doc.userId }),
|
|
87
87
|
updatedDoc: doc
|
|
88
88
|
})));
|
|
@@ -101,7 +101,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
101
101
|
const originalDoc = await super.get({ _id: updatedDoc._id });
|
|
102
102
|
const result = await super.update(updatedDoc, meta);
|
|
103
103
|
if (originalDoc) {
|
|
104
|
-
await this
|
|
104
|
+
await this.#updateCollaboratorsIfNeeded([{ originalDoc, updatedDoc }]);
|
|
105
105
|
}
|
|
106
106
|
return result;
|
|
107
107
|
}
|
|
@@ -122,7 +122,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
122
122
|
});
|
|
123
123
|
const originalDocs = await super.getList(docIds);
|
|
124
124
|
const result = await super.updateMany(updatedDocs, meta);
|
|
125
|
-
await this
|
|
125
|
+
await this.#updateCollaboratorsIfNeeded(originalDocs.map((originalDoc, index) => ({
|
|
126
126
|
originalDoc,
|
|
127
127
|
updatedDoc: updatedDocs[index]
|
|
128
128
|
})));
|
|
@@ -151,7 +151,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
151
151
|
*
|
|
152
152
|
* @param docSets The array of document sets containing original and updated documents.
|
|
153
153
|
*/
|
|
154
|
-
async updateCollaboratorsIfNeeded(docSets) {
|
|
154
|
+
async #updateCollaboratorsIfNeeded(docSets) {
|
|
155
155
|
const bulkOps = [];
|
|
156
156
|
// For each set of documents
|
|
157
157
|
docSets.forEach((docSet) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardUserConfigRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAKlG,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,4BAA4B,MAAM,mDAAmD,CAAC;AAC7F,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,iCAAsD;
|
|
1
|
+
{"version":3,"file":"DashboardUserConfigRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
|
|
|
2
2
|
import { DashboardUserConfig_docType, DashboardUserConfigSchema } from '@aneuhold/core-ts-db-lib';
|
|
3
3
|
import type { UUID } from 'crypto';
|
|
4
4
|
import type { AnyBulkWriteOperation, BulkWriteResult, UpdateResult } from 'mongodb';
|
|
5
|
-
import type { RepoListeners } from '../../services/
|
|
5
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
6
6
|
import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
|
|
7
7
|
import CleanDocument from '../../util/DocumentCleaner.js';
|
|
8
8
|
import DashboardUserConfigValidator from '../../validators/dashboard/UserConfigValidator.js';
|
|
@@ -12,7 +12,7 @@ import DashboardBaseWithUserIdRepository from './DashboardBaseWithUserIdReposito
|
|
|
12
12
|
* The repository that contains {@link DashboardUserConfig} documents.
|
|
13
13
|
*/
|
|
14
14
|
export default class DashboardUserConfigRepository extends DashboardBaseWithUserIdRepository<DashboardUserConfig> {
|
|
15
|
-
|
|
15
|
+
static #singletonInstance?: DashboardUserConfigRepository;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Private constructor to enforce singleton pattern.
|
|
@@ -61,10 +61,10 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
61
61
|
* @returns The singleton instance.
|
|
62
62
|
*/
|
|
63
63
|
public static getRepo(): DashboardUserConfigRepository {
|
|
64
|
-
if (!DashboardUserConfigRepository
|
|
65
|
-
DashboardUserConfigRepository
|
|
64
|
+
if (!DashboardUserConfigRepository.#singletonInstance) {
|
|
65
|
+
DashboardUserConfigRepository.#singletonInstance = new DashboardUserConfigRepository();
|
|
66
66
|
}
|
|
67
|
-
return DashboardUserConfigRepository
|
|
67
|
+
return DashboardUserConfigRepository.#singletonInstance;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/**
|
|
@@ -81,7 +81,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
81
81
|
): Promise<DashboardUserConfig | null> {
|
|
82
82
|
const result = await super.insertNew(newDoc, meta);
|
|
83
83
|
if (newDoc.collaborators.length > 0) {
|
|
84
|
-
await this
|
|
84
|
+
await this.#updateCollaboratorsIfNeeded([
|
|
85
85
|
{
|
|
86
86
|
originalDoc: DashboardUserConfigSchema.parse({ userId: newDoc.userId }),
|
|
87
87
|
updatedDoc: newDoc
|
|
@@ -106,7 +106,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
106
106
|
): Promise<DashboardUserConfig[]> {
|
|
107
107
|
const result = await super.insertMany(newDocs, meta);
|
|
108
108
|
// Simulate having no collaborators originally.
|
|
109
|
-
await this
|
|
109
|
+
await this.#updateCollaboratorsIfNeeded(
|
|
110
110
|
newDocs.map((doc) => ({
|
|
111
111
|
originalDoc: DashboardUserConfigSchema.parse({ userId: doc.userId }),
|
|
112
112
|
updatedDoc: doc
|
|
@@ -131,7 +131,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
131
131
|
const originalDoc = await super.get({ _id: updatedDoc._id });
|
|
132
132
|
const result = await super.update(updatedDoc, meta);
|
|
133
133
|
if (originalDoc) {
|
|
134
|
-
await this
|
|
134
|
+
await this.#updateCollaboratorsIfNeeded([{ originalDoc, updatedDoc }]);
|
|
135
135
|
}
|
|
136
136
|
return result;
|
|
137
137
|
}
|
|
@@ -156,7 +156,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
156
156
|
});
|
|
157
157
|
const originalDocs = await super.getList(docIds);
|
|
158
158
|
const result = await super.updateMany(updatedDocs, meta);
|
|
159
|
-
await this
|
|
159
|
+
await this.#updateCollaboratorsIfNeeded(
|
|
160
160
|
originalDocs.map((originalDoc, index) => ({
|
|
161
161
|
originalDoc,
|
|
162
162
|
updatedDoc: updatedDocs[index]
|
|
@@ -189,7 +189,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseWithUser
|
|
|
189
189
|
*
|
|
190
190
|
* @param docSets The array of document sets containing original and updated documents.
|
|
191
191
|
*/
|
|
192
|
-
|
|
192
|
+
async #updateCollaboratorsIfNeeded(
|
|
193
193
|
docSets: Array<{
|
|
194
194
|
originalDoc: DashboardUserConfig;
|
|
195
195
|
updatedDoc: Partial<DashboardUserConfig>;
|
|
@@ -8,8 +8,8 @@ import BaseRepository from '../BaseRepository.js';
|
|
|
8
8
|
* A base repository for the `workout` collection.
|
|
9
9
|
*/
|
|
10
10
|
export default abstract class WorkoutBaseRepository<TBaseType extends BaseDocumentWithType & BaseDocumentWithUpdatedAndCreatedDates> extends BaseRepository<TBaseType> {
|
|
11
|
+
#private;
|
|
11
12
|
protected docType: string;
|
|
12
|
-
private static COLLECTION_NAME;
|
|
13
13
|
constructor(docType: string, validator: IValidator<TBaseType>, updateCleaner?: (doc: Partial<TBaseType>) => Partial<TBaseType>);
|
|
14
14
|
insertNew(newDoc: TBaseType, meta?: DbOperationMetaData): Promise<TBaseType | null>;
|
|
15
15
|
insertMany(newDocs: TBaseType[], meta?: DbOperationMetaData): Promise<TBaseType[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutBaseRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutBaseRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sCAAsC,EACvC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,UAAU,MAAM,mCAAmC,CAAC;AAChE,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,qBAAqB,CACjD,SAAS,SAAS,oBAAoB,GAAG,sCAAsC,CAC/E,SAAQ,cAAc,CAAC,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"WorkoutBaseRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutBaseRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sCAAsC,EACvC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,UAAU,MAAM,mCAAmC,CAAC;AAChE,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,qBAAqB,CACjD,SAAS,SAAS,oBAAoB,GAAG,sCAAsC,CAC/E,SAAQ,cAAc,CAAC,SAAS,CAAC;;IAI/B,SAAS,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM,EACzB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAChC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC;IAalD,SAAS,CACtB,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAKb,UAAU,CACvB,OAAO,EAAE,SAAS,EAAE,EACpB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC;IAKR,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAC9B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,YAAY,CAAC;IAMT,UAAU,CACvB,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EACjC,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,eAAe,CAAC;IAQZ,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAKtE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAK7E,SAAS,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;CAI5E"}
|
|
@@ -5,7 +5,7 @@ import BaseRepository from '../BaseRepository.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export default class WorkoutBaseRepository extends BaseRepository {
|
|
7
7
|
docType;
|
|
8
|
-
static COLLECTION_NAME = 'workout';
|
|
8
|
+
static #COLLECTION_NAME = 'workout';
|
|
9
9
|
constructor(docType, validator, updateCleaner) {
|
|
10
10
|
const defaultUpdateCleaner = (doc) => {
|
|
11
11
|
updateCleaner?.(doc);
|
|
@@ -15,7 +15,7 @@ export default class WorkoutBaseRepository extends BaseRepository {
|
|
|
15
15
|
};
|
|
16
16
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
17
17
|
const defaultFilter = { docType };
|
|
18
|
-
super(WorkoutBaseRepository
|
|
18
|
+
super(WorkoutBaseRepository.#COLLECTION_NAME, validator, defaultFilter, defaultUpdateCleaner);
|
|
19
19
|
this.docType = docType;
|
|
20
20
|
}
|
|
21
21
|
async insertNew(newDoc, meta) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutBaseRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutBaseRepository.ts"],"names":[],"mappings":"AAOA,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,qBAE5B,SAAQ,cAAyB;IAIrB;
|
|
1
|
+
{"version":3,"file":"WorkoutBaseRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutBaseRepository.ts"],"names":[],"mappings":"AAOA,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,qBAE5B,SAAQ,cAAyB;IAIrB;IAHZ,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAEpC,YACY,OAAe,EACzB,SAAgC,EAChC,aAA+D;QAE/D,MAAM,oBAAoB,GAAG,CAAC,GAAuB,EAAE,EAAE;YACvD,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;YACrB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QACF,yEAAyE;QACzE,MAAM,aAAa,GAAG,EAAE,OAAO,EAAwB,CAAC;QACxD,KAAK,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAZpF,YAAO,GAAP,OAAO,CAAQ;IAa3B,CAAC;IAEQ,KAAK,CAAC,SAAS,CACtB,MAAiB,EACjB,IAA0B;QAE1B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,OAAoB,EACpB,IAA0B;QAE1B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,MAAM,CACnB,UAA8B,EAC9B,IAA0B;QAE1B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,UAAU,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,WAAiC,EACjC,IAA0B;QAE1B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,GAAG,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAW,EAAE,IAA0B;QAC3D,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,IAA0B;QAClE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,IAA0B;QACjD,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC"}
|
|
@@ -15,7 +15,7 @@ import BaseRepository from '../BaseRepository.js';
|
|
|
15
15
|
export default abstract class WorkoutBaseRepository<
|
|
16
16
|
TBaseType extends BaseDocumentWithType & BaseDocumentWithUpdatedAndCreatedDates
|
|
17
17
|
> extends BaseRepository<TBaseType> {
|
|
18
|
-
|
|
18
|
+
static #COLLECTION_NAME = 'workout';
|
|
19
19
|
|
|
20
20
|
constructor(
|
|
21
21
|
protected docType: string,
|
|
@@ -30,7 +30,7 @@ export default abstract class WorkoutBaseRepository<
|
|
|
30
30
|
};
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
32
32
|
const defaultFilter = { docType } as Partial<TBaseType>;
|
|
33
|
-
super(WorkoutBaseRepository
|
|
33
|
+
super(WorkoutBaseRepository.#COLLECTION_NAME, validator, defaultFilter, defaultUpdateCleaner);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
override async insertNew(
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { User, WorkoutEquipmentType } from '@aneuhold/core-ts-db-lib';
|
|
2
|
-
import type { RepoListeners } from '../../services/
|
|
2
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
3
3
|
import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
|
|
4
4
|
/**
|
|
5
5
|
* The repository that contains {@link WorkoutEquipmentType} documents.
|
|
6
6
|
*/
|
|
7
7
|
export default class WorkoutEquipmentTypeRepository extends WorkoutBaseWithUserIdRepository<WorkoutEquipmentType> {
|
|
8
|
-
private
|
|
8
|
+
#private;
|
|
9
9
|
private constructor();
|
|
10
10
|
static getListenersForUserRepo(): RepoListeners<User>;
|
|
11
11
|
protected setupSubscribers(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutEquipmentTypeRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutEquipmentTypeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WorkoutEquipmentTypeRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutEquipmentTypeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,+BAA+B,CAAC,oBAAoB,CAAC;;IAG/G,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,8BAA8B;CAMxD"}
|
|
@@ -5,7 +5,7 @@ import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.j
|
|
|
5
5
|
* The repository that contains {@link WorkoutEquipmentType} documents.
|
|
6
6
|
*/
|
|
7
7
|
export default class WorkoutEquipmentTypeRepository extends WorkoutBaseWithUserIdRepository {
|
|
8
|
-
static singletonInstance;
|
|
8
|
+
static #singletonInstance;
|
|
9
9
|
constructor() {
|
|
10
10
|
super(WorkoutEquipmentType_docType, new WorkoutEquipmentTypeValidator());
|
|
11
11
|
}
|
|
@@ -25,10 +25,10 @@ export default class WorkoutEquipmentTypeRepository extends WorkoutBaseWithUserI
|
|
|
25
25
|
* Gets the singleton instance of the {@link WorkoutEquipmentTypeRepository}.
|
|
26
26
|
*/
|
|
27
27
|
static getRepo() {
|
|
28
|
-
if (!WorkoutEquipmentTypeRepository
|
|
29
|
-
WorkoutEquipmentTypeRepository
|
|
28
|
+
if (!WorkoutEquipmentTypeRepository.#singletonInstance) {
|
|
29
|
+
WorkoutEquipmentTypeRepository.#singletonInstance = new WorkoutEquipmentTypeRepository();
|
|
30
30
|
}
|
|
31
|
-
return WorkoutEquipmentTypeRepository
|
|
31
|
+
return WorkoutEquipmentTypeRepository.#singletonInstance;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=WorkoutEquipmentTypeRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutEquipmentTypeRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutEquipmentTypeRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,6BAA6B,MAAM,oDAAoD,CAAC;AAC/F,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,+BAAqD;
|
|
1
|
+
{"version":3,"file":"WorkoutEquipmentTypeRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutEquipmentTypeRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,6BAA6B,MAAM,oDAAoD,CAAC;AAC/F,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,+BAAqD;IAC/G,MAAM,CAAC,kBAAkB,CAAkC;IAE3D;QACE,KAAK,CAAC,4BAA4B,EAAE,IAAI,6BAA6B,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzD,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3D,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,8BAA8B,CAAC,kBAAkB,EAAE,CAAC;YACvD,8BAA8B,CAAC,kBAAkB,GAAG,IAAI,8BAA8B,EAAE,CAAC;QAC3F,CAAC;QACD,OAAO,8BAA8B,CAAC,kBAAkB,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { User, WorkoutEquipmentType } from '@aneuhold/core-ts-db-lib';
|
|
2
2
|
import { WorkoutEquipmentType_docType } from '@aneuhold/core-ts-db-lib';
|
|
3
|
-
import type { RepoListeners } from '../../services/
|
|
3
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
4
4
|
import WorkoutEquipmentTypeValidator from '../../validators/workout/EquipmentTypeValidator.js';
|
|
5
5
|
import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.j
|
|
|
8
8
|
* The repository that contains {@link WorkoutEquipmentType} documents.
|
|
9
9
|
*/
|
|
10
10
|
export default class WorkoutEquipmentTypeRepository extends WorkoutBaseWithUserIdRepository<WorkoutEquipmentType> {
|
|
11
|
-
|
|
11
|
+
static #singletonInstance?: WorkoutEquipmentTypeRepository;
|
|
12
12
|
|
|
13
13
|
private constructor() {
|
|
14
14
|
super(WorkoutEquipmentType_docType, new WorkoutEquipmentTypeValidator());
|
|
@@ -32,9 +32,9 @@ export default class WorkoutEquipmentTypeRepository extends WorkoutBaseWithUserI
|
|
|
32
32
|
* Gets the singleton instance of the {@link WorkoutEquipmentTypeRepository}.
|
|
33
33
|
*/
|
|
34
34
|
public static getRepo(): WorkoutEquipmentTypeRepository {
|
|
35
|
-
if (!WorkoutEquipmentTypeRepository
|
|
36
|
-
WorkoutEquipmentTypeRepository
|
|
35
|
+
if (!WorkoutEquipmentTypeRepository.#singletonInstance) {
|
|
36
|
+
WorkoutEquipmentTypeRepository.#singletonInstance = new WorkoutEquipmentTypeRepository();
|
|
37
37
|
}
|
|
38
|
-
return WorkoutEquipmentTypeRepository
|
|
38
|
+
return WorkoutEquipmentTypeRepository.#singletonInstance;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { User, WorkoutExercise, WorkoutExerciseCalibration } from '@aneuhold/core-ts-db-lib';
|
|
2
2
|
import type { UUID } from 'crypto';
|
|
3
|
-
import type { RepoListeners } from '../../services/
|
|
3
|
+
import type { RepoListeners } from '../../services/RepoSubscription.service.js';
|
|
4
4
|
import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
|
|
5
5
|
import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
|
|
6
6
|
/**
|
|
7
7
|
* The repository that contains {@link WorkoutExerciseCalibration} documents.
|
|
8
8
|
*/
|
|
9
9
|
export default class WorkoutExerciseCalibrationRepository extends WorkoutBaseWithUserIdRepository<WorkoutExerciseCalibration> {
|
|
10
|
-
private
|
|
10
|
+
#private;
|
|
11
11
|
private constructor();
|
|
12
12
|
static getListenersForUserRepo(): RepoListeners<User>;
|
|
13
13
|
static getListenersForExerciseRepo(): RepoListeners<WorkoutExercise>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutExerciseCalibrationRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutExerciseCalibrationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAElG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WorkoutExerciseCalibrationRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutExerciseCalibrationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAElG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,+BAA+B,CAAC,0BAA0B,CAAC;;IAG3H,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,MAAM,CAAC,2BAA2B,IAAI,aAAa,CAAC,eAAe,CAAC;IAYpE,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;;OAKG;IACG,oBAAoB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvF;;;;;OAKG;IACG,qBAAqB,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;WAgB7E,OAAO,IAAI,oCAAoC;CAO9D"}
|