nicot-simple-user 1.1.0 → 2.0.0
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/AGENTS.md +216 -0
- package/dist/simple-user/login/login.controller.d.ts +3 -3
- package/dist/simple-user/login/login.controller.js +8 -8
- package/dist/simple-user/login/login.controller.js.map +1 -1
- package/dist/simple-user/options.d.ts +3 -2
- package/dist/simple-user/send-code/decorators.d.ts +1 -0
- package/dist/simple-user/send-code/decorators.js +4 -2
- package/dist/simple-user/send-code/decorators.js.map +1 -1
- package/dist/simple-user/send-code/send-code.controller.js +1 -0
- package/dist/simple-user/send-code/send-code.controller.js.map +1 -1
- package/dist/simple-user/send-code/send-code.dto.d.ts +10 -1
- package/dist/simple-user/send-code/send-code.dto.js +38 -3
- package/dist/simple-user/send-code/send-code.dto.js.map +1 -1
- package/dist/simple-user/send-code/send-code.service.js +31 -11
- package/dist/simple-user/send-code/send-code.service.js.map +1 -1
- package/dist/simple-user/simple-user/change-mobile.dto.d.ts +3 -0
- package/dist/simple-user/simple-user/change-mobile.dto.js +12 -0
- package/dist/simple-user/simple-user/change-mobile.dto.js.map +1 -0
- package/dist/simple-user/simple-user/contact.dto.d.ts +16 -0
- package/dist/simple-user/simple-user/contact.dto.js +88 -0
- package/dist/simple-user/simple-user/contact.dto.js.map +1 -0
- package/dist/simple-user/simple-user/login.dto.d.ts +2 -2
- package/dist/simple-user/simple-user/login.dto.js +3 -3
- package/dist/simple-user/simple-user/login.dto.js.map +1 -1
- package/dist/simple-user/simple-user/mobile.dto.d.ts +6 -0
- package/dist/simple-user/simple-user/mobile.dto.js +47 -0
- package/dist/simple-user/simple-user/mobile.dto.js.map +1 -0
- package/dist/simple-user/simple-user/reset-password.dto.d.ts +2 -2
- package/dist/simple-user/simple-user/reset-password.dto.js +2 -2
- package/dist/simple-user/simple-user/reset-password.dto.js.map +1 -1
- package/dist/simple-user/simple-user/simple-user.service.d.ts +9 -4
- package/dist/simple-user/simple-user/simple-user.service.js +102 -60
- package/dist/simple-user/simple-user/simple-user.service.js.map +1 -1
- package/dist/simple-user/simple-user.entity.d.ts +3 -1
- package/dist/simple-user/simple-user.entity.js +20 -4
- package/dist/simple-user/simple-user.entity.js.map +1 -1
- package/dist/simple-user/user-center/user-center.controller.d.ts +2 -0
- package/dist/simple-user/user-center/user-center.controller.js +18 -0
- package/dist/simple-user/user-center/user-center.controller.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
- package/test/app-e2e-v2.spec.ts +621 -0
- package/test/app-e2e.spec.ts +3 -0
- package/test/docker-compose.yml +14 -0
|
@@ -18,7 +18,11 @@ const nicot_1 = require("nicot");
|
|
|
18
18
|
const typeorm_1 = require("typeorm");
|
|
19
19
|
const argon2_1 = __importDefault(require("argon2"));
|
|
20
20
|
const swagger_1 = require("@nestjs/swagger");
|
|
21
|
-
exports.SimpleUserSensitiveFields = [
|
|
21
|
+
exports.SimpleUserSensitiveFields = [
|
|
22
|
+
'email',
|
|
23
|
+
'mobile',
|
|
24
|
+
'password',
|
|
25
|
+
];
|
|
22
26
|
let SimpleUser = class SimpleUser extends (0, nicot_1.IdBase)() {
|
|
23
27
|
async setPasswordWhenAvailable() {
|
|
24
28
|
if (this.password) {
|
|
@@ -32,8 +36,11 @@ let SimpleUser = class SimpleUser extends (0, nicot_1.IdBase)() {
|
|
|
32
36
|
async beforeUpdate() {
|
|
33
37
|
await this.setPasswordWhenAvailable();
|
|
34
38
|
}
|
|
39
|
+
isRegistered() {
|
|
40
|
+
return !!this.email || !!this.mobile;
|
|
41
|
+
}
|
|
35
42
|
async afterGet() {
|
|
36
|
-
this.registered =
|
|
43
|
+
this.registered = this.isRegistered();
|
|
37
44
|
this.passwordSet = !!this.passwordHash;
|
|
38
45
|
}
|
|
39
46
|
async setPassword(password) {
|
|
@@ -52,17 +59,26 @@ let SimpleUser = class SimpleUser extends (0, nicot_1.IdBase)() {
|
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
static _OPENAPI_METADATA_FACTORY() {
|
|
55
|
-
return { email: { required: true, type: () => String }, ssaid: { required: true, type: () => String }, passwordHash: { required: true, type: () => String }, passwordSet: { required: true, type: () => Boolean }, registered: { required: true, type: () => Boolean }, password: { required: true, type: () => String }, loginIpAddress: { required: true, type: () => String }, loginTime: { required: true, type: () => Date }, registerIpAddress: { required: true, type: () => String }, registerTime: { required: true, type: () => Date }, lastActiveIpAddress: { required: true, type: () => String }, lastActiveTime: { required: true, type: () => Date }, unregisterTime: { required: true, type: () => Date } };
|
|
62
|
+
return { email: { required: true, type: () => String }, mobile: { required: true, type: () => String }, ssaid: { required: true, type: () => String }, passwordHash: { required: true, type: () => String }, passwordSet: { required: true, type: () => Boolean }, registered: { required: true, type: () => Boolean }, password: { required: true, type: () => String }, loginIpAddress: { required: true, type: () => String }, loginTime: { required: true, type: () => Date }, registerIpAddress: { required: true, type: () => String }, registerTime: { required: true, type: () => Date }, lastActiveIpAddress: { required: true, type: () => String }, lastActiveTime: { required: true, type: () => Date }, unregisterTime: { required: true, type: () => Date } };
|
|
56
63
|
}
|
|
57
64
|
};
|
|
58
65
|
exports.SimpleUser = SimpleUser;
|
|
59
66
|
__decorate([
|
|
67
|
+
(0, nicot_1.QueryEqual)(),
|
|
60
68
|
(0, typeorm_1.Index)(),
|
|
61
69
|
(0, nicot_1.StringColumn)(255, {
|
|
62
70
|
description: 'Email address of the user. Only available for registered users',
|
|
63
71
|
}),
|
|
64
72
|
__metadata("design:type", String)
|
|
65
73
|
], SimpleUser.prototype, "email", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, nicot_1.QueryEqual)(),
|
|
76
|
+
(0, typeorm_1.Index)(),
|
|
77
|
+
(0, nicot_1.StringColumn)(30, {
|
|
78
|
+
description: 'Mobile phone number of the user. Only available for registered users',
|
|
79
|
+
}),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], SimpleUser.prototype, "mobile", void 0);
|
|
66
82
|
__decorate([
|
|
67
83
|
(0, typeorm_1.Index)(),
|
|
68
84
|
(0, nicot_1.InternalColumn)(),
|
|
@@ -87,7 +103,7 @@ __decorate([
|
|
|
87
103
|
], SimpleUser.prototype, "passwordSet", void 0);
|
|
88
104
|
__decorate([
|
|
89
105
|
(0, nicot_1.NotColumn)({
|
|
90
|
-
description: 'Indicates whether the user is registered (has email)',
|
|
106
|
+
description: 'Indicates whether the user is registered (has email or mobile)',
|
|
91
107
|
required: true,
|
|
92
108
|
}),
|
|
93
109
|
__metadata("design:type", Boolean)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-user.entity.js","sourceRoot":"","sources":["../../src/simple-user/simple-user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"simple-user.entity.js","sourceRoot":"","sources":["../../src/simple-user/simple-user.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { SimpleUser } from '../simple-user.entity';
|
|
|
3
3
|
import { UserRiskControlContext } from '../resolver';
|
|
4
4
|
import { ChangePasswordDto } from '../simple-user/change-password.dto';
|
|
5
5
|
import { ChangeEmailDto } from '../simple-user/change-email.dto';
|
|
6
|
+
import { ChangeMobileDto } from '../simple-user/change-mobile.dto';
|
|
6
7
|
export declare class UserCenterController {
|
|
7
8
|
private userService;
|
|
8
9
|
private currentUser;
|
|
@@ -10,5 +11,6 @@ export declare class UserCenterController {
|
|
|
10
11
|
getCurrentUser(): Promise<import("nicot").GenericReturnMessageDto<SimpleUser>>;
|
|
11
12
|
changePassword(dto: ChangePasswordDto, ctx: UserRiskControlContext): Promise<import("nicot").BlankReturnMessageDto>;
|
|
12
13
|
changeEmail(dto: ChangeEmailDto): Promise<import("nicot").BlankReturnMessageDto>;
|
|
14
|
+
changeMobile(dto: ChangeMobileDto): Promise<import("nicot").BlankReturnMessageDto>;
|
|
13
15
|
unregister(): Promise<import("nicot").BlankReturnMessageDto>;
|
|
14
16
|
}
|
|
@@ -23,6 +23,7 @@ const nicot_1 = require("nicot");
|
|
|
23
23
|
const change_password_dto_1 = require("../simple-user/change-password.dto");
|
|
24
24
|
const decorators_1 = require("../send-code/decorators");
|
|
25
25
|
const change_email_dto_1 = require("../simple-user/change-email.dto");
|
|
26
|
+
const change_mobile_dto_1 = require("../simple-user/change-mobile.dto");
|
|
26
27
|
let UserCenterController = class UserCenterController {
|
|
27
28
|
constructor(userService, currentUser) {
|
|
28
29
|
this.userService = userService;
|
|
@@ -37,6 +38,9 @@ let UserCenterController = class UserCenterController {
|
|
|
37
38
|
async changeEmail(dto) {
|
|
38
39
|
return this.userService.changeEmail(this.currentUser, dto);
|
|
39
40
|
}
|
|
41
|
+
async changeMobile(dto) {
|
|
42
|
+
return this.userService.changeMobile(this.currentUser, dto);
|
|
43
|
+
}
|
|
40
44
|
async unregister() {
|
|
41
45
|
return this.userService.unregister(this.currentUser);
|
|
42
46
|
}
|
|
@@ -81,6 +85,20 @@ __decorate([
|
|
|
81
85
|
__metadata("design:paramtypes", [change_email_dto_1.ChangeEmailDto]),
|
|
82
86
|
__metadata("design:returntype", Promise)
|
|
83
87
|
], UserCenterController.prototype, "changeEmail", null);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, common_1.Post)('change-mobile'),
|
|
90
|
+
(0, common_1.HttpCode)(200),
|
|
91
|
+
(0, swagger_1.ApiOperation)({
|
|
92
|
+
summary: 'Change current user mobile phone number',
|
|
93
|
+
}),
|
|
94
|
+
(0, decorators_1.ApiInvalidCode)(),
|
|
95
|
+
(0, nicot_1.ApiBlankResponse)(),
|
|
96
|
+
openapi.ApiResponse({ status: 200 }),
|
|
97
|
+
__param(0, (0, nicot_1.DataBody)()),
|
|
98
|
+
__metadata("design:type", Function),
|
|
99
|
+
__metadata("design:paramtypes", [change_mobile_dto_1.ChangeMobileDto]),
|
|
100
|
+
__metadata("design:returntype", Promise)
|
|
101
|
+
], UserCenterController.prototype, "changeMobile", null);
|
|
84
102
|
__decorate([
|
|
85
103
|
(0, common_1.Post)('unregister'),
|
|
86
104
|
(0, common_1.HttpCode)(200),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-center.controller.js","sourceRoot":"","sources":["../../../src/simple-user/user-center/user-center.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,6CAAwD;AACxD,4EAAuE;AACvE,8DAAmD;AACnD,0CAKqB;AACrB,iCAA6D;AAC7D,4EAAuE;AACvE,wDAAyD;AACzD,sEAAiE;
|
|
1
|
+
{"version":3,"file":"user-center.controller.js","sourceRoot":"","sources":["../../../src/simple-user/user-center/user-center.controller.ts"],"names":[],"mappings":"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"}
|