@volontariapp/domain-user 2.3.7-snap-8b8fb69 → 2.3.7-snap-e3bade7

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.
@@ -7,6 +7,7 @@ export declare class AuthService {
7
7
  private readonly jwtService;
8
8
  private readonly logger;
9
9
  constructor(userRepository: IUserRepository, jwtService: JwtService);
10
+ private db;
10
11
  signUp(command: SignUpInput): Promise<SignUpOutput>;
11
12
  logIn(command: LoginInput): Promise<AuthTokens>;
12
13
  refreshTokens(command: RefreshTokensInput): Promise<AuthTokens>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAE/C,qBACa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAIjD,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,UAAU;IAGnC,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAyCnD,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB/C,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBtE"}
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAE/C,qBACa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAIjD,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,UAAU;YAG3B,EAAE;IAWV,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA0CnD,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB/C,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;CAetE"}
@@ -29,12 +29,28 @@ let AuthService = AuthService_1 = class AuthService {
29
29
  this.userRepository = userRepository;
30
30
  this.jwtService = jwtService;
31
31
  }
32
+ async db(context, fn) {
33
+ try {
34
+ return await fn();
35
+ }
36
+ catch (error) {
37
+ if (isBaseError(error))
38
+ throw error;
39
+ const err = error;
40
+ this.logger.error(`Error while ${context}: ${err.message}`);
41
+ throw DATABASE_ERROR(context, err.message);
42
+ }
43
+ }
32
44
  async signUp(command) {
33
45
  const existingUser = await this.userRepository.findByEmail(command.email);
34
46
  if (existingUser) {
35
47
  this.logger.warn(`Attempt to sign up with already registered email hash: ${calculateHash(command.email).slice(0, 8)}`);
36
48
  throw USER_ALREADY_EXISTS(command.email);
37
49
  }
50
+ if (command.rna != null && !UserEntity.isValidRna(command.rna)) {
51
+ this.logger.warn(`Invalid RNA ${command.rna} for new user`);
52
+ throw INVALID_RNA(command.rna);
53
+ }
38
54
  const user = UserEntity.create({
39
55
  email: command.email,
40
56
  pseudo: command.pseudo,
@@ -43,29 +59,23 @@ let AuthService = AuthService_1 = class AuthService {
43
59
  logoPath: command.logoPath,
44
60
  });
45
61
  const hashedPassword = hashPassword(command.password);
46
- try {
47
- if (user.rna != null && !UserEntity.isValidRna(user.rna)) {
48
- this.logger.warn(`Invalid RNA ${user.rna} for new user`);
49
- throw INVALID_RNA(user.rna);
62
+ const userEntity = await this.db('creating user', async () => {
63
+ try {
64
+ return await this.userRepository.createWithHashedPassword(user, hashedPassword);
50
65
  }
51
- const userEntity = await this.userRepository.createWithHashedPassword(user, hashedPassword);
52
- const authUser = { id: userEntity.id, email: userEntity.email, role: userEntity.role };
53
- const [accessToken, refreshToken] = await Promise.all([
54
- this.jwtService.signAccessToken(authUser),
55
- this.jwtService.signRefreshToken(authUser),
56
- ]);
57
- return new SignUpOutput(userEntity, new AuthTokens(accessToken, refreshToken));
58
- }
59
- catch (error) {
60
- if (isBaseError(error))
66
+ catch (error) {
67
+ if (isDatabaseDriverError(error) && error.code === '23505') {
68
+ throw USER_ALREADY_EXISTS(user.email);
69
+ }
61
70
  throw error;
62
- if (isDatabaseDriverError(error) && error.code === '23505') {
63
- throw USER_ALREADY_EXISTS(user.email);
64
71
  }
65
- const err = error;
66
- this.logger.error(`Error while creating user: ${err.message}`);
67
- throw DATABASE_ERROR('creating user', err.message);
68
- }
72
+ });
73
+ const authUser = { id: userEntity.id, email: userEntity.email, role: userEntity.role };
74
+ const [accessToken, refreshToken] = await Promise.all([
75
+ this.jwtService.signAccessToken(authUser),
76
+ this.jwtService.signRefreshToken(authUser),
77
+ ]);
78
+ return new SignUpOutput(userEntity, new AuthTokens(accessToken, refreshToken));
69
79
  }
70
80
  async logIn(command) {
71
81
  const user = await this.userRepository.findByEmail(command.email);
@@ -86,19 +96,20 @@ let AuthService = AuthService_1 = class AuthService {
86
96
  return new AuthTokens(accessToken, refreshToken);
87
97
  }
88
98
  async refreshTokens(command) {
99
+ let payload;
89
100
  try {
90
- const payload = await this.jwtService.verifyRefreshToken(command.refreshToken);
91
- const authUser = { id: payload.id, role: payload.role };
92
- const [accessToken, refreshToken] = await Promise.all([
93
- this.jwtService.signAccessToken(authUser),
94
- this.jwtService.signRefreshToken(authUser),
95
- ]);
96
- return new AuthTokens(accessToken, refreshToken);
101
+ payload = await this.jwtService.verifyRefreshToken(command.refreshToken);
97
102
  }
98
- catch (error) {
99
- this.logger.warn(`Invalid refresh token attempt: ${error instanceof Error ? error.message : String(error)}`);
103
+ catch {
104
+ this.logger.warn(`Invalid refresh token attempt`);
100
105
  throw INVALID_REFRESH_TOKEN();
101
106
  }
107
+ const authUser = { id: payload.id, role: payload.role };
108
+ const [accessToken, refreshToken] = await Promise.all([
109
+ this.jwtService.signAccessToken(authUser),
110
+ this.jwtService.signRefreshToken(authUser),
111
+ ]);
112
+ return new AuthTokens(accessToken, refreshToken);
102
113
  }
103
114
  };
104
115
  AuthService = AuthService_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare class BadgeService {
6
6
  private readonly badgeRepository;
7
7
  private readonly logger;
8
8
  constructor(badgeRepository: IBadgeRepository);
9
+ private db;
9
10
  findById(id: BadgeId): Promise<BadgeEntity>;
10
11
  findBySlug(slug: BadgeSlug): Promise<BadgeEntity>;
11
12
  findAll(): Promise<BadgeEntity[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"badge.service.d.ts","sourceRoot":"","sources":["../../src/services/badge.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEnG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAElE,qBACa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAJlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;gBAIlD,eAAe,EAAE,gBAAgB;IAG9C,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB3C,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBjD,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAWjC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYrD,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBrD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBlE,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAczC"}
1
+ {"version":3,"file":"badge.service.d.ts","sourceRoot":"","sources":["../../src/services/badge.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEnG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAElE,qBACa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAJlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;gBAIlD,eAAe,EAAE,gBAAgB;YAGtC,EAAE;IAWV,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAW3C,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAWjD,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAIjC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOrD,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBrD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBlE,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CASzC"}
@@ -24,122 +24,83 @@ let BadgeService = BadgeService_1 = class BadgeService {
24
24
  constructor(badgeRepository) {
25
25
  this.badgeRepository = badgeRepository;
26
26
  }
27
- async findById(id) {
27
+ async db(context, fn) {
28
28
  try {
29
- const badge = await this.badgeRepository.findById(id.value);
30
- if (!badge) {
31
- this.logger.warn(`Badge with id ${id.value} not found`);
32
- throw BADGE_NOT_FOUND(id.value, 'id');
33
- }
34
- return badge;
29
+ return await fn();
35
30
  }
36
31
  catch (error) {
37
32
  if (isBaseError(error))
38
33
  throw error;
39
34
  const err = error;
40
- this.logger.error(`Error while finding badge by id ${id.value}: ${err.message}`);
41
- throw DATABASE_ERROR(`finding badge by id ${id.value}`, err.message);
35
+ this.logger.error(`Error while ${context}: ${err.message}`);
36
+ throw DATABASE_ERROR(context, err.message);
42
37
  }
43
38
  }
44
- async findBySlug(slug) {
45
- try {
46
- const badge = await this.badgeRepository.findBySlug(slug.value);
47
- if (!badge) {
48
- this.logger.warn(`Badge with slug ${slug.value} not found`);
49
- throw BADGE_NOT_FOUND(slug.value, 'slug');
50
- }
51
- return badge;
39
+ async findById(id) {
40
+ const badge = await this.db(`finding badge by id ${id.value}`, () => this.badgeRepository.findById(id.value));
41
+ if (!badge) {
42
+ this.logger.warn(`Badge with id ${id.value} not found`);
43
+ throw BADGE_NOT_FOUND(id.value, 'id');
52
44
  }
53
- catch (error) {
54
- if (isBaseError(error))
55
- throw error;
56
- const err = error;
57
- this.logger.error(`Error while finding badge by slug ${slug.value}: ${err.message}`);
58
- throw DATABASE_ERROR(`finding badge by slug ${slug.value}`, err.message);
45
+ return badge;
46
+ }
47
+ async findBySlug(slug) {
48
+ const badge = await this.db(`finding badge by slug ${slug.value}`, () => this.badgeRepository.findBySlug(slug.value));
49
+ if (!badge) {
50
+ this.logger.warn(`Badge with slug ${slug.value} not found`);
51
+ throw BADGE_NOT_FOUND(slug.value, 'slug');
59
52
  }
53
+ return badge;
60
54
  }
61
55
  async findAll() {
62
- try {
63
- return await this.badgeRepository.findAll();
64
- }
65
- catch (error) {
66
- if (isBaseError(error))
67
- throw error;
68
- const err = error;
69
- this.logger.error(`Error while finding all badges: ${err.message}`);
70
- throw DATABASE_ERROR('finding all badges', err.message);
71
- }
56
+ return this.db('finding all badges', () => this.badgeRepository.findAll());
72
57
  }
73
58
  async findManyByIds(ids) {
74
- try {
75
- return await this.badgeRepository.findManyByIds(ids.map((id) => id.value));
76
- }
77
- catch (error) {
78
- if (isBaseError(error))
79
- throw error;
80
- const err = error;
81
- const raw = ids.map((id) => id.value).join(', ');
82
- this.logger.error(`Error while finding badges by ids ${raw}: ${err.message}`);
83
- throw DATABASE_ERROR(`finding badges by ids ${raw}`, err.message);
84
- }
59
+ const raw = ids.map((id) => id.value).join(', ');
60
+ return this.db(`finding badges by ids ${raw}`, () => this.badgeRepository.findManyByIds(ids.map((id) => id.value)));
85
61
  }
86
62
  async create(input) {
87
- try {
88
- return await this.badgeRepository.create({
89
- name: input.name,
90
- slug: input.slug,
91
- description: input.description,
92
- iconPath: input.iconPath,
93
- });
63
+ const existingBadge = await this.badgeRepository.findBySlug(input.slug);
64
+ if (existingBadge) {
65
+ this.logger.warn(`Attempt to create badge with already existing slug: ${input.slug}`);
66
+ throw BADGE_ALREADY_EXISTS(input.slug);
94
67
  }
95
- catch (error) {
96
- if (isBaseError(error))
68
+ return this.db('creating badge', async () => {
69
+ try {
70
+ return await this.badgeRepository.create({
71
+ name: input.name,
72
+ slug: input.slug,
73
+ description: input.description,
74
+ iconPath: input.iconPath,
75
+ });
76
+ }
77
+ catch (error) {
78
+ if (isDatabaseDriverError(error) && error.code === '23505') {
79
+ this.logger.warn(`Badge with slug ${input.slug} already exists`);
80
+ throw BADGE_ALREADY_EXISTS(input.slug);
81
+ }
97
82
  throw error;
98
- if (isDatabaseDriverError(error) && error.code === '23505') {
99
- this.logger.warn(`Badge with slug ${input.slug} already exists`);
100
- throw BADGE_ALREADY_EXISTS(input.slug);
101
83
  }
102
- const err = error;
103
- this.logger.error(`Error while creating badge: ${err.message}`);
104
- throw DATABASE_ERROR('creating badge', err.message);
105
- }
84
+ });
106
85
  }
107
86
  async update(id, input) {
108
- try {
109
- const updatedBadge = await this.badgeRepository.update(id.value, {
110
- name: input.name,
111
- slug: input.slug,
112
- description: input.description,
113
- iconPath: input.iconPath,
114
- });
115
- if (!updatedBadge) {
116
- this.logger.warn(`Badge with id ${id.value} not found for update`);
117
- throw BADGE_NOT_FOUND(id.value, 'id');
118
- }
119
- return updatedBadge;
120
- }
121
- catch (error) {
122
- if (isBaseError(error))
123
- throw error;
124
- const err = error;
125
- this.logger.error(`Error while updating badge with id ${id.value}: ${err.message}`);
126
- throw DATABASE_ERROR(`updating badge with id ${id.value}`, err.message);
87
+ const updatedBadge = await this.db(`updating badge with id ${id.value}`, () => this.badgeRepository.update(id.value, {
88
+ name: input.name,
89
+ slug: input.slug,
90
+ description: input.description,
91
+ iconPath: input.iconPath,
92
+ }));
93
+ if (!updatedBadge) {
94
+ this.logger.warn(`Badge with id ${id.value} not found for update`);
95
+ throw BADGE_NOT_FOUND(id.value, 'id');
127
96
  }
97
+ return updatedBadge;
128
98
  }
129
99
  async delete(id) {
130
- try {
131
- const deleted = await this.badgeRepository.delete(id.value);
132
- if (!deleted) {
133
- this.logger.warn(`Badge with id ${id.value} not found for deletion`);
134
- throw BADGE_NOT_FOUND(id.value, 'id');
135
- }
136
- }
137
- catch (error) {
138
- if (isBaseError(error))
139
- throw error;
140
- const err = error;
141
- this.logger.error(`Error while deleting badge with id ${id.value}: ${err.message}`);
142
- throw DATABASE_ERROR(`deleting badge with id ${id.value}`, err.message);
100
+ const deleted = await this.db(`deleting badge with id ${id.value}`, () => this.badgeRepository.delete(id.value));
101
+ if (!deleted) {
102
+ this.logger.warn(`Badge with id ${id.value} not found for deletion`);
103
+ throw BADGE_NOT_FOUND(id.value, 'id');
143
104
  }
144
105
  }
145
106
  };
@@ -1 +1 @@
1
- {"version":3,"file":"badge.service.js","sourceRoot":"","sources":["../../src/services/badge.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"badge.service.js","sourceRoot":"","sources":["../../src/services/badge.service.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class UserService {
9
9
  private readonly badgeService;
10
10
  private readonly logger;
11
11
  constructor(userRepository: IUserRepository, badgeService: BadgeService);
12
+ private db;
12
13
  findById(id: UserId): Promise<UserEntity>;
13
14
  findByEmail(email: UserEmail): Promise<UserEntity>;
14
15
  findByRna(rna: UserRna): Promise<UserEntity>;
@@ -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;AAWxD,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;IAGvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBzC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAoBlD,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB5C,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAe9D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB/D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB9E"}
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;AAWxD,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;IAoB/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"}
@@ -29,162 +29,94 @@ let UserService = UserService_1 = class UserService {
29
29
  this.userRepository = userRepository;
30
30
  this.badgeService = badgeService;
31
31
  }
32
- async findById(id) {
32
+ async db(context, fn) {
33
33
  try {
34
- const user = await this.userRepository.findById(id.value);
35
- if (!user) {
36
- this.logger.warn(`User with id ${id.value} not found`);
37
- throw USER_NOT_FOUND(id.value);
38
- }
39
- return user;
34
+ return await fn();
40
35
  }
41
36
  catch (error) {
42
37
  if (isBaseError(error))
43
38
  throw error;
44
39
  const err = error;
45
- this.logger.error(`Error while finding user by id ${id.value}: ${err.message}`);
46
- throw DATABASE_ERROR(`finding user by id ${id.value}`, err.message);
40
+ this.logger.error(`Error while ${context}: ${err.message}`);
41
+ throw DATABASE_ERROR(context, err.message);
47
42
  }
48
43
  }
49
- async findByEmail(email) {
50
- try {
51
- const user = await this.userRepository.findByEmail(email.value);
52
- if (!user) {
53
- this.logger.warn(`User with email hash ${calculateHash(email.value).slice(0, 8)} not found`);
54
- throw USER_NOT_FOUND(email.value, 'email');
55
- }
56
- return user;
44
+ async findById(id) {
45
+ const user = await this.db(`finding user by id ${id.value}`, () => this.userRepository.findById(id.value));
46
+ if (!user) {
47
+ this.logger.warn(`User with id ${id.value} not found`);
48
+ throw USER_NOT_FOUND(id.value);
57
49
  }
58
- catch (error) {
59
- if (isBaseError(error))
60
- throw error;
61
- const err = error;
62
- this.logger.error(`Error while finding user by email hash ${calculateHash(email.value).slice(0, 8)}: ${err.message}`);
63
- throw DATABASE_ERROR(`finding user by email ${email.value}`, err.message);
50
+ return user;
51
+ }
52
+ async findByEmail(email) {
53
+ const emailHash = calculateHash(email.value).slice(0, 8);
54
+ const user = await this.db(`finding user by email hash ${emailHash}`, () => this.userRepository.findByEmail(email.value));
55
+ if (!user) {
56
+ this.logger.warn(`User with email hash ${emailHash} not found`);
57
+ throw USER_NOT_FOUND(email.value, 'email');
64
58
  }
59
+ return user;
65
60
  }
66
61
  async findByRna(rna) {
67
- try {
68
- const user = await this.userRepository.findByRna(rna.value);
69
- if (!user) {
70
- this.logger.warn(`User with rna ${rna.value} not found`);
71
- throw USER_NOT_FOUND(rna.value, 'rna');
72
- }
73
- return user;
74
- }
75
- catch (error) {
76
- if (isBaseError(error))
77
- throw error;
78
- const err = error;
79
- this.logger.error(`Error while finding user by rna ${rna.value}: ${err.message}`);
80
- throw DATABASE_ERROR(`finding user by rna ${rna.value}`, err.message);
62
+ const user = await this.db(`finding user by rna ${rna.value}`, () => this.userRepository.findByRna(rna.value));
63
+ if (!user) {
64
+ this.logger.warn(`User with rna ${rna.value} not found`);
65
+ throw USER_NOT_FOUND(rna.value, 'rna');
81
66
  }
67
+ return user;
82
68
  }
83
69
  async findAll(pagination) {
84
- try {
85
- const [users, total] = await this.userRepository.findAll(pagination?.limit, pagination?.offset);
86
- return new UserListResult(users, total);
87
- }
88
- catch (error) {
89
- if (isBaseError(error))
90
- throw error;
91
- const err = error;
92
- this.logger.error(`Error while finding all users: ${err.message}`);
93
- throw DATABASE_ERROR('finding all users', err.message);
94
- }
70
+ const [users, total] = await this.db('finding all users', () => this.userRepository.findAll(pagination?.limit, pagination?.offset));
71
+ return new UserListResult(users, total);
95
72
  }
96
73
  async update(id, input) {
97
- try {
98
- if (input.rna != null && !UserEntity.isValidRna(input.rna)) {
99
- this.logger.warn(`Invalid RNA ${input.rna} for user update with id ${id.value}`);
100
- throw INVALID_RNA(input.rna);
101
- }
102
- const updatedUser = await this.userRepository.update(id.value, {
103
- pseudo: input.pseudo,
104
- bio: input.bio,
105
- logoPath: input.logoPath,
106
- rna: input.rna,
107
- });
108
- if (!updatedUser) {
109
- this.logger.warn(`User with id ${id.value} not found for update`);
110
- throw USER_NOT_FOUND(id.value);
111
- }
112
- return updatedUser;
113
- }
114
- catch (error) {
115
- if (isBaseError(error))
116
- throw error;
117
- const err = error;
118
- this.logger.error(`Error while updating user with id ${id.value}: ${err.message}`);
119
- throw DATABASE_ERROR(`updating user with id ${id.value}`, err.message);
120
- }
74
+ if (input.rna != null && !UserEntity.isValidRna(input.rna)) {
75
+ this.logger.warn(`Invalid RNA ${input.rna} for user update with id ${id.value}`);
76
+ throw INVALID_RNA(input.rna);
77
+ }
78
+ const updatedUser = await this.db(`updating user with id ${id.value}`, () => this.userRepository.update(id.value, {
79
+ pseudo: input.pseudo,
80
+ bio: input.bio,
81
+ logoPath: input.logoPath,
82
+ rna: input.rna,
83
+ }));
84
+ if (!updatedUser) {
85
+ this.logger.warn(`User with id ${id.value} not found for update`);
86
+ throw USER_NOT_FOUND(id.value);
87
+ }
88
+ return updatedUser;
121
89
  }
122
90
  async delete(id) {
123
- try {
124
- const deleted = await this.userRepository.delete(id.value);
125
- if (!deleted) {
126
- this.logger.warn(`User with id ${id.value} not found for deletion`);
127
- throw USER_NOT_FOUND(id.value);
128
- }
129
- }
130
- catch (error) {
131
- if (isBaseError(error))
132
- throw error;
133
- const err = error;
134
- this.logger.error(`Error while deleting user with id ${id.value}: ${err.message}`);
135
- throw DATABASE_ERROR(`deleting user with id ${id.value}`, err.message);
91
+ const deleted = await this.db(`deleting user with id ${id.value}`, () => this.userRepository.delete(id.value));
92
+ if (!deleted) {
93
+ this.logger.warn(`User with id ${id.value} not found for deletion`);
94
+ throw USER_NOT_FOUND(id.value);
136
95
  }
137
96
  }
138
97
  async addBadgeToUser(userId, badgeId) {
139
- try {
140
- const user = await this.findById(userId);
141
- await this.badgeService.findById(badgeId);
142
- if (user.badges.some((b) => b.id === badgeId.value)) {
143
- this.logger.warn(`User with id ${userId.value} already has badge with id ${badgeId.value}`);
144
- throw USER_ALREADY_HAS_BADGE(userId.value, badgeId.value);
145
- }
146
- await this.userRepository.addBadgeToUser(userId.value, badgeId.value);
147
- }
148
- catch (error) {
149
- if (isBaseError(error))
150
- throw error;
151
- const err = error;
152
- this.logger.error(`Error while adding badge ${badgeId.value} to user ${userId.value}: ${err.message}`);
153
- throw DATABASE_ERROR(`adding badge ${badgeId.value} to user ${userId.value}`, err.message);
98
+ const user = await this.findById(userId);
99
+ await this.badgeService.findById(badgeId);
100
+ if (user.badges.some((b) => b.id === badgeId.value)) {
101
+ this.logger.warn(`User with id ${userId.value} already has badge with id ${badgeId.value}`);
102
+ throw USER_ALREADY_HAS_BADGE(userId.value, badgeId.value);
154
103
  }
104
+ await this.db(`adding badge ${badgeId.value} to user ${userId.value}`, () => this.userRepository.addBadgeToUser(userId.value, badgeId.value));
155
105
  }
156
106
  async removeBadgeFromUser(userId, badgeId) {
157
- try {
158
- const user = await this.findById(userId);
159
- if (!user.badges.some((badge) => badge.id === badgeId.value)) {
160
- this.logger.warn(`User with id ${userId.value} does not have badge with id ${badgeId.value} for removal`);
161
- throw USER_BADGE_NOT_FOUND(userId.value, badgeId.value);
162
- }
163
- await this.userRepository.removeBadgeFromUser(userId.value, badgeId.value);
164
- }
165
- catch (error) {
166
- if (isBaseError(error))
167
- throw error;
168
- const err = error;
169
- this.logger.error(`Error while removing badge ${badgeId.value} from user ${userId.value}: ${err.message}`);
170
- throw DATABASE_ERROR(`removing badge ${badgeId.value} from user ${userId.value}`, err.message);
107
+ const user = await this.findById(userId);
108
+ if (!user.badges.some((badge) => badge.id === badgeId.value)) {
109
+ this.logger.warn(`User with id ${userId.value} does not have badge with id ${badgeId.value} for removal`);
110
+ throw USER_BADGE_NOT_FOUND(userId.value, badgeId.value);
171
111
  }
112
+ await this.db(`removing badge ${badgeId.value} from user ${userId.value}`, () => this.userRepository.removeBadgeFromUser(userId.value, badgeId.value));
172
113
  }
173
114
  async incrementImpactScore(userId, score) {
174
- try {
175
- if (score.value <= 0) {
176
- this.logger.warn(`Invalid score increment of ${score.value.toString()} for user ${userId.value}`);
177
- throw INVALID_SCORE_INCREMENT(score.value);
178
- }
179
- await this.userRepository.incrementImpactScore(userId.value, score.value);
180
- }
181
- catch (error) {
182
- if (isBaseError(error))
183
- throw error;
184
- const err = error;
185
- this.logger.error(`Error while incrementing impact score of user ${userId.value} by ${score.value.toString()}: ${err.message}`);
186
- throw DATABASE_ERROR(`incrementing impact score of user ${userId.value} by ${score.value.toString()}`, err.message);
115
+ if (score.value <= 0) {
116
+ this.logger.warn(`Invalid score increment of ${score.value.toString()} for user ${userId.value}`);
117
+ throw INVALID_SCORE_INCREMENT(score.value);
187
118
  }
119
+ await this.db(`incrementing impact score of user ${userId.value} by ${score.value.toString()}`, () => this.userRepository.incrementImpactScore(userId.value, score.value));
188
120
  }
189
121
  };
190
122
  UserService = UserService_1 = __decorate([
@@ -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":"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"}
@@ -7,7 +7,7 @@ export class InitialUserSchema1776334421317 {
7
7
  "name" varchar NOT NULL,
8
8
  "slug" varchar NOT NULL,
9
9
  "description" text NOT NULL,
10
- "icon_path" varchar NOT NULL,
10
+ "icon_path" varchar,
11
11
  CONSTRAINT "UQ_badges_slug" UNIQUE ("slug"),
12
12
  CONSTRAINT "PK_badges_id" PRIMARY KEY ("id")
13
13
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volontariapp/domain-user",
3
- "version": "2.3.7-snap-8b8fb69",
3
+ "version": "2.3.7-snap-e3bade7",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -39,12 +39,12 @@
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": "2.1.16-snap-8b8fb69",
42
+ "@volontariapp/auth": "2.1.16-snap-e3bade7",
43
43
  "@volontariapp/contracts": "4.0.5",
44
44
  "@volontariapp/crypto": "0.3.6",
45
- "@volontariapp/database": "1.11.0",
45
+ "@volontariapp/database": "1.12.0",
46
46
  "@volontariapp/errors": "0.5.0",
47
- "@volontariapp/errors-nest": "0.10.1-snap-8b8fb69",
47
+ "@volontariapp/errors-nest": "0.10.1-snap-e3bade7",
48
48
  "@volontariapp/logger": "0.2.3",
49
49
  "@volontariapp/shared": "0.2.0"
50
50
  },