@volontariapp/domain-user 2.9.0 → 2.10.0-snap-69a47da

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/entities/index.d.ts +1 -0
  3. package/dist/entities/index.d.ts.map +1 -1
  4. package/dist/entities/index.js +1 -0
  5. package/dist/entities/index.js.map +1 -1
  6. package/dist/entities/user-status.enum.d.ts +5 -0
  7. package/dist/entities/user-status.enum.d.ts.map +1 -0
  8. package/dist/entities/user-status.enum.js +6 -0
  9. package/dist/entities/user-status.enum.js.map +1 -0
  10. package/dist/entities/user.entity.d.ts +3 -0
  11. package/dist/entities/user.entity.d.ts.map +1 -1
  12. package/dist/entities/user.entity.js +4 -0
  13. package/dist/entities/user.entity.js.map +1 -1
  14. package/dist/models/mapper.d.ts.map +1 -1
  15. package/dist/models/mapper.js +2 -1
  16. package/dist/models/mapper.js.map +1 -1
  17. package/dist/models/user.model.d.ts +3 -0
  18. package/dist/models/user.model.d.ts.map +1 -1
  19. package/dist/models/user.model.js +11 -0
  20. package/dist/models/user.model.js.map +1 -1
  21. package/dist/repositories/interfaces/user.repository.d.ts +2 -0
  22. package/dist/repositories/interfaces/user.repository.d.ts.map +1 -1
  23. package/dist/repositories/postgres-user.repository.d.ts +2 -0
  24. package/dist/repositories/postgres-user.repository.d.ts.map +1 -1
  25. package/dist/repositories/postgres-user.repository.js +45 -1
  26. package/dist/repositories/postgres-user.repository.js.map +1 -1
  27. package/dist/services/user.service.d.ts +2 -1
  28. package/dist/services/user.service.d.ts.map +1 -1
  29. package/dist/services/user.service.js +9 -3
  30. package/dist/services/user.service.js.map +1 -1
  31. package/dist/test/__test-utils__/factories/user.factory.d.ts.map +1 -1
  32. package/dist/test/__test-utils__/factories/user.factory.js +3 -0
  33. package/dist/test/__test-utils__/factories/user.factory.js.map +1 -1
  34. package/dist/test/integration/user-deletion.int.spec.d.ts +2 -0
  35. package/dist/test/integration/user-deletion.int.spec.d.ts.map +1 -0
  36. package/dist/test/integration/user-deletion.int.spec.js +79 -0
  37. package/dist/test/integration/user-deletion.int.spec.js.map +1 -0
  38. package/dist/test/migrations/domain/1791400000000-AddUserDeletionStatus.d.ts +7 -0
  39. package/dist/test/migrations/domain/1791400000000-AddUserDeletionStatus.d.ts.map +1 -0
  40. package/dist/test/migrations/domain/1791400000000-AddUserDeletionStatus.js +12 -0
  41. package/dist/test/migrations/domain/1791400000000-AddUserDeletionStatus.js.map +1 -0
  42. package/dist/test/unit/user.service.unit.spec.js +30 -11
  43. package/dist/test/unit/user.service.unit.spec.js.map +1 -1
  44. package/package.json +6 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add the contracts and domain support for two-step user account deletion (PENDING_DELETION).
8
+
9
+ - `@volontariapp/shared`: add `USER_DELETED_POST`, `USER_DELETED_EVENT` and `USER_DELETED_STORAGE` to `UserStream`, one fan-out stream per domain consuming `user.deleted`.
10
+ - `@volontariapp/messaging`:
11
+ - Add completion events `USER_POST_DELETED`, `USER_EVENT_DELETED`, `USER_STORAGE_DELETED` and their `*_DELETION_FAILED` counterparts, with payloads, registered in `EventRegistry`.
12
+ - Add optional `errorReason` to `IUserSocialDeletionFailedPayload`.
13
+ - `@volontariapp/domain-user`:
14
+ - Add `UserStatus` (`ACTIVE`, `PENDING_DELETION`), `UserModel.status` and `UserModel.deletionRequestedAt` (`deletion_requested_at`). A migration is required in `ms-user`.
15
+ - Add `requestDeletionWithUserDeleted` and `finalizeDeletion` to `IUserRepository` and `PostgresUserRepository`. The first marks the user and writes `user.deleted` to the outbox in one transaction, fanned out to the ws, social, post, event and storage streams.
16
+ - Breaking: `UserService.delete` is replaced by `UserService.requestDeletion` and `UserService.finalizeDeletion`. `IUserRepository.delete` is kept for the base repository but must no longer be used to delete an account.
17
+ - Add the `@volontariapp/outbox` dependency.
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies []:
22
+ - @volontariapp/shared@0.13.0
23
+ - @volontariapp/messaging@2.23.0
24
+ - @volontariapp/auth@3.3.17
25
+ - @volontariapp/database@3.4.30
26
+ - @volontariapp/outbox@0.9.67
27
+
3
28
  ## 2.9.0
4
29
 
5
30
  ### Minor Changes
@@ -1,3 +1,4 @@
1
1
  export * from './badge.entity.js';
2
2
  export * from './user.entity.js';
3
+ export * from './user-status.enum.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './badge.entity.js';
2
2
  export * from './user.entity.js';
