@lenne.tech/nest-server 8.0.2 → 8.3.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.
Files changed (166) hide show
  1. package/dist/config.env.js +3 -2
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/args/pagination.args.js +1 -1
  4. package/dist/core/common/args/pagination.args.js.map +1 -1
  5. package/dist/core/common/decorators/restricted.decorator.d.ts +3 -0
  6. package/dist/core/common/decorators/restricted.decorator.js +14 -8
  7. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  8. package/dist/core/common/enums/role.enum.d.ts +3 -2
  9. package/dist/core/common/enums/role.enum.js +3 -2
  10. package/dist/core/common/enums/role.enum.js.map +1 -1
  11. package/dist/core/common/helpers/config.helper.d.ts +2 -1
  12. package/dist/core/common/helpers/config.helper.js +11 -7
  13. package/dist/core/common/helpers/config.helper.js.map +1 -1
  14. package/dist/core/common/helpers/context.helper.d.ts +7 -1
  15. package/dist/core/common/helpers/context.helper.js +33 -29
  16. package/dist/core/common/helpers/context.helper.js.map +1 -1
  17. package/dist/core/common/helpers/db.helper.d.ts +37 -0
  18. package/dist/core/common/helpers/db.helper.js +356 -0
  19. package/dist/core/common/helpers/db.helper.js.map +1 -0
  20. package/dist/core/common/helpers/file.helper.d.ts +8 -1
  21. package/dist/core/common/helpers/file.helper.js +43 -31
  22. package/dist/core/common/helpers/file.helper.js.map +1 -1
  23. package/dist/core/common/helpers/filter.helper.d.ts +3 -0
  24. package/dist/core/common/helpers/filter.helper.js +93 -81
  25. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  26. package/dist/core/common/helpers/graphql.helper.d.ts +24 -1
  27. package/dist/core/common/helpers/graphql.helper.js +144 -96
  28. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  29. package/dist/core/common/helpers/input.helper.d.ts +42 -4
  30. package/dist/core/common/helpers/input.helper.js +256 -97
  31. package/dist/core/common/helpers/input.helper.js.map +1 -1
  32. package/dist/core/common/helpers/model.helper.d.ts +11 -0
  33. package/dist/core/common/helpers/model.helper.js +41 -29
  34. package/dist/core/common/helpers/model.helper.js.map +1 -1
  35. package/dist/core/common/helpers/service.helper.d.ts +21 -1
  36. package/dist/core/common/helpers/service.helper.js +80 -72
  37. package/dist/core/common/helpers/service.helper.js.map +1 -1
  38. package/dist/core/common/inputs/combined-filter.input.js +1 -1
  39. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  40. package/dist/core/common/inputs/core-input.input.js +1 -1
  41. package/dist/core/common/inputs/core-input.input.js.map +1 -1
  42. package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
  43. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  44. package/dist/core/common/interfaces/resolve-selector.interface.d.ts +5 -0
  45. package/dist/core/common/interfaces/resolve-selector.interface.js +3 -0
  46. package/dist/core/common/interfaces/resolve-selector.interface.js.map +1 -0
  47. package/dist/core/common/interfaces/service-options.interface.d.ts +36 -0
  48. package/dist/core/common/interfaces/service-options.interface.js +3 -0
  49. package/dist/core/common/interfaces/service-options.interface.js.map +1 -0
  50. package/dist/core/common/models/core-model.model.d.ts +5 -1
  51. package/dist/core/common/models/core-model.model.js +1 -1
  52. package/dist/core/common/models/core-model.model.js.map +1 -1
  53. package/dist/core/common/pipes/check-input.pipe.js +2 -2
  54. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  55. package/dist/core/common/pipes/map-and-validate.pipe.js +1 -1
  56. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  57. package/dist/core/common/services/crud.service.d.ts +13 -0
  58. package/dist/core/common/services/crud.service.js +57 -0
  59. package/dist/core/common/services/crud.service.js.map +1 -0
  60. package/dist/core/common/services/email.service.js +8 -8
  61. package/dist/core/common/services/email.service.js.map +1 -1
  62. package/dist/core/common/services/module.service.d.ts +40 -0
  63. package/dist/core/common/services/module.service.js +80 -0
  64. package/dist/core/common/services/module.service.js.map +1 -0
  65. package/dist/core/common/types/core-model-constructor.type.d.ts +21 -0
  66. package/dist/core/common/types/core-model-constructor.type.js +3 -0
  67. package/dist/core/common/types/core-model-constructor.type.js.map +1 -0
  68. package/dist/core/common/types/field-selection.type.d.ts +4 -0
  69. package/dist/core/common/types/field-selection.type.js +3 -0
  70. package/dist/core/common/types/field-selection.type.js.map +1 -0
  71. package/dist/core/common/types/ids.type.d.ts +8 -0
  72. package/dist/core/common/types/ids.type.js +3 -0
  73. package/dist/core/common/types/ids.type.js.map +1 -0
  74. package/dist/core/common/types/string-or-object-id.type.d.ts +2 -0
  75. package/dist/core/common/types/string-or-object-id.type.js +3 -0
  76. package/dist/core/common/types/string-or-object-id.type.js.map +1 -0
  77. package/dist/core/modules/auth/core-auth.resolver.d.ts +2 -1
  78. package/dist/core/modules/auth/core-auth.resolver.js +4 -3
  79. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  80. package/dist/core/modules/auth/guards/roles.guard.js +1 -2
  81. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  82. package/dist/core/modules/auth/services/core-auth-user.service.d.ts +3 -1
  83. package/dist/core/modules/auth/services/core-auth-user.service.js.map +1 -1
  84. package/dist/core/modules/auth/services/core-auth.service.d.ts +2 -1
  85. package/dist/core/modules/auth/services/core-auth.service.js +6 -4
  86. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  87. package/dist/core/modules/user/core-user.model.js +1 -1
  88. package/dist/core/modules/user/core-user.model.js.map +1 -1
  89. package/dist/core/modules/user/core-user.service.d.ts +16 -25
  90. package/dist/core/modules/user/core-user.service.js +69 -90
  91. package/dist/core/modules/user/core-user.service.js.map +1 -1
  92. package/dist/core.module.js +1 -1
  93. package/dist/core.module.js.map +1 -1
  94. package/dist/index.d.ts +9 -1
  95. package/dist/index.js +9 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/server/modules/auth/auth.resolver.d.ts +2 -1
  98. package/dist/server/modules/auth/auth.resolver.js +4 -3
  99. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  100. package/dist/server/modules/file/file.controller.js +1 -1
  101. package/dist/server/modules/file/file.controller.js.map +1 -1
  102. package/dist/server/modules/user/avatar.controller.js +2 -2
  103. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  104. package/dist/server/modules/user/user.model.d.ts +2 -1
  105. package/dist/server/modules/user/user.module.js +7 -3
  106. package/dist/server/modules/user/user.module.js.map +1 -1
  107. package/dist/server/modules/user/user.resolver.d.ts +8 -7
  108. package/dist/server/modules/user/user.resolver.js +85 -49
  109. package/dist/server/modules/user/user.resolver.js.map +1 -1
  110. package/dist/server/modules/user/user.service.d.ts +9 -18
  111. package/dist/server/modules/user/user.service.js +23 -30
  112. package/dist/server/modules/user/user.service.js.map +1 -1
  113. package/dist/test/test.helper.d.ts +1 -2
  114. package/dist/test/test.helper.js +1 -16
  115. package/dist/test/test.helper.js.map +1 -1
  116. package/dist/tsconfig.build.tsbuildinfo +1 -1
  117. package/package.json +58 -59
  118. package/src/config.env.ts +3 -2
  119. package/src/core/common/args/pagination.args.ts +2 -2
  120. package/src/core/common/decorators/restricted.decorator.ts +24 -12
  121. package/src/core/common/enums/role.enum.ts +23 -5
  122. package/src/core/common/helpers/config.helper.ts +26 -6
  123. package/src/core/common/helpers/context.helper.ts +42 -33
  124. package/src/core/common/helpers/db.helper.ts +595 -0
  125. package/src/core/common/helpers/file.helper.ts +76 -49
  126. package/src/core/common/helpers/filter.helper.ts +119 -96
  127. package/src/core/common/helpers/graphql.helper.ts +219 -117
  128. package/src/core/common/helpers/input.helper.ts +349 -108
  129. package/src/core/common/helpers/model.helper.ts +102 -57
  130. package/src/core/common/helpers/service.helper.ts +149 -117
  131. package/src/core/common/inputs/combined-filter.input.ts +2 -2
  132. package/src/core/common/inputs/core-input.input.ts +2 -2
  133. package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
  134. package/src/core/common/interfaces/resolve-selector.interface.ts +9 -0
  135. package/src/core/common/interfaces/service-options.interface.ts +71 -0
  136. package/src/core/common/models/core-model.model.ts +7 -3
  137. package/src/core/common/pipes/check-input.pipe.ts +4 -4
  138. package/src/core/common/pipes/map-and-validate.pipe.ts +2 -2
  139. package/src/core/common/services/crud.service.ts +100 -0
  140. package/src/core/common/services/email.service.ts +9 -9
  141. package/src/core/common/services/module.service.ts +188 -0
  142. package/src/core/common/types/core-model-constructor.type.ts +30 -0
  143. package/src/core/common/types/field-selection.type.ts +8 -0
  144. package/src/core/common/types/ids.type.ts +7 -0
  145. package/src/core/common/types/string-or-object-id.type.ts +3 -0
  146. package/src/core/modules/auth/core-auth.module.ts +1 -1
  147. package/src/core/modules/auth/core-auth.resolver.ts +8 -3
  148. package/src/core/modules/auth/guards/roles.guard.ts +5 -7
  149. package/src/core/modules/auth/services/core-auth-user.service.ts +7 -1
  150. package/src/core/modules/auth/services/core-auth.service.ts +14 -4
  151. package/src/core/modules/user/core-user.model.ts +2 -1
  152. package/src/core/modules/user/core-user.service.ts +115 -185
  153. package/src/core.module.ts +2 -2
  154. package/src/index.ts +9 -1
  155. package/src/main.ts +1 -1
  156. package/src/server/modules/auth/auth.resolver.ts +8 -3
  157. package/src/server/modules/file/file.controller.ts +2 -2
  158. package/src/server/modules/user/avatar.controller.ts +3 -3
  159. package/src/server/modules/user/user.module.ts +7 -3
  160. package/src/server/modules/user/user.resolver.ts +74 -43
  161. package/src/server/modules/user/user.service.ts +30 -53
  162. package/src/test/test.helper.ts +31 -30
  163. package/dist/core/modules/user/core-basic-user.service.d.ts +0 -17
  164. package/dist/core/modules/user/core-basic-user.service.js +0 -73
  165. package/dist/core/modules/user/core-basic-user.service.js.map +0 -1
  166. package/src/core/modules/user/core-basic-user.service.ts +0 -138
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModuleService = void 0;
4
+ const mongoose_1 = require("mongoose");
5
+ const db_helper_1 = require("../helpers/db.helper");
6
+ const input_helper_1 = require("../helpers/input.helper");
7
+ const service_helper_1 = require("../helpers/service.helper");
8
+ class ModuleService {
9
+ constructor(options) {
10
+ this.mainDbModel = options === null || options === void 0 ? void 0 : options.mainDbModel;
11
+ this.mainModelConstructor = options === null || options === void 0 ? void 0 : options.mainModelConstructor;
12
+ }
13
+ checkRights(input, currentUser, options) {
14
+ const config = Object.assign({ metatype: this.mainModelConstructor }, options);
15
+ return (0, input_helper_1.check)(input, currentUser, config);
16
+ }
17
+ async process(serviceFunc, options) {
18
+ var _a, _b, _c;
19
+ const config = Object.assign({ checkRights: true, dbObject: options === null || options === void 0 ? void 0 : options.dbObject, input: options === null || options === void 0 ? void 0 : options.input, processFieldSelection: {}, prepareInput: {}, prepareOutput: {}, pubSub: true }, options === null || options === void 0 ? void 0 : options.serviceOptions);
20
+ if (config.prepareInput && this.prepareInput) {
21
+ await this.prepareInput(config.input, config.prepareInput);
22
+ }
23
+ const getDbObject = async () => {
24
+ if (config.dbObject) {
25
+ if (typeof config.dbObject === 'string' || config.dbObject instanceof mongoose_1.Types.ObjectId) {
26
+ const dbObject = await this.get((0, db_helper_1.getStringIds)(config.dbObject));
27
+ if (dbObject) {
28
+ config.dbObject = dbObject;
29
+ }
30
+ }
31
+ }
32
+ return config.dbObject;
33
+ };
34
+ let ownerIds = undefined;
35
+ if (config.checkRights && this.checkRights) {
36
+ ownerIds = (0, db_helper_1.getStringIds)(config.ownerIds);
37
+ if (!(ownerIds === null || ownerIds === void 0 ? void 0 : ownerIds.length)) {
38
+ ownerIds = (_a = (await getDbObject())) === null || _a === void 0 ? void 0 : _a.ownerIds;
39
+ }
40
+ }
41
+ if (config.input && config.checkRights && this.checkRights) {
42
+ const opts = { creator: (_b = (await getDbObject())) === null || _b === void 0 ? void 0 : _b.createdBy, ownerIds, roles: config.roles };
43
+ if (config.inputType) {
44
+ opts.metatype = config.resultType;
45
+ }
46
+ config.input = await this.checkRights(config.input, config.currentUser, opts);
47
+ }
48
+ let result = await serviceFunc(config);
49
+ if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
50
+ await this.processFieldSelection(result, config.fieldSelection, config.processFieldSelection);
51
+ }
52
+ if (config.prepareOutput && this.prepareOutput) {
53
+ if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
54
+ config.prepareOutput.targetModel = null;
55
+ }
56
+ result = await this.prepareOutput(result, config.prepareOutput);
57
+ }
58
+ if (config.checkRights && this.checkRights) {
59
+ const opts = { creator: (_c = (await getDbObject())) === null || _c === void 0 ? void 0 : _c.createdBy, ownerIds, roles: config.roles, throwError: false };
60
+ if (config.resultType) {
61
+ opts.metatype = config.resultType;
62
+ }
63
+ result = await this.checkRights(result, config.currentUser, opts);
64
+ }
65
+ return result;
66
+ }
67
+ async prepareInput(input, options = {}) {
68
+ return (0, service_helper_1.prepareInput)(input, options.currentUser, options.prepareInput);
69
+ }
70
+ async prepareOutput(output, options = {}) {
71
+ const config = Object.assign({ targetModel: this.mainModelConstructor }, options === null || options === void 0 ? void 0 : options.prepareOutput);
72
+ return (0, service_helper_1.prepareOutput)(output, config);
73
+ }
74
+ async processFieldSelection(data, fieldsSelection, options = {}) {
75
+ const config = Object.assign({ model: this.mainModelConstructor, dbModel: this.mainDbModel }, options);
76
+ return (0, db_helper_1.popAndMap)(data, fieldsSelection, config.model, config.dbModel);
77
+ }
78
+ }
79
+ exports.ModuleService = ModuleService;
80
+ //# sourceMappingURL=module.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { CoreModel } from '../models/core-model.model';
2
+ export declare type CoreModelConstructor<T extends CoreModel> = {
3
+ new (): T;
4
+ init(this: new (...args: any[]) => T, ...args: any[]): T;
5
+ map(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options?: {
6
+ [key: string]: any;
7
+ cloneDeep?: boolean;
8
+ funcAllowed?: boolean;
9
+ init?: any;
10
+ item?: T;
11
+ mapId?: boolean;
12
+ }): T;
13
+ mapDeep(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options: {
14
+ [key: string]: any;
15
+ cloneDeep?: boolean;
16
+ funcAllowed?: boolean;
17
+ init?: any;
18
+ item?: T;
19
+ mapId?: boolean;
20
+ }): T;
21
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=core-model-constructor.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-model-constructor.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/core-model-constructor.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { SelectionNode } from 'graphql';
2
+ import { PopulateOptions } from 'mongoose';
3
+ import { ResolveSelector } from '../interfaces/resolve-selector.interface';
4
+ export declare type FieldSelection = PopulateOptions[] | SelectionNode[] | ResolveSelector;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=field-selection.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-selection.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/field-selection.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { Types } from 'mongoose';
2
+ export declare type IdsType = string | Types.ObjectId | {
3
+ id?: string | Types.ObjectId;
4
+ _id?: string | Types.ObjectId;
5
+ } | (string | Types.ObjectId | {
6
+ id?: string | Types.ObjectId;
7
+ _id?: string | Types.ObjectId;
8
+ })[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ids.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/ids.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { Types } from 'mongoose';
2
+ export declare type StringOrObjectId = string | Types.ObjectId | any;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=string-or-object-id.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-or-object-id.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/string-or-object-id.type.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
+ import { GraphQLResolveInfo } from 'graphql';
1
2
  import { CoreAuthModel } from './core-auth.model';
2
3
  import { CoreAuthService } from './services/core-auth.service';
3
4
  export declare class CoreAuthResolver {
4
5
  protected readonly authService: CoreAuthService;
5
6
  constructor(authService: CoreAuthService);
6
- signIn(email: string, password: string): Promise<Partial<CoreAuthModel>>;
7
+ signIn(email: string, password: string, info: GraphQLResolveInfo): Promise<Partial<CoreAuthModel>>;
7
8
  }
@@ -20,16 +20,17 @@ let CoreAuthResolver = class CoreAuthResolver {
20
20
  constructor(authService) {
21
21
  this.authService = authService;
22
22
  }
23
- async signIn(email, password) {
24
- return await this.authService.signIn(email, password);
23
+ async signIn(email, password, info) {
24
+ return await this.authService.signIn(email, password, { fieldSelection: { info, select: 'signIn' } });
25
25
  }
26
26
  };
27
27
  __decorate([
28
28
  (0, graphql_1.Query)((returns) => core_auth_model_1.CoreAuthModel, { description: 'Get JWT token' }),
29
29
  __param(0, (0, graphql_1.Args)('email')),
30
30
  __param(1, (0, graphql_1.Args)('password')),
31
+ __param(2, (0, graphql_1.Info)()),
31
32
  __metadata("design:type", Function),
32
- __metadata("design:paramtypes", [String, String]),
33
+ __metadata("design:paramtypes", [String, String, Object]),
33
34
  __metadata("design:returntype", Promise)
34
35
  ], CoreAuthResolver.prototype, "signIn", null);
35
36
  CoreAuthResolver = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"core-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/auth/core-auth.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAwD;AACxD,uDAAkD;AAClD,oEAA+D;AAM/D,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAI3B,YAA+B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAU/D,KAAK,CAAC,MAAM,CAAgB,KAAa,EAAoB,QAAgB;QAC3E,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AAHC;IADC,IAAA,eAAK,EAAC,CAAC,OAAO,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IACtD,WAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IAAiB,WAAA,IAAA,cAAI,EAAC,UAAU,CAAC,CAAA;;;;8CAE3D;AAhBU,gBAAgB;IAD5B,IAAA,kBAAQ,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;qCAKR,mCAAe;GAJhD,gBAAgB,CAiB5B;AAjBY,4CAAgB"}
1
+ {"version":3,"file":"core-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/auth/core-auth.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA8D;AAE9D,uDAAkD;AAClD,oEAA+D;AAM/D,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAI3B,YAA+B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAU/D,KAAK,CAAC,MAAM,CACK,KAAa,EACV,QAAgB,EAC1B,IAAwB;QAEhC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC;CACF,CAAA;AAPC;IADC,IAAA,eAAK,EAAC,CAAC,OAAO,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAEjE,WAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,WAAA,IAAA,cAAI,EAAC,UAAU,CAAC,CAAA;IAChB,WAAA,IAAA,cAAI,GAAE,CAAA;;;;8CAGR;AApBU,gBAAgB;IAD5B,IAAA,kBAAQ,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;qCAKR,mCAAe;GAJhD,gBAAgB,CAqB5B;AArBY,4CAAgB"}
@@ -32,8 +32,7 @@ let RolesGuard = class RolesGuard extends (0, auth_guard_1.AuthGuard)('jwt') {
32
32
  }
33
33
  if (!user || !user.hasRole(roles)) {
34
34
  const args = graphql_1.GqlExecutionContext.create(context).getArgs();
35
- if (user &&
36
- (roles.includes(role_enum_1.RoleEnum.USER) || (roles.includes(role_enum_1.RoleEnum.OWNER) && user.id.toString() === args.id))) {
35
+ if (user && roles.includes(role_enum_1.RoleEnum.S_USER)) {
37
36
  return user;
38
37
  }
39
38
  throw new common_1.UnauthorizedException();
@@ -1 +1 @@
1
- {"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAqF;AACrF,uCAAyC;AACzC,6CAAsD;AACtD,+DAA2D;AAC3D,6CAAyC;AASzC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,IAAA,sBAAS,EAAC,KAAK,CAAC;IAI9C,YAA+B,SAAoB;QACjD,KAAK,EAAE,CAAC;QADqB,cAAS,GAAT,SAAS,CAAW;IAEnD,CAAC;IAKD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9G,MAAM,KAAK,GAAa,cAAc,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAEjC,MAAM,IAAI,GAAQ,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAGhE,IACE,IAAI;gBACJ,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EACrG;gBACA,OAAO,IAAI,CAAC;aACb;YAGD,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,OAAyB;QAClC,MAAM,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;CACF,CAAA;AArDY,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,UAAU,CAqDtB;AArDY,gCAAU"}
1
+ {"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA6F;AAC7F,uCAAyC;AACzC,6CAAsD;AACtD,+DAA2D;AAC3D,6CAAyC;AAUzC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,IAAA,sBAAS,EAAC,KAAK,CAAC;IAI9C,YAA+B,SAAoB;QACjD,KAAK,EAAE,CAAC;QADqB,cAAS,GAAT,SAAS,CAAW;IAEnD,CAAC;IAKD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9G,MAAM,KAAK,GAAa,cAAc,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAEjC,MAAM,IAAI,GAAQ,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAGhE,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,MAAM,CAAC,EAAE;gBAC3C,OAAO,IAAI,CAAC;aACb;YAGD,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,OAAyB;QAClC,MAAM,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;CACF,CAAA;AAlDY,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,UAAU,CAkDtB;AAlDY,gCAAU"}
@@ -1,4 +1,6 @@
1
+ import { ServiceOptions } from '../../../common/interfaces/service-options.interface';
1
2
  import { ICoreAuthUser } from '../interfaces/core-auth-user.interface';
2
3
  export declare abstract class CoreAuthUserService {
3
- abstract getViaEmail(email: string): Promise<ICoreAuthUser>;
4
+ abstract getViaEmail(email: string, serviceOptions?: ServiceOptions): Promise<ICoreAuthUser>;
5
+ abstract prepareOutput(output: any, options?: ServiceOptions): Promise<ICoreAuthUser>;
4
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core-auth-user.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth-user.service.ts"],"names":[],"mappings":";;;AAKA,MAAsB,mBAAmB;CAKxC;AALD,kDAKC"}
1
+ {"version":3,"file":"core-auth-user.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth-user.service.ts"],"names":[],"mappings":";;;AAMA,MAAsB,mBAAmB;CAUxC;AAVD,kDAUC"}
@@ -1,4 +1,5 @@
1
1
  import { JwtService } from '@nestjs/jwt';
2
+ import { ServiceOptions } from '../../../common/interfaces/service-options.interface';
2
3
  import { ICoreAuthUser } from '../interfaces/core-auth-user.interface';
3
4
  import { JwtPayload } from '../interfaces/jwt-payload.interface';
4
5
  import { CoreAuthUserService } from './core-auth-user.service';
@@ -6,7 +7,7 @@ export declare class CoreAuthService {
6
7
  protected readonly userService: CoreAuthUserService;
7
8
  protected readonly jwtService: JwtService;
8
9
  constructor(userService: CoreAuthUserService, jwtService: JwtService);
9
- signIn(email: string, password: string): Promise<{
10
+ signIn(email: string, password: string, serviceOptions?: ServiceOptions): Promise<{
10
11
  token: string;
11
12
  user: ICoreAuthUser;
12
13
  }>;
@@ -13,21 +13,23 @@ exports.CoreAuthService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const jwt_1 = require("@nestjs/jwt");
15
15
  const bcrypt = require("bcrypt");
16
+ const config_helper_1 = require("../../../common/helpers/config.helper");
16
17
  const core_auth_user_service_1 = require("./core-auth-user.service");
17
18
  let CoreAuthService = class CoreAuthService {
18
19
  constructor(userService, jwtService) {
19
20
  this.userService = userService;
20
21
  this.jwtService = jwtService;
21
22
  }
22
- async signIn(email, password) {
23
- const user = await this.userService.getViaEmail(email);
24
- if (!(await bcrypt.compare(password, user.password))) {
23
+ async signIn(email, password, serviceOptions) {
24
+ serviceOptions = (0, config_helper_1.merge)(serviceOptions || {}, { prepareOutput: null });
25
+ const user = await this.userService.getViaEmail(email, serviceOptions);
26
+ if (!user || !(await bcrypt.compare(password, user.password))) {
25
27
  throw new common_1.UnauthorizedException();
26
28
  }
27
29
  const payload = { email: user.email };
28
30
  return {
29
31
  token: this.jwtService.sign(payload),
30
- user,
32
+ user: await this.userService.prepareOutput(user),
31
33
  };
32
34
  }
33
35
  async validateUser(payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"core-auth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCAAyC;AACzC,iCAAiC;AAGjC,qEAA+D;AAM/D,IAAa,eAAe,GAA5B,MAAa,eAAe;IAC1B,YAA+B,WAAgC,EAAqB,UAAsB;QAA3E,gBAAW,GAAX,WAAW,CAAqB;QAAqB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAK9G,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,QAAgB;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YACpD,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QACD,MAAM,OAAO,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,IAAI;SACL,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,OAAmB;QACpC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;IACrD,CAAC;CACF,CAAA;AA5BY,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEiC,4CAAmB,EAAiC,gBAAU;GAD/F,eAAe,CA4B3B;AA5BY,0CAAe"}
1
+ {"version":3,"file":"core-auth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCAAyC;AACzC,iCAAiC;AACjC,yEAA8D;AAI9D,qEAA+D;AAM/D,IAAa,eAAe,GAA5B,MAAa,eAAe;IAC1B,YAA+B,WAAgC,EAAqB,UAAsB;QAA3E,gBAAW,GAAX,WAAW,CAAqB;QAAqB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAK9G,KAAK,CAAC,MAAM,CACV,KAAa,EACb,QAAgB,EAChB,cAA+B;QAE/B,cAAc,GAAG,IAAA,qBAAK,EAAC,cAAc,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC7D,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QACD,MAAM,OAAO,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,OAAmB;QACpC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAKD,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;IACrD,CAAC;CACF,CAAA;AApCY,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEiC,4CAAmB,EAAiC,gBAAU;GAD/F,eAAe,CAoC3B;AApCY,0CAAe"}
@@ -11,9 +11,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CoreUserModel = void 0;
13
13
  const graphql_1 = require("@nestjs/graphql");
14
+ const mongoose_1 = require("@nestjs/mongoose");
14
15
  const class_validator_1 = require("class-validator");
15
16
  const core_persistence_model_1 = require("../../common/models/core-persistence.model");
16
- const mongoose_1 = require("@nestjs/mongoose");
17
17
  let CoreUserModel = class CoreUserModel extends core_persistence_model_1.CorePersistenceModel {
18
18
  constructor() {
19
19
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"core-user.model.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-user.model.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.model.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,21 @@
1
- import { FilterArgs } from '../../common/args/filter.args';
2
- import { CoreBasicUserService } from './core-basic-user.service';
1
+ import { Document, Model } from 'mongoose';
2
+ import { ServiceOptions } from '../../common/interfaces/service-options.interface';
3
+ import { CrudService } from '../../common/services/crud.service';
4
+ import { EmailService } from '../../common/services/email.service';
5
+ import { CoreModelConstructor } from '../../common/types/core-model-constructor.type';
3
6
  import { CoreUserModel } from './core-user.model';
4
7
  import { CoreUserCreateInput } from './inputs/core-user-create.input';
5
8
  import { CoreUserInput } from './inputs/core-user.input';
6
- import { Model, Document } from 'mongoose';
7
- import { EmailService } from '../../common/services/email.service';
8
- export declare abstract class CoreUserService<TUser extends CoreUserModel, TUserInput extends CoreUserInput, TUserCreateInput extends CoreUserCreateInput> extends CoreBasicUserService<TUser, TUserInput, TUserCreateInput> {
9
- protected readonly userModel: Model<TUser & Document>;
9
+ export declare abstract class CoreUserService<TUser extends CoreUserModel, TUserInput extends CoreUserInput, TUserCreateInput extends CoreUserCreateInput> extends CrudService<TUser> {
10
10
  protected emailService: EmailService;
11
- protected constructor(userModel: Model<TUser & Document>, emailService: EmailService);
12
- create(input: TUserCreateInput, currentUser?: TUser, ...args: any[]): Promise<TUser>;
13
- delete(id: string, ...args: any[]): Promise<TUser>;
14
- get(id: string, ...args: any[]): Promise<TUser>;
15
- find(filterArgs?: FilterArgs, ...args: any[]): Promise<TUser[]>;
16
- verify(token: string, ...args: any[]): Promise<TUser>;
17
- resetPassword(token: string, newPassword: string, ...args: any[]): Promise<TUser>;
18
- setPasswordResetTokenForEmail(email: string, ...args: any[]): Promise<TUser>;
19
- setRoles(userId: string, roles: string[], ...args: any[]): Promise<TUser>;
20
- update(id: string, input: TUserInput, currentUser: TUser, ...args: any[]): Promise<TUser>;
21
- protected prepareInput(input: Record<string, any>, currentUser?: TUser, options?: {
22
- [key: string]: any;
23
- checkRoles?: boolean;
24
- clone?: boolean;
25
- }, ...args: any[]): Promise<Record<string, any>>;
26
- protected prepareOutput(user: TUser, options?: {
27
- [key: string]: any;
28
- clone?: boolean;
29
- }, ...args: any[]): Promise<TUser>;
11
+ protected readonly mainDbModel: Model<TUser & Document>;
12
+ protected mainModelConstructor: CoreModelConstructor<TUser>;
13
+ protected constructor(emailService: EmailService, mainDbModel: Model<TUser & Document>, mainModelConstructor: CoreModelConstructor<TUser>);
14
+ create(input: any, serviceOptions?: ServiceOptions): Promise<TUser>;
15
+ getViaEmail(email: string, serviceOptions?: ServiceOptions): Promise<TUser>;
16
+ getVerifiedState(token: string, serviceOptions?: ServiceOptions): Promise<boolean>;
17
+ verify(token: string, serviceOptions?: ServiceOptions): Promise<TUser>;
18
+ resetPassword(token: string, newPassword: string, serviceOptions?: ServiceOptions): Promise<TUser>;
19
+ setPasswordResetTokenForEmail(email: string, serviceOptions?: ServiceOptions): Promise<TUser>;
20
+ setRoles(userId: string, roles: string[], serviceOptions?: ServiceOptions): Promise<TUser>;
30
21
  }
@@ -3,123 +3,102 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoreUserService = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const bcrypt = require("bcrypt");
6
- const graphql_subscriptions_1 = require("graphql-subscriptions");
7
- const filter_helper_1 = require("../../common/helpers/filter.helper");
8
- const service_helper_1 = require("../../common/helpers/service.helper");
9
- const core_basic_user_service_1 = require("./core-basic-user.service");
10
6
  const crypto = require("crypto");
11
- const pubSub = new graphql_subscriptions_1.PubSub();
12
- class CoreUserService extends core_basic_user_service_1.CoreBasicUserService {
13
- constructor(userModel, emailService) {
14
- super(userModel);
15
- this.userModel = userModel;
7
+ const config_helper_1 = require("../../common/helpers/config.helper");
8
+ const crud_service_1 = require("../../common/services/crud.service");
9
+ class CoreUserService extends crud_service_1.CrudService {
10
+ constructor(emailService, mainDbModel, mainModelConstructor) {
11
+ super();
16
12
  this.emailService = emailService;
13
+ this.mainDbModel = mainDbModel;
14
+ this.mainModelConstructor = mainModelConstructor;
17
15
  }
18
- async create(input, currentUser, ...args) {
19
- await this.prepareInput(input, currentUser, { create: true });
20
- const createdUser = new this.userModel(Object.assign(Object.assign({}, input), { verificationToken: crypto.randomBytes(32).toString('hex') }));
21
- try {
22
- await createdUser.save();
23
- }
24
- catch (error) {
25
- if (error.code === 11000) {
26
- throw new common_1.UnprocessableEntityException(`User with email address "${input.email}" already exists`);
16
+ async create(input, serviceOptions) {
17
+ serviceOptions = (0, config_helper_1.merge)({ prepareInput: { create: true } }, serviceOptions);
18
+ return this.process(async (data) => {
19
+ const createdUser = new this.mainDbModel(Object.assign(Object.assign({}, data.input), { verificationToken: crypto.randomBytes(32).toString('hex') }));
20
+ try {
21
+ await createdUser.save();
27
22
  }
28
- else {
29
- throw new common_1.UnprocessableEntityException();
23
+ catch (error) {
24
+ if (error.code === 11000) {
25
+ throw new common_1.UnprocessableEntityException(`User with email address "${data.input.email}" already exists`);
26
+ }
27
+ else {
28
+ throw new common_1.UnprocessableEntityException();
29
+ }
30
30
  }
31
- }
32
- const preparedUser = await this.prepareOutput(this.model.map(createdUser), args[0]);
33
- pubSub.publish('userCreated', { userCreated: preparedUser });
34
- return preparedUser;
31
+ return createdUser;
32
+ }, { input, serviceOptions });
35
33
  }
36
- async delete(id, ...args) {
37
- const user = await this.userModel.findById(id).exec();
38
- if (!user) {
39
- throw new common_1.NotFoundException();
34
+ async getViaEmail(email, serviceOptions) {
35
+ const dbObject = await this.mainDbModel.findOne({ email }).exec();
36
+ if (!dbObject) {
37
+ throw new common_1.NotFoundException(`No user found with email: ${email}`);
40
38
  }
41
- await user.delete();
42
- const deletedUser = await this.prepareOutput(this.model.map(user), args[0]);
43
- pubSub.publish('userDeleted', { userDeleted: deletedUser });
44
- return deletedUser;
39
+ return this.process(async () => dbObject, { dbObject, serviceOptions });
45
40
  }
46
- async get(id, ...args) {
47
- const user = await this.userModel.findById(id).exec();
41
+ async getVerifiedState(token, serviceOptions) {
42
+ const user = await this.mainDbModel.findOne({ verificationToken: token }).exec();
48
43
  if (!user) {
49
- throw new common_1.NotFoundException();
44
+ throw new common_1.NotFoundException(`No user found with verify token: ${token}`);
50
45
  }
51
- return this.prepareOutput(this.model.map(user), args[0]);
46
+ return user.verified;
52
47
  }
53
- async find(filterArgs, ...args) {
54
- const filterQuery = filter_helper_1.Filter.convertFilterArgsToQuery(filterArgs);
55
- return await Promise.all((await this.userModel.find(filterQuery[0], null, filterQuery[1]).exec()).map((user) => {
56
- return this.prepareOutput(this.model.map(user), args[0]);
57
- }));
58
- }
59
- async verify(token, ...args) {
60
- const user = await this.userModel.findOne({ verificationToken: token }).exec();
61
- if (!user) {
62
- throw new common_1.NotFoundException();
48
+ async verify(token, serviceOptions) {
49
+ const dbObject = await this.mainDbModel.findOne({ verificationToken: token }).exec();
50
+ if (!dbObject) {
51
+ throw new common_1.NotFoundException(`No user found with verify token: ${token}`);
63
52
  }
64
- if (!user.verificationToken) {
53
+ if (!dbObject.verificationToken) {
65
54
  throw new Error('User has no token');
66
55
  }
67
- if (user.verified) {
56
+ if (dbObject.verified) {
68
57
  throw new Error('User already verified');
69
58
  }
70
- await Object.assign(user, {
71
- verified: true,
72
- verificationToken: null,
73
- }).save();
74
- const verifiedUser = this.prepareOutput(this.model.map(user), args[0]);
75
- pubSub.publish('userVerified', { userVerified: verifiedUser });
76
- return verifiedUser;
59
+ return this.process(async () => {
60
+ await Object.assign(dbObject, {
61
+ verified: true,
62
+ verificationToken: null,
63
+ }).save();
64
+ return dbObject;
65
+ }, { dbObject, serviceOptions });
77
66
  }
78
- async resetPassword(token, newPassword, ...args) {
79
- const user = await this.userModel.findOne({ passwordResetToken: token }).exec();
80
- if (!user) {
81
- throw new common_1.NotFoundException();
67
+ async resetPassword(token, newPassword, serviceOptions) {
68
+ const dbObject = await this.mainDbModel.findOne({ passwordResetToken: token }).exec();
69
+ if (!dbObject) {
70
+ throw new common_1.NotFoundException(`No user found with password reset token: ${token}`);
82
71
  }
83
- await Object.assign(user, {
84
- password: await bcrypt.hash(newPassword, 10),
85
- passwordResetToken: null,
86
- }).save();
87
- return this.prepareOutput(this.model.map(user), args[0]);
72
+ return this.process(async () => {
73
+ await Object.assign(dbObject, {
74
+ password: await bcrypt.hash(newPassword, 10),
75
+ passwordResetToken: null,
76
+ }).save();
77
+ return dbObject;
78
+ }, { dbObject, serviceOptions });
88
79
  }
89
- async setPasswordResetTokenForEmail(email, ...args) {
90
- const user = await this.userModel.findOne({ email }).exec();
91
- if (!user) {
92
- throw new common_1.NotFoundException();
80
+ async setPasswordResetTokenForEmail(email, serviceOptions) {
81
+ const dbObject = await this.mainDbModel.findOne({ email }).exec();
82
+ if (!dbObject) {
83
+ throw new common_1.NotFoundException(`No user found with email: ${email}`);
93
84
  }
94
- const resetToken = crypto.randomBytes(32).toString('hex');
95
- user.passwordResetToken = resetToken;
96
- await user.save();
97
- return this.prepareOutput(this.model.map(user), args[0]);
85
+ return this.process(async () => {
86
+ const resetToken = crypto.randomBytes(32).toString('hex');
87
+ dbObject.passwordResetToken = resetToken;
88
+ await dbObject.save();
89
+ return dbObject;
90
+ }, { dbObject, serviceOptions });
98
91
  }
99
- async setRoles(userId, roles, ...args) {
92
+ async setRoles(userId, roles, serviceOptions) {
100
93
  if (!Array.isArray(roles)) {
101
94
  throw new common_1.BadRequestException('Missing roles');
102
95
  }
103
96
  if (roles.some((role) => typeof role !== 'string')) {
104
97
  throw new common_1.BadRequestException('roles contains invalid values');
105
98
  }
106
- const user = await this.userModel.findByIdAndUpdate(userId, { roles }).exec();
107
- return this.prepareOutput(this.model.map(user), args[0]);
108
- }
109
- async update(id, input, currentUser, ...args) {
110
- const user = await this.userModel.findById(id).exec();
111
- if (!user) {
112
- throw new common_1.NotFoundException(`User not found with ID: ${id}`);
113
- }
114
- await this.prepareInput(input, currentUser);
115
- await Object.assign(user, input).save();
116
- return await this.prepareOutput(this.model.map(user), args[0]);
117
- }
118
- async prepareInput(input, currentUser, options = {}, ...args) {
119
- return service_helper_1.ServiceHelper.prepareInput(input, currentUser, options);
120
- }
121
- async prepareOutput(user, options = {}, ...args) {
122
- return service_helper_1.ServiceHelper.prepareOutput(user, options);
99
+ return this.process(async (data) => {
100
+ return await this.mainDbModel.findByIdAndUpdate(userId, { roles }).exec();
101
+ }, { serviceOptions });
123
102
  }
124
103
  }
125
104
  exports.CoreUserService = CoreUserService;
@@ -1 +1 @@
1
- {"version":3,"file":"core-user.service.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-user.service.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.service.ts"],"names":[],"mappings":"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"}