@volontariapp/domain-user 2.3.7-snap-9c6fbea → 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.
- package/dist/services/auth.service.d.ts +1 -0
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +40 -29
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/badge.service.d.ts +1 -0
- package/dist/services/badge.service.d.ts.map +1 -1
- package/dist/services/badge.service.js +49 -93
- package/dist/services/badge.service.js.map +1 -1
- package/dist/services/user.service.d.ts +1 -0
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +59 -127
- package/dist/services/user.service.js.map +1 -1
- package/dist/test/migrations/1776334421317-InitialUserSchema.js +1 -1
- package/package.json +3 -3
|
@@ -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;
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
this.
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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
|
|
99
|
-
this.logger.warn(`Invalid refresh token attempt
|
|
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":";;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACnB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,GAEb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAGxC,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,UAAsB;QADtB,mBAAc,GAAd,cAAc,CAAiB;QAC/B,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;
|
|
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;
|
|
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,64 +24,40 @@ let BadgeService = BadgeService_1 = class BadgeService {
|
|
|
24
24
|
constructor(badgeRepository) {
|
|
25
25
|
this.badgeRepository = badgeRepository;
|
|
26
26
|
}
|
|
27
|
-
async
|
|
27
|
+
async db(context, fn) {
|
|
28
28
|
try {
|
|
29
|
-
|
|
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
|
|
41
|
-
throw DATABASE_ERROR(
|
|
35
|
+
this.logger.error(`Error while ${context}: ${err.message}`);
|
|
36
|
+
throw DATABASE_ERROR(context, err.message);
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
|
-
async
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
63
|
const existingBadge = await this.badgeRepository.findBySlug(input.slug);
|
|
@@ -89,62 +65,42 @@ let BadgeService = BadgeService_1 = class BadgeService {
|
|
|
89
65
|
this.logger.warn(`Attempt to create badge with already existing slug: ${input.slug}`);
|
|
90
66
|
throw BADGE_ALREADY_EXISTS(input.slug);
|
|
91
67
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
+
}
|
|
102
82
|
throw error;
|
|
103
|
-
if (isDatabaseDriverError(error) && error.code === '23505') {
|
|
104
|
-
this.logger.warn(`Badge with slug ${input.slug} already exists`);
|
|
105
|
-
throw BADGE_ALREADY_EXISTS(input.slug);
|
|
106
83
|
}
|
|
107
|
-
|
|
108
|
-
this.logger.error(`Error while creating badge: ${err.message}`);
|
|
109
|
-
throw DATABASE_ERROR('creating badge', err.message);
|
|
110
|
-
}
|
|
84
|
+
});
|
|
111
85
|
}
|
|
112
86
|
async update(id, input) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
throw BADGE_NOT_FOUND(id.value, 'id');
|
|
123
|
-
}
|
|
124
|
-
return updatedBadge;
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
if (isBaseError(error))
|
|
128
|
-
throw error;
|
|
129
|
-
const err = error;
|
|
130
|
-
this.logger.error(`Error while updating badge with id ${id.value}: ${err.message}`);
|
|
131
|
-
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');
|
|
132
96
|
}
|
|
97
|
+
return updatedBadge;
|
|
133
98
|
}
|
|
134
99
|
async delete(id) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
throw BADGE_NOT_FOUND(id.value, 'id');
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
if (isBaseError(error))
|
|
144
|
-
throw error;
|
|
145
|
-
const err = error;
|
|
146
|
-
this.logger.error(`Error while deleting badge with id ${id.value}: ${err.message}`);
|
|
147
|
-
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');
|
|
148
104
|
}
|
|
149
105
|
}
|
|
150
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.service.js","sourceRoot":"","sources":["../../src/services/badge.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,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClG,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;AAG3D,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAKJ;IAJF,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,cAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAErE,YAEmB,eAAiC;QAAjC,oBAAe,GAAf,eAAe,CAAkB;IACjD,CAAC;
|
|
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;
|
|
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
|
|
32
|
+
async db(context, fn) {
|
|
33
33
|
try {
|
|
34
|
-
|
|
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
|
|
46
|
-
throw DATABASE_ERROR(
|
|
40
|
+
this.logger.error(`Error while ${context}: ${err.message}`);
|
|
41
|
+
throw DATABASE_ERROR(context, err.message);
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
|
-
async
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
85
|
-
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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":";;;;;;;;;;;;;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,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,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;
|
|
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,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,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,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;SACf,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,MAAM,CAAC,EAAU;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CACtE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,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,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;AApIY,WAAW;IADvB,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;6CAEA,YAAY;GANlC,WAAW,CAoIvB"}
|
|
@@ -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
|
|
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-
|
|
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-
|
|
42
|
+
"@volontariapp/auth": "2.1.16-snap-e3bade7",
|
|
43
43
|
"@volontariapp/contracts": "4.0.5",
|
|
44
44
|
"@volontariapp/crypto": "0.3.6",
|
|
45
45
|
"@volontariapp/database": "1.12.0",
|
|
46
46
|
"@volontariapp/errors": "0.5.0",
|
|
47
|
-
"@volontariapp/errors-nest": "0.10.1-snap-
|
|
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
|
},
|