3
+ export * from './user-status.enum.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare enum UserStatus {
2
+ ACTIVE = "ACTIVE",
3
+ PENDING_DELETION = "PENDING_DELETION"
4
+ }
5
+ //# sourceMappingURL=user-status.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-status.enum.d.ts","sourceRoot":"","sources":["../../src/entities/user-status.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,gBAAgB,qBAAqB;CACtC"}
@@ -0,0 +1,6 @@
1
+ export var UserStatus;
2
+ (function (UserStatus) {
3
+ UserStatus["ACTIVE"] = "ACTIVE";
4
+ UserStatus["PENDING_DELETION"] = "PENDING_DELETION";
5
+ })(UserStatus || (UserStatus = {}));
6
+ //# sourceMappingURL=user-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-status.enum.js","sourceRoot":"","sources":["../../src/entities/user-status.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,mDAAqC,CAAA;AACvC,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
@@ -1,5 +1,6 @@
1
1
  import type { BadgeEntity } from './badge.entity.js';
2
2
  import { UserRoles } from '@volontariapp/shared';
3
+ import { UserStatus } from './user-status.enum.js';
3
4
  export declare class UserEntity {
4
5
  id: string;
5
6
  email: string;
@@ -11,6 +12,8 @@ export declare class UserEntity {
11
12
  totalImpactScore: number;
12
13
  badges: BadgeEntity[];
13
14
  passwordHash?: string;
15
+ status: UserStatus;
16
+ deletionRequestedAt?: Date;
14
17
  static isValidRna(rna?: string): boolean;
15
18
  static create(data: Partial<UserEntity>): UserEntity;
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYjD,qBAAa,UAAU;IACrB,EAAE,EAAG,MAAM,CAAC;IACZ,KAAK,EAAG,MAAM,CAAC;IACf,MAAM,EAAG,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAG,SAAS,CAAC;IACjB,gBAAgB,EAAG,MAAM,CAAC;IAC1B,MAAM,EAAG,WAAW,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAMxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU;CAsBrD"}
1
+ {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAYnD,qBAAa,UAAU;IACrB,EAAE,EAAG,MAAM,CAAC;IACZ,KAAK,EAAG,MAAM,CAAC;IACf,MAAM,EAAG,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAG,SAAS,CAAC;IACjB,gBAAgB,EAAG,MAAM,CAAC;IAC1B,MAAM,EAAG,WAAW,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAG,UAAU,CAAC;IACpB,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAE3B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAMxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU;CAuBrD"}
@@ -1,5 +1,6 @@
1
1
  import { INVALID_RNA } from '@volontariapp/errors-nest';
2
2
  import { UserRoles } from '@volontariapp/shared';
3
+ import { UserStatus } from './user-status.enum.js';
3
4
  const ADJECTIVES = ['Green', 'Social', 'Eco', 'Solidary', 'Active', 'Bright', 'Kind', 'Wild'];
4
5
  const NOUNS = ['Hero', 'Leaf', 'Heart', 'Action', 'Seed', 'Root', 'Planet', 'Citizen'];
5
6
  const generateRandomPseudo = () => {
@@ -19,6 +20,8 @@ export class UserEntity {
19
20
  totalImpactScore;
20
21
  badges;
21
22
  passwordHash;
23
+ status;
24
+ deletionRequestedAt;
22
25
  static isValidRna(rna) {
23
26
  if (rna == null)
24
27
  return true;
@@ -30,6 +33,7 @@ export class UserEntity {
30
33
  Object.assign(user, data);
31
34
  user.badges = data.badges ?? [];
32
35
  user.totalImpactScore = data.totalImpactScore ?? 0;
36
+ user.status = data.status ?? UserStatus.ACTIVE;
33
37
  if (user.rna != null) {
34
38
  if (!UserEntity.isValidRna(user.rna)) {
35
39
  throw INVALID_RNA(user.rna);
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9F,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEvF,MAAM,oBAAoB,GAAG,GAAW,EAAE;IACxC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACrD,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,OAAO,UAAU;IACrB,EAAE,CAAU;IACZ,KAAK,CAAU;IACf,MAAM,CAAU;IAChB,QAAQ,CAAU;IAClB,GAAG,CAAU;IACb,GAAG,CAAU;IACb,IAAI,CAAa;IACjB,gBAAgB,CAAU;IAC1B,MAAM,CAAiB;IACvB,YAAY,CAAU;IAEtB,MAAM,CAAC,UAAU,CAAC,GAAY;QAC5B,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAyB;QACrC,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,YAAY,CAAC;YAClD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC;QAC/C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/models/mapper.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,SA8BnC"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/models/mapper.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,SA+BnC"}
@@ -1,4 +1,4 @@
1
- import { databaseMapper } from '@volontariapp/database';
1
+ import { databaseMapper, EventQueueEntity, EventQueueModel } from '@volontariapp/database';
2
2
  import { UserEntity } from '../entities/user.entity.js';
3
3
  import { UserModel } from './user.model.js';
4
4
  import { BadgeEntity } from '../entities/badge.entity.js';
@@ -32,5 +32,6 @@ export function registerUserMappings() {
32
32
  ],
33
33
  });
34
34
  databaseMapper.registerBidirectional(BadgeEntity, BadgeModel);
35
+ databaseMapper.registerBidirectional(EventQueueEntity, EventQueueModel);
35
36
  }
36
37
  //# sourceMappingURL=mapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../src/models/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,UAAU,oBAAoB;IAClC,cAAc,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE;QAC1D,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC;QACjD,aAAa,EAAE;YACb;gBACE,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,CAAC,MAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAc;aACvD;SACF;QAED,aAAa,EAAE;YACb;gBACE,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAiB;aACzD;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,CAAC,MAAiB,EAAiB,EAAE;oBAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;wBACtC,OAAO,EAAE,CAAC;oBACZ,CAAC;oBACD,OAAO,MAAM,CAAC,UAAU;yBACrB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;yBACrB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAE,CAAa,KAAK,SAAS,IAAK,CAAa,KAAK,IAAI,CAAC;yBACvF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;gBAChE,CAAC;aACF;SACF;KACF,CAAC,CAAC;IACH,cAAc,CAAC,qBAAqB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../src/models/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,UAAU,oBAAoB;IAClC,cAAc,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE;QAC1D,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC;QACjD,aAAa,EAAE;YACb;gBACE,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,CAAC,MAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAc;aACvD;SACF;QAED,aAAa,EAAE;YACb;gBACE,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAiB;aACzD;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,CAAC,MAAiB,EAAiB,EAAE;oBAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;wBACtC,OAAO,EAAE,CAAC;oBACZ,CAAC;oBACD,OAAO,MAAM,CAAC,UAAU;yBACrB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;yBACrB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAE,CAAa,KAAK,SAAS,IAAK,CAAa,KAAK,IAAI,CAAC;yBACvF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;gBAChE,CAAC;aACF;SACF;KACF,CAAC,CAAC;IACH,cAAc,CAAC,qBAAqB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9D,cAAc,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { UserBadgeModel } from './user-badge.model.js';
2
+ import { UserStatus } from '../entities/user-status.enum.js';
2
3
  export declare class UserModel {
3
4
  id: string;
4
5
  email: string;
@@ -10,6 +11,8 @@ export declare class UserModel {
10
11
  logoPath?: string;
11
12
  rna?: string;
12
13
  totalImpactScore: number;
14
+ status: UserStatus;
15
+ deletionRequestedAt?: Date;
13
16
  userBadges: UserBadgeModel[];
14
17
  }
15
18
  //# sourceMappingURL=user.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBACa,SAAS;IAEpB,EAAE,EAAG,MAAM,CAAC;IAGZ,KAAK,EAAG,MAAM,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,EAAG,MAAM,CAAC;IAGhB,IAAI,EAAG,MAAM,CAAC;IAGd,YAAY,EAAG,MAAM,CAAC;IAGtB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,gBAAgB,EAAG,MAAM,CAAC;IAG1B,UAAU,EAAG,cAAc,EAAE,CAAC;CAC/B"}
1
+ {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,qBACa,SAAS;IAEpB,EAAE,EAAG,MAAM,CAAC;IAGZ,KAAK,EAAG,MAAM,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,EAAG,MAAM,CAAC;IAGhB,IAAI,EAAG,MAAM,CAAC;IAGd,YAAY,EAAG,MAAM,CAAC;IAGtB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,gBAAgB,EAAG,MAAM,CAAC;IAG1B,MAAM,EAAG,UAAU,CAAC;IAGpB,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAG3B,UAAU,EAAG,cAAc,EAAE,CAAC;CAC/B"}
@@ -8,6 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm';
11
+ import { UserStatus } from '../entities/user-status.enum.js';
11
12
  let UserModel = class UserModel {
12
13
  id;
13
14
  email;
@@ -19,6 +20,8 @@ let UserModel = class UserModel {
19
20
  logoPath;
20
21
  rna;
21
22
  totalImpactScore;
23
+ status;
24
+ deletionRequestedAt;
22
25
  userBadges;
23
26
  };
24
27
  __decorate([
@@ -61,6 +64,14 @@ __decorate([
61
64
  Column({ type: 'int', default: 0, name: 'total_impact_score' }),
62
65
  __metadata("design:type", Number)
63
66
  ], UserModel.prototype, "totalImpactScore", void 0);
67
+ __decorate([
68
+ Column({ type: 'varchar', length: 32, default: UserStatus.ACTIVE }),
69
+ __metadata("design:type", String)
70
+ ], UserModel.prototype, "status", void 0);
71
+ __decorate([
72
+ Column({ type: 'timestamptz', nullable: true, name: 'deletion_requested_at' }),
73
+ __metadata("design:type", Date)
74
+ ], UserModel.prototype, "deletionRequestedAt", void 0);
64
75
  __decorate([
65
76
  OneToMany('UserBadgeModel', 'user'),
66
77
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIrE,IAAM,SAAS,GAAf,MAAM,SAAS;IAEpB,EAAE,CAAU;IAGZ,KAAK,CAAU;IAGf,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,IAAI,CAAU;IAGd,YAAY,CAAU;IAGtB,GAAG,CAAU;IAGb,QAAQ,CAAU;IAGlB,GAAG,CAAU;IAGb,gBAAgB,CAAU;IAG1B,UAAU,CAAoB;CAC/B,CAAA;AA/BC;IADC,sBAAsB,CAAC,MAAM,CAAC;;qCACnB;AAGZ;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;wCACxC;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCAC7B;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;yCACzB;AAGhB;IADC,MAAM,EAAE;;uCACK;AAGd;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;+CACZ;AAGtB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC5B;AAGb;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;;2CAC7C;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC/B;AAGb;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;;mDACtC;AAG1B;IADC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;;6CACN;AAhCnB,SAAS;IADrB,MAAM,CAAC,OAAO,CAAC;GACH,SAAS,CAiCrB"}
1
+ {"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGtD,IAAM,SAAS,GAAf,MAAM,SAAS;IAEpB,EAAE,CAAU;IAGZ,KAAK,CAAU;IAGf,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,IAAI,CAAU;IAGd,YAAY,CAAU;IAGtB,GAAG,CAAU;IAGb,QAAQ,CAAU;IAGlB,GAAG,CAAU;IAGb,gBAAgB,CAAU;IAG1B,MAAM,CAAc;IAGpB,mBAAmB,CAAQ;IAG3B,UAAU,CAAoB;CAC/B,CAAA;AArCC;IADC,sBAAsB,CAAC,MAAM,CAAC;;qCACnB;AAGZ;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;wCACxC;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCAC7B;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;yCACzB;AAGhB;IADC,MAAM,EAAE;;uCACK;AAGd;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;+CACZ;AAGtB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC5B;AAGb;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;;2CAC7C;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC/B;AAGb;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;;mDACtC;AAG1B;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;;yCAChD;AAGpB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;8BACzD,IAAI;sDAAC;AAG3B;IADC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;;6CACN;AAtCnB,SAAS;IADrB,MAAM,CAAC,OAAO,CAAC;GACH,SAAS,CAuCrB"}
@@ -7,6 +7,8 @@ export interface IUserRepository {
7
7
  create(user: Partial<UserEntity>): Promise<UserEntity>;
8
8
  update(id: string, data: Partial<UserEntity>): Promise<UserEntity | null>;
9
9
  delete(id: string): Promise<boolean>;
10
+ requestDeletionWithUserDeleted(id: string): Promise<UserEntity | null>;
11
+ finalizeDeletion(id: string): Promise<boolean>;
10
12
  addBadgeToUser(userId: string, badgeId: string): Promise<void>;
11
13
  removeBadgeFromUser(userId: string, badgeId: string): Promise<void>;
12
14
  incrementImpactScore(userId: string, score: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"user.repository.d.ts","sourceRoot":"","sources":["../../../src/repositories/interfaces/user.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"user.repository.d.ts","sourceRoot":"","sources":["../../../src/repositories/interfaces/user.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,8BAA8B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACvE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1D"}
@@ -16,6 +16,8 @@ export declare class PostgresUserRepository extends BaseRepository<UserModel, Us
16
16
  findAll(limit?: number, offset?: number): Promise<[UserEntity[], number]>;
17
17
  addBadgeToUser(userId: string, badgeId: string): Promise<void>;
18
18
  removeBadgeFromUser(userId: string, badgeId: string): Promise<void>;
19
+ requestDeletionWithUserDeleted(id: string): Promise<UserEntity | null>;
20
+ finalizeDeletion(id: string): Promise<boolean>;
19
21
  incrementImpactScore(userId: string, score: number): Promise<void>;
20
22
  createWithHashedPassword(user: Partial<UserEntity>, password: string): Promise<UserEntity>;
21
23
  findPasswordHashByEmail(email: string): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-user.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIlE,qBACa,sBACX,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAC5C,YAAW,eAAe;IAIS,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADhC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EACZ,WAAW,EAAE,MAAM;IAKvD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU;cAMnC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;IAQ/E,OAAO,CAAC,YAAY;IAIL,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlD,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAQzE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ1F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ9D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAahG"}
1
+ {"version":3,"file":"postgres-user.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAqC,MAAM,wBAAwB,CAAC;AAK3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIlE,qBACa,sBACX,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAC5C,YAAW,eAAe;IAIS,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADhC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EACZ,WAAW,EAAE,MAAM;IAKvD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU;cAMnC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;IAQ/E,OAAO,CAAC,YAAY;IAIL,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlD,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAQzE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnE,8BAA8B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAwCtE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ1F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ9D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAahG"}
@@ -12,9 +12,13 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { Injectable, Inject } from '@nestjs/common';
14
14
  import { InjectRepository } from '@nestjs/typeorm';
15
- import { BaseRepository } from '@volontariapp/database';
15
+ import { BaseRepository, EventQueueEntity, EventQueueModel } from '@volontariapp/database';
16
+ import { EventQueueRepository } from '@volontariapp/outbox';
17
+ import { UserEventMessagingType } from '@volontariapp/messaging';
18
+ import { Streams } from '@volontariapp/shared';
16
19
  import { UserModel } from '../models/user.model.js';
17
20
  import { UserEntity } from '../entities/user.entity.js';
21
+ import { UserStatus } from '../entities/user-status.enum.js';
18
22
  import { encryptDeterministic, decrypt } from '@volontariapp/crypto';
19
23
  import { EMAIL_ENCRYPTION_SECRET } from '../constants.js';
20
24
  let PostgresUserRepository = class PostgresUserRepository extends BaseRepository {
@@ -68,6 +72,46 @@ let PostgresUserRepository = class PostgresUserRepository extends BaseRepository
68
72
  badge: { id: badgeId },
69
73
  });
70
74
  }
75
+ async requestDeletionWithUserDeleted(id) {
76
+ return this.executeInTransaction(async (queryRunner) => {
77
+ const model = await queryRunner.manager.findOne(this.modelClass, {
78
+ where: this.buildIdWhere(id),
79
+ });
80
+ if (!model)
81
+ return null;
82
+ const entity = this.toEntity(model);
83
+ if (model.status === UserStatus.PENDING_DELETION)
84
+ return entity;
85
+ model.status = UserStatus.PENDING_DELETION;
86
+ model.deletionRequestedAt = new Date();
87
+ await queryRunner.manager.save(this.modelClass, model);
88
+ const payload = { id: model.id, role: entity.role };
89
+ const eventQueueEntity = EventQueueEntity.createEvent({
90
+ type: UserEventMessagingType.USER_DELETED,
91
+ emitter: 'ms-user',
92
+ emitterId: model.id,
93
+ payload,
94
+ targetServices: [
95
+ Streams.USER_DELETED,
96
+ Streams.SOCIAL_USER,
97
+ Streams.USER_DELETED_POST,
98
+ Streams.USER_DELETED_EVENT,
99
+ Streams.USER_DELETED_STORAGE,
100
+ ],
101
+ });
102
+ const eventQueueRepo = new EventQueueRepository(queryRunner.manager.getRepository(EventQueueModel));
103
+ await eventQueueRepo.create(eventQueueEntity);
104
+ entity.status = UserStatus.PENDING_DELETION;
105
+ return entity;
106
+ });
107
+ }
108
+ async finalizeDeletion(id) {
109
+ const result = await this.repository.delete({
110
+ ...this.buildIdWhere(id),
111
+ status: UserStatus.PENDING_DELETION,
112
+ });
113
+ return (result.affected ?? 0) > 0;
114
+ }
71
115
  async incrementImpactScore(userId, score) {
72
116
  const where = this.buildIdWhere(userId);
73
117
  await this.increment(where, 'totalImpactScore', score);
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-user.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,IAAM,sBAAsB,GAA5B,MAAM,sBACX,SAAQ,cAAqC;IAKO;IAFpD,YAC+B,UAAiC,EACZ,WAAmB;QAErE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAFS,gBAAW,GAAX,WAAW,CAAQ;IAGvE,CAAC;IAEe,QAAQ,CAAC,KAAgB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEkB,OAAO,CAAC,MAA2B;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACxB,KAA4B,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,EAAmB;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,MAAe;QAC3C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YACzD,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAe;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,aAAa,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACpB,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,OAAe;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,aAAa,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACpB,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,KAAa;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAyB,EAAE,QAAgB;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,KAAa;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,EAAE,CAAC,cAAc,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,cAAc,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAyB;QAChE,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAEjD,IAAI,YAAY,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;gBAClD,YAAY;aACwB,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA3GY,sBAAsB;IADlC,UAAU,EAAE;IAMR,WAAA,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3B,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;;GANvB,sBAAsB,CA2GlC"}
1
+ {"version":3,"file":"postgres-user.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ export declare class UserService {
15
15
  findByRna(rna: UserRna): Promise<UserEntity>;
16
16
  findAll(pagination?: PaginationInput): Promise<UserListResult>;
17
17
  update(id: UserId, input: UpdateUserInput): Promise<UserEntity>;
18
- delete(id: UserId): Promise<void>;
18
+ requestDeletion(id: UserId): Promise<void>;
19
+ finalizeDeletion(id: UserId): Promise<void>;
19
20
  addBadgeToUser(userId: UserId, badgeId: BadgeId): Promise<void>;
20
21
  removeBadgeFromUser(userId: UserId, badgeId: BadgeId): Promise<void>;
21
22
  incrementImpactScore(userId: UserId, score: ImpactScore): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAYxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,GACZ,CAAC;AAEF,qBACa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAL/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAIjD,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,YAAY;YAG/B,EAAE;IAWV,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAWzC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAYlD,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5C,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAO9D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAkC/D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAepE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAY9E"}
1
+ {"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAYxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,GACZ,CAAC;AAEF,qBACa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAL/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAIjD,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,YAAY;YAG/B,EAAE;IAWV,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAWzC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAYlD,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5C,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAO9D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAkC/D,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAepE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAY9E"}
@@ -99,13 +99,19 @@ let UserService = UserService_1 = class UserService {
99
99
  }
100
100
  return updatedUser;
101
101
  }
102
- async delete(id) {
103
- const deleted = await this.db(`deleting user with id ${id.value}`, () => this.userRepository.delete(id.value));
104
- if (!deleted) {
102
+ async requestDeletion(id) {
103
+ const user = await this.db(`requesting deletion of user with id ${id.value}`, () => this.userRepository.requestDeletionWithUserDeleted(id.value));
104
+ if (!user) {
105
105
  this.logger.warn(`User with id ${id.value} not found for deletion`);
106
106
  throw USER_NOT_FOUND(id.value);
107
107
  }
108
108
  }
109
+ async finalizeDeletion(id) {
110
+ const deleted = await this.db(`finalizing deletion of user with id ${id.value}`, () => this.userRepository.finalizeDeletion(id.value));
111
+ if (!deleted) {
112
+ this.logger.warn(`User with id ${id.value} not pending deletion or already deleted`);
113
+ }
114
+ }
109
115
  async addBadgeToUser(userId, badgeId) {
110
116
  const user = await this.findById(userId);
111
117
  await this.badgeService.findById(badgeId);
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,GACZ,CAAC;AAGK,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAKH;IACA;IALF,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,aAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpE,YAEmB,cAA+B,EAC/B,YAA0B;QAD1B,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IAC1C,CAAC;IAEI,KAAK,CAAC,EAAE,CAAI,OAAe,EAAE,EAAoB;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACpC,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CACvC,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC;YACvD,MAAM,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAgB;QAChC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,8BAA8B,SAAS,EAAE,EAAE,GAAG,EAAE,CACzE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAC7C,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,SAAS,YAAY,CAAC,CAAC;YAChE,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAY;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,uBAAuB,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAClE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,YAAY,CAAC,CAAC;YACzD,MAAM,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA4B;QACxC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAC7D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CACnE,CAAC;QACF,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAsB;QAC7C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,GAAG,4BAA4B,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YACjF,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,YAAgC,CAAC;QAErC,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;gBACnC,MAAM,cAAc,EAAE,CAAC;YACzB,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;gBAChF,MAAM,cAAc,EAAE,CAAC;YACzB,CAAC;YACD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAC1E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;YACnC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,YAAY;SACb,CAAC,CACH,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,uBAAuB,CAAC,CAAC;YAClE,MAAM,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,uCAAuC,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CACjF,IAAI,CAAC,cAAc,CAAC,8BAA8B,CAAC,EAAE,CAAC,KAAK,CAAC,CAC7D,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,yBAAyB,CAAC,CAAC;YACpE,MAAM,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,uCAAuC,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CACpF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,0CAA0C,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAgB;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,KAAK,8BAA8B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5F,MAAM,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAC1E,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,OAAgB;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,MAAM,CAAC,KAAK,gCAAgC,OAAO,CAAC,KAAK,cAAc,CACxF,CAAC;YACF,MAAM,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,OAAO,CAAC,KAAK,cAAc,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAC9E,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,KAAkB;QAC3D,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8BAA8B,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,MAAM,CAAC,KAAK,EAAE,CAChF,CAAC;YACF,MAAM,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,EAAE,CACX,qCAAqC,MAAM,CAAC,KAAK,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAChF,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAC1E,CAAC;IACJ,CAAC;CACF,CAAA;AA3JY,WAAW;IADvB,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;6CAEA,YAAY;GANlC,WAAW,CA2JvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.factory.d.ts","sourceRoot":"","sources":["../../../../src/test/__test-utils__/factories/user.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,eAAO,MAAM,iBAAiB,QAAO,MAGpC,CAAC;AAEF,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU;IAgB7D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU,EAAE;IAIlF,MAAM,CAAC,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAM,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;CAc3F"}
1
+ {"version":3,"file":"user.factory.d.ts","sourceRoot":"","sources":["../../../../src/test/__test-utils__/factories/user.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAI9D,eAAO,MAAM,iBAAiB,QAAO,MAGpC,CAAC;AAEF,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU;IAiB7D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU,EAAE;IAIlF,MAAM,CAAC,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAM,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;CAe3F"}
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { UserEntity } from '../../../entities/user.entity.js';
3
3
  import { UserRoles } from '@volontariapp/shared';
4
+ import { UserStatus } from '../../../entities/user-status.enum.js';
4
5
  export const generateRandomRna = () => {
5
6
  const digits = Math.random().toString().slice(2, 11);
6
7
  return `W${digits.padEnd(9, '0')}`;
@@ -17,6 +18,7 @@ export class UserFactory {
17
18
  bio: `Bio for user ${uid}`,
18
19
  role: UserRoles.VOLUNTEER,
19
20
  totalImpactScore: 0,
21
+ status: UserStatus.ACTIVE,
20
22
  badges: [],
21
23
  ...overrides,
22
24
  });
@@ -34,6 +36,7 @@ export class UserFactory {
34
36
  bio: `Bio for user ${uid}`,
35
37
  role: UserRoles.VOLUNTEER,
36
38
  totalImpactScore: 0,
39
+ status: UserStatus.ACTIVE,
37
40
  badges: [],
38
41
  ...overrides,
39
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"user.factory.js","sourceRoot":"","sources":["../../../../src/test/__test-utils__/factories/user.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,YAAiC,EAAE;QAC9C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,EAAE;YACrC,EAAE,EAAE,UAAU,EAAE;YAChB,KAAK,EAAE,QAAQ,GAAG,cAAc;YAChC,MAAM,EAAE,QAAQ,GAAG,EAAE;YACrB,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAC9B,GAAG,EAAE,gBAAgB,GAAG,EAAE;YAC1B,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,GAAG,SAAS;SACb,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAa,EAAE,YAAiC,EAAE;QACjE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,YAA6C,EAAE;QAC/D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,KAAK,EAAE,QAAQ,GAAG,cAAc;YAChC,MAAM,EAAE,QAAQ,GAAG,EAAE;YACrB,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAC9B,GAAG,EAAE,gBAAgB,GAAG,EAAE;YAC1B,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"user.factory.js","sourceRoot":"","sources":["../../../../src/test/__test-utils__/factories/user.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,YAAiC,EAAE;QAC9C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,EAAE;YACrC,EAAE,EAAE,UAAU,EAAE;YAChB,KAAK,EAAE,QAAQ,GAAG,cAAc;YAChC,MAAM,EAAE,QAAQ,GAAG,EAAE;YACrB,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAC9B,GAAG,EAAE,gBAAgB,GAAG,EAAE;YAC1B,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,MAAM,EAAE,EAAE;YACV,GAAG,SAAS;SACb,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAa,EAAE,YAAiC,EAAE;QACjE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,YAA6C,EAAE;QAC/D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,KAAK,EAAE,QAAQ,GAAG,cAAc;YAChC,MAAM,EAAE,QAAQ,GAAG,EAAE;YACrB,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAC9B,GAAG,EAAE,gBAAgB,GAAG,EAAE;YAC1B,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,MAAM,EAAE,EAAE;YACV,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ //# sourceMappingURL=user-deletion.int.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-deletion.int.spec.d.ts","sourceRoot":"","sources":["../../../src/test/integration/user-deletion.int.spec.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,79 @@
1
+ import 'reflect-metadata';
2
+ import { describe, it, expect, beforeAll, afterAll, beforeEach } from '@jest/globals';
3
+ import { testDataSource, initializeTestDb, closeTestDb, truncateAll, getTestRepository, } from '../data-source.js';
4
+ import { UserModel } from '../../models/user.model.js';
5
+ import { PostgresUserRepository } from '../../repositories/postgres-user.repository.js';
6
+ import { UserFactory } from '../__test-utils__/factories/user.factory.js';
7
+ import { UserStatus } from '../../entities/user-status.enum.js';
8
+ import { hashPassword } from '@volontariapp/crypto';
9
+ import { Streams } from '@volontariapp/shared';
10
+ import { UserEventMessagingType } from '@volontariapp/messaging';
11
+ describe('User deletion (Integration)', () => {
12
+ let userRepository;
13
+ beforeAll(async () => {
14
+ await initializeTestDb();
15
+ userRepository = new PostgresUserRepository(getTestRepository(UserModel), 'test-email-encryption-secret-32ch');
16
+ });
17
+ afterAll(async () => {
18
+ await closeTestDb();
19
+ });
20
+ beforeEach(async () => {
21
+ await truncateAll();
22
+ });
23
+ const createUser = () => userRepository.createWithHashedPassword(UserFactory.buildInput(), hashPassword('Password123!'));
24
+ const deletedEvents = () => testDataSource.query('SELECT * FROM event_queue WHERE type = $1', [
25
+ UserEventMessagingType.USER_DELETED,
26
+ ]);
27
+ describe('requestDeletionWithUserDeleted()', () => {
28
+ it('should mark the user PENDING_DELETION and keep the row', async () => {
29
+ const created = await createUser();
30
+ const result = await userRepository.requestDeletionWithUserDeleted(created.id);
31
+ expect(result?.status).toBe(UserStatus.PENDING_DELETION);
32
+ const found = await userRepository.findById(created.id);
33
+ expect(found?.status).toBe(UserStatus.PENDING_DELETION);
34
+ expect(found?.deletionRequestedAt).toBeDefined();
35
+ });
36
+ it('should write user.deleted to the outbox for every domain stream', async () => {
37
+ const created = await createUser();
38
+ await userRepository.requestDeletionWithUserDeleted(created.id);
39
+ const events = await deletedEvents();
40
+ expect(events).toHaveLength(1);
41
+ expect(events[0].emitter).toBe('ms-user');
42
+ expect(events[0].emitterId).toBe(created.id);
43
+ expect([...events[0].target_services].sort()).toEqual([
44
+ Streams.USER_DELETED,
45
+ Streams.SOCIAL_USER,
46
+ Streams.USER_DELETED_POST,
47
+ Streams.USER_DELETED_EVENT,
48
+ Streams.USER_DELETED_STORAGE,
49
+ ].sort());
50
+ });
51
+ it('should not emit a second event when already pending', async () => {
52
+ const created = await createUser();
53
+ await userRepository.requestDeletionWithUserDeleted(created.id);
54
+ await userRepository.requestDeletionWithUserDeleted(created.id);
55
+ expect(await deletedEvents()).toHaveLength(1);
56
+ });
57
+ it('should return null and emit nothing when the user does not exist', async () => {
58
+ const result = await userRepository.requestDeletionWithUserDeleted('00000000-0000-0000-0000-000000000000');
59
+ expect(result).toBeNull();
60
+ expect(await deletedEvents()).toHaveLength(0);
61
+ });
62
+ });
63
+ describe('finalizeDeletion()', () => {
64
+ it('should delete a PENDING_DELETION user', async () => {
65
+ const created = await createUser();
66
+ await userRepository.requestDeletionWithUserDeleted(created.id);
67
+ const result = await userRepository.finalizeDeletion(created.id);
68
+ expect(result).toBe(true);
69
+ expect(await userRepository.findById(created.id)).toBeNull();
70
+ });
71
+ it('should refuse to delete an ACTIVE user', async () => {
72
+ const created = await createUser();
73
+ const result = await userRepository.finalizeDeletion(created.id);
74
+ expect(result).toBe(false);
75
+ expect(await userRepository.findById(created.id)).not.toBeNull();
76
+ });
77
+ });
78
+ });
79
+ //# sourceMappingURL=user-deletion.int.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-deletion.int.spec.js","sourceRoot":"","sources":["../../../src/test/integration/user-deletion.int.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddUserDeletionStatus1791400000000 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1791400000000-AddUserDeletionStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1791400000000-AddUserDeletionStatus.d.ts","sourceRoot":"","sources":["../../../../src/test/migrations/domain/1791400000000-AddUserDeletionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,kCAAmC,YAAW,kBAAkB;IAC3E,IAAI,SAAwC;IAE/B,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAI3D"}
@@ -0,0 +1,12 @@
1
+ export class AddUserDeletionStatus1791400000000 {
2
+ name = 'AddUserDeletionStatus1791400000000';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`ALTER TABLE "users" ADD COLUMN "status" varchar(32) NOT NULL DEFAULT 'ACTIVE'`);
5
+ await queryRunner.query(`ALTER TABLE "users" ADD COLUMN "deletion_requested_at" TIMESTAMPTZ`);
6
+ }
7
+ async down(queryRunner) {
8
+ await queryRunner.query(`ALTER TABLE "users" DROP COLUMN "deletion_requested_at"`);
9
+ await queryRunner.query(`ALTER TABLE "users" DROP COLUMN "status"`);
10
+ }
11
+ }
12
+ //# sourceMappingURL=1791400000000-AddUserDeletionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1791400000000-AddUserDeletionStatus.js","sourceRoot":"","sources":["../../../../src/test/migrations/domain/1791400000000-AddUserDeletionStatus.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kCAAkC;IAC7C,IAAI,GAAG,oCAAoC,CAAC;IAErC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,+EAA+E,CAChF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAChG,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACnF,MAAM,WAAW,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -8,6 +8,7 @@ import { createUserRepositoryMock } from '../__test-utils__/mocks/user.repositor
8
8
  import { BadgeFactory } from '../__test-utils__/factories/badge.factory.js';
9
9
  import { UserId, UserEmail, UserRna, UpdateUserInput, PaginationInput, ImpactScore, } from '../../value-objects/index.js';
10
10
  import { BadgeId } from '../../value-objects/index.js';
11
+ import { UserStatus } from '../../entities/user-status.enum.js';
11
12
  describe('UserService (Unit)', () => {
12
13
  let service;
13
14
  let mockRepository;
@@ -257,19 +258,19 @@ describe('UserService (Unit)', () => {
257
258
  });
258
259
  });
259
260
  });
260
- describe('delete()', () => {
261
- describe('HAPPY PATH: User deleted', () => {
262
- it('should delete user when found', async () => {
263
- mockRepository.delete.mockResolvedValue(true);
264
- await service.delete(new UserId('user-123'));
265
- expect(mockRepository.delete.mock.calls[mockRepository.delete.mock.calls.length - 1]).toEqual(['user-123']);
266
- expect(mockRepository.delete.mock.calls).toHaveLength(1);
261
+ describe('requestDeletion()', () => {
262
+ describe('HAPPY PATH: Deletion requested', () => {
263
+ it('should mark the user as pending deletion when found', async () => {
264
+ mockRepository.requestDeletionWithUserDeleted.mockResolvedValue(UserFactory.build({ id: 'user-123', status: UserStatus.PENDING_DELETION }));
265
+ await service.requestDeletion(new UserId('user-123'));
266
+ expect(mockRepository.requestDeletionWithUserDeleted.mock.calls).toEqual([['user-123']]);
267
+ expect(mockRepository.delete.mock.calls).toHaveLength(0);
267
268
  });
268
269
  });
269
270
  describe('SAD PATH: User not found', () => {
270
271
  it('should throw NOT_FOUND when user does not exist', async () => {
271
- mockRepository.delete.mockResolvedValue(false);
272
- const error = await service.delete(new UserId('missing')).catch((e) => e);
272
+ mockRepository.requestDeletionWithUserDeleted.mockResolvedValue(null);
273
+ const error = await service.requestDeletion(new UserId('missing')).catch((e) => e);
273
274
  expect(error.code).toBe('NOT_FOUND');
274
275
  expect(error.message).toContain('missing');
275
276
  expect(loggerWarnSpy).toHaveBeenCalled();
@@ -277,13 +278,31 @@ describe('UserService (Unit)', () => {
277
278
  });
278
279
  describe('ERROR HANDLING: Database failures', () => {
279
280
  it('should throw DATABASE_ERROR when repository fails', async () => {
280
- mockRepository.delete.mockRejectedValue(new Error('Delete constraint violation'));
281
- const error = await service.delete(new UserId('user-1')).catch((e) => e);
281
+ mockRepository.requestDeletionWithUserDeleted.mockRejectedValue(new Error('Transaction failed'));
282
+ const error = await service.requestDeletion(new UserId('user-1')).catch((e) => e);
282
283
  expect(error.code).toBe('DATABASE_ERROR');
283
284
  expect(loggerErrorSpy).toHaveBeenCalled();
284
285
  });
285
286
  });
286
287
  });
288
+ describe('finalizeDeletion()', () => {
289
+ it('should physically delete the pending user', async () => {
290
+ mockRepository.finalizeDeletion.mockResolvedValue(true);
291
+ await service.finalizeDeletion(new UserId('user-123'));
292
+ expect(mockRepository.finalizeDeletion.mock.calls).toEqual([['user-123']]);
293
+ });
294
+ it('should be idempotent when the user is already gone', async () => {
295
+ mockRepository.finalizeDeletion.mockResolvedValue(false);
296
+ await service.finalizeDeletion(new UserId('user-123'));
297
+ expect(loggerWarnSpy).toHaveBeenCalled();
298
+ });
299
+ it('should throw DATABASE_ERROR when repository fails', async () => {
300
+ mockRepository.finalizeDeletion.mockRejectedValue(new Error('Delete failed'));
301
+ const error = await service.finalizeDeletion(new UserId('user-1')).catch((e) => e);
302
+ expect(error.code).toBe('DATABASE_ERROR');
303
+ expect(loggerErrorSpy).toHaveBeenCalled();
304
+ });
305
+ });
287
306
  describe('addBadgeToUser()', () => {
288
307
  describe('HAPPY PATH: Badge added successfully', () => {
289
308
  it('should add badge to user when badge not already present', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.unit.spec.js","sourceRoot":"","sources":["../../../src/test/unit/user.service.unit.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.service.unit.spec.js","sourceRoot":"","sources":["../../../src/test/unit/user.service.unit.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volontariapp/domain-user",
3
- "version": "2.9.0",
3
+ "version": "2.10.0-snap-69a47da",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -39,15 +39,16 @@
39
39
  "migration:run": "TYPEORM_MIGRATION_RUN=true yarn typeorm migration:run -d src/test/data-source.ts"
40
40
  },
41
41
  "dependencies": {
42
- "@volontariapp/auth": "3.3.16",
42
+ "@volontariapp/auth": "3.3.17-snap-69a47da",
43
43
  "@volontariapp/contracts": "4.3.14",
44
44
  "@volontariapp/crypto": "0.3.11",
45
- "@volontariapp/database": "3.4.29",
45
+ "@volontariapp/database": "3.4.30-snap-69a47da",
46
46
  "@volontariapp/errors": "0.6.3",
47
47
  "@volontariapp/errors-nest": "0.13.3",
48
48
  "@volontariapp/logger": "0.3.0",
49
- "@volontariapp/messaging": "2.22.0",
50
- "@volontariapp/shared": "0.12.0"
49
+ "@volontariapp/messaging": "2.23.0-snap-69a47da",
50
+ "@volontariapp/outbox": "0.9.67-snap-69a47da",
51
+ "@volontariapp/shared": "0.13.0-snap-69a47da"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@nestjs/typeorm": "^11.0.1",