identity-admin 1.28.25 → 1.28.26

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 (213) hide show
  1. package/README.md +148 -295
  2. package/lib/Dashboard.d.ts +14 -14
  3. package/lib/Dashboard.js +95 -95
  4. package/lib/container/helpers/HelperInversify.d.ts +6 -6
  5. package/lib/container/helpers/HelperInversify.js +10 -10
  6. package/lib/container/helpers/HelperTypes.d.ts +5 -5
  7. package/lib/container/helpers/HelperTypes.js +7 -7
  8. package/lib/container/index.d.ts +1 -1
  9. package/lib/container/index.js +14 -14
  10. package/lib/container/repositories/RepositoryInversify.d.ts +4 -4
  11. package/lib/container/repositories/RepositoryInversify.js +13 -13
  12. package/lib/container/repositories/RepositoryTypes.d.ts +4 -4
  13. package/lib/container/repositories/RepositoryTypes.js +6 -6
  14. package/lib/container/types.d.ts +8 -8
  15. package/lib/container/types.js +9 -9
  16. package/lib/controllers/ActionController.d.ts +9 -9
  17. package/lib/controllers/ActionController.js +141 -141
  18. package/lib/controllers/AdminNotificationController.d.ts +8 -8
  19. package/lib/controllers/AdminNotificationController.js +69 -69
  20. package/lib/controllers/DashboardController.d.ts +45 -45
  21. package/lib/controllers/DashboardController.js +827 -827
  22. package/lib/controllers/PermissionController.d.ts +6 -0
  23. package/lib/controllers/PermissionController.js +52 -0
  24. package/lib/controllers/ResourceController.d.ts +15 -15
  25. package/lib/controllers/ResourceController.js +128 -126
  26. package/lib/helpers/ActionsGenerator.d.ts +11 -11
  27. package/lib/helpers/ActionsGenerator.js +168 -168
  28. package/lib/helpers/AdminNotifications/AdminNotificationCreation.d.ts +54 -54
  29. package/lib/helpers/AdminNotifications/AdminNotificationCreation.js +66 -66
  30. package/lib/helpers/AdminNotifications/AdminNotificationFetcher.d.ts +63 -63
  31. package/lib/helpers/AdminNotifications/AdminNotificationFetcher.js +45 -45
  32. package/lib/helpers/FilterQueryHelper.d.ts +9 -9
  33. package/lib/helpers/FilterQueryHelper.js +83 -83
  34. package/lib/helpers/FiltersHelper.d.ts +9 -9
  35. package/lib/helpers/FiltersHelper.js +126 -126
  36. package/lib/helpers/JsonRichText/DraftRawToUniversalConverter.d.ts +3 -3
  37. package/lib/helpers/JsonRichText/DraftRawToUniversalConverter.js +144 -144
  38. package/lib/helpers/JsonRichText/IDraftRawType.d.ts +18 -18
  39. package/lib/helpers/JsonRichText/IDraftRawType.js +2 -2
  40. package/lib/helpers/JsonRichText/IUniversalJsonType.d.ts +24 -24
  41. package/lib/helpers/JsonRichText/IUniversalJsonType.js +10 -10
  42. package/lib/helpers/LocalesHelper.d.ts +4 -4
  43. package/lib/helpers/LocalesHelper.js +73 -73
  44. package/lib/helpers/LocalizedStringHelper.d.ts +11 -11
  45. package/lib/helpers/LocalizedStringHelper.js +76 -76
  46. package/lib/helpers/Permissions/PermissionFetcher.d.ts +8 -8
  47. package/lib/helpers/Permissions/PermissionFetcher.js +95 -95
  48. package/lib/helpers/Permissions/PermissionLabel.d.ts +2 -2
  49. package/lib/helpers/Permissions/PermissionLabel.js +42 -42
  50. package/lib/helpers/Permissions/PermissionMapper.d.ts +13 -13
  51. package/lib/helpers/Permissions/PermissionMapper.js +35 -35
  52. package/lib/helpers/Permissions/PermissionResource.d.ts +6 -6
  53. package/lib/helpers/Permissions/PermissionResource.js +62 -62
  54. package/lib/helpers/Permissions/PermissionSavingService.d.ts +13 -13
  55. package/lib/helpers/Permissions/PermissionSavingService.js +32 -32
  56. package/lib/helpers/Permissions/SavePermissionGroup.d.ts +6 -6
  57. package/lib/helpers/Permissions/SavePermissionGroup.js +32 -32
  58. package/lib/helpers/Permissions/UpdatePermissionGroup.d.ts +6 -6
  59. package/lib/helpers/Permissions/UpdatePermissionGroup.js +50 -50
  60. package/lib/helpers/Permissions/types.d.ts +17 -17
  61. package/lib/helpers/Permissions/types.js +2 -2
  62. package/lib/helpers/PopulationHelper.d.ts +12 -12
  63. package/lib/helpers/PopulationHelper.js +50 -50
  64. package/lib/helpers/RecordsCounter.d.ts +10 -10
  65. package/lib/helpers/RecordsCounter.js +33 -33
  66. package/lib/helpers/ReportsGenerator.d.ts +26 -26
  67. package/lib/helpers/ReportsGenerator.js +162 -162
  68. package/lib/helpers/ResourceGenerator.d.ts +9 -9
  69. package/lib/helpers/ResourceGenerator.js +172 -172
  70. package/lib/helpers/ResourceHelper.d.ts +28 -28
  71. package/lib/helpers/ResourceHelper.js +397 -397
  72. package/lib/helpers/RportsGenerator.d.ts +10 -10
  73. package/lib/helpers/RportsGenerator.js +21 -21
  74. package/lib/helpers/SchemaGenerator.d.ts +7 -7
  75. package/lib/helpers/SchemaGenerator.js +137 -137
  76. package/lib/helpers/SchemaHelper.d.ts +5 -5
  77. package/lib/helpers/SchemaHelper.js +21 -21
  78. package/lib/helpers/UserActionsLog/UserActionsLogHelper.d.ts +2 -2
  79. package/lib/helpers/UserActionsLog/UserActionsLogHelper.js +49 -49
  80. package/lib/locales/en.json +54 -54
  81. package/lib/middlewares/cache/decorator.d.ts +3 -3
  82. package/lib/middlewares/cache/decorator.js +60 -60
  83. package/lib/middlewares/cache/deletionMethods.d.ts +3 -3
  84. package/lib/middlewares/cache/deletionMethods.js +23 -23
  85. package/lib/middlewares/isAuth.d.ts +13 -13
  86. package/lib/middlewares/isAuth.js +43 -43
  87. package/lib/models/ModelNames.d.ts +10 -10
  88. package/lib/models/ModelNames.js +13 -13
  89. package/lib/models/adminNotification/AdminNotification.d.ts +5 -5
  90. package/lib/models/adminNotification/AdminNotification.js +70 -70
  91. package/lib/models/adminNotification/IAdminNotification.d.ts +35 -35
  92. package/lib/models/adminNotification/IAdminNotification.js +15 -15
  93. package/lib/models/adminpermission/AdminPermission.d.ts +6 -11
  94. package/lib/models/adminpermission/AdminPermission.js +27 -23
  95. package/lib/models/adminpermission/IAdminPermission.d.ts +13 -13
  96. package/lib/models/adminpermission/IAdminPermission.js +2 -2
  97. package/lib/models/customPage/CustomPage.d.ts +2 -2
  98. package/lib/models/customPage/CustomPage.js +38 -38
  99. package/lib/models/customPage/ICustomPage.d.ts +17 -17
  100. package/lib/models/customPage/ICustomPage.js +2 -2
  101. package/lib/models/file/File.d.ts +2 -2
  102. package/lib/models/file/File.js +23 -23
  103. package/lib/models/file/IFile.d.ts +15 -15
  104. package/lib/models/file/IFile.js +2 -2
  105. package/lib/models/language/ILanguage.d.ts +8 -0
  106. package/lib/models/language/ILanguage.js +8 -0
  107. package/lib/models/language/LanguageSchema.d.ts +9 -0
  108. package/lib/models/language/LanguageSchema.js +17 -0
  109. package/lib/models/location/ILocation.d.ts +16 -16
  110. package/lib/models/location/ILocation.js +2 -2
  111. package/lib/models/location/Location.d.ts +2 -2
  112. package/lib/models/location/Location.js +29 -29
  113. package/lib/models/mailLog/IMailLog.d.ts +14 -14
  114. package/lib/models/mailLog/IMailLog.js +2 -2
  115. package/lib/models/mailLog/MailLog.d.ts +3 -3
  116. package/lib/models/mailLog/MailLog.js +23 -23
  117. package/lib/models/modelConfiguration/IModelConfigurations.d.ts +31 -31
  118. package/lib/models/modelConfiguration/IModelConfigurations.js +2 -2
  119. package/lib/models/modelConfiguration/ModelConfiguration.d.ts +13 -13
  120. package/lib/models/modelConfiguration/ModelConfiguration.js +103 -103
  121. package/lib/models/permission/IPermission.d.ts +14 -14
  122. package/lib/models/permission/IPermission.js +2 -2
  123. package/lib/models/permission/Permission.d.ts +6 -2
  124. package/lib/models/permission/Permission.js +28 -21
  125. package/lib/models/permissiongroup/IPermissionGroup.d.ts +13 -0
  126. package/lib/models/permissiongroup/IPermissionGroup.js +2 -0
  127. package/lib/models/permissiongroup/PermissionGroup.d.ts +6 -0
  128. package/lib/models/permissiongroup/PermissionGroup.js +16 -0
  129. package/lib/models/request-log/IRequestLog.d.ts +22 -22
  130. package/lib/models/request-log/IRequestLog.js +2 -2
  131. package/lib/models/request-log/RequestLog.d.ts +3 -3
  132. package/lib/models/request-log/RequestLog.js +51 -51
  133. package/lib/models/userActionsLog/IUserActionsLog.d.ts +26 -26
  134. package/lib/models/userActionsLog/IUserActionsLog.js +11 -11
  135. package/lib/models/userActionsLog/UserActionsLog.d.ts +3 -3
  136. package/lib/models/userActionsLog/UserActionsLog.js +41 -41
  137. package/lib/pdf/ReportTemplate.d.ts +71 -71
  138. package/lib/pdf/ReportTemplate.js +94 -94
  139. package/lib/repositories/AdminNotificationRepository.d.ts +7 -7
  140. package/lib/repositories/AdminNotificationRepository.js +23 -23
  141. package/lib/repositories/AdminPermissionRepository.d.ts +7 -0
  142. package/lib/repositories/AdminPermissionRepository.js +23 -0
  143. package/lib/repositories/DashboardRepository.d.ts +5 -5
  144. package/lib/repositories/DashboardRepository.js +12 -12
  145. package/lib/repositories/PermissionGroupRepository.d.ts +7 -0
  146. package/lib/repositories/PermissionGroupRepository.js +23 -0
  147. package/lib/repositories/PermissionRepository.d.ts +7 -0
  148. package/lib/repositories/PermissionRepository.js +23 -0
  149. package/lib/repositories/Repository.d.ts +68 -68
  150. package/lib/repositories/Repository.js +215 -215
  151. package/lib/repositories/RequestLogRepository.d.ts +10 -10
  152. package/lib/repositories/RequestLogRepository.js +54 -54
  153. package/lib/repositories/SaveResult.d.ts +14 -14
  154. package/lib/repositories/SaveResult.js +18 -18
  155. package/lib/resources/AdminNotificationsResource.d.ts +3 -3
  156. package/lib/resources/AdminNotificationsResource.js +23 -23
  157. package/lib/resources/AdminPermissionResource.d.ts +5 -0
  158. package/lib/resources/AdminPermissionResource.js +36 -0
  159. package/lib/resources/PermissionGroupResource.d.ts +5 -0
  160. package/lib/resources/PermissionGroupResource.js +53 -0
  161. package/lib/resources/PermissionsResource.d.ts +5 -0
  162. package/lib/resources/PermissionsResource.js +23 -0
  163. package/lib/resources/parents.d.ts +12 -4
  164. package/lib/resources/parents.js +15 -7
  165. package/lib/router/index.d.ts +8 -8
  166. package/lib/router/index.js +104 -104
  167. package/lib/seeds/PermissionSeeder.d.ts +4 -0
  168. package/lib/seeds/PermissionSeeder.js +56 -0
  169. package/lib/types/DashbordConfig.d.ts +21 -21
  170. package/lib/types/DashbordConfig.js +2 -2
  171. package/lib/types/IConfigurationFile.d.ts +14 -13
  172. package/lib/types/IConfigurationFile.js +2 -2
  173. package/lib/types/IResourceFile.d.ts +736 -736
  174. package/lib/types/IResourceFile.js +2 -2
  175. package/lib/types/IResourceResponse.d.ts +96 -96
  176. package/lib/types/IResourceResponse.js +2 -2
  177. package/lib/types/helpers.d.ts +71 -68
  178. package/lib/types/helpers.js +83 -83
  179. package/lib/utils/DateUtils.d.ts +7 -7
  180. package/lib/utils/DateUtils.js +45 -45
  181. package/lib/utils/ResourceUtils.d.ts +2 -2
  182. package/lib/utils/ResourceUtils.js +7 -7
  183. package/lib/utils/ResponseUtils.d.ts +11 -11
  184. package/lib/utils/ResponseUtils.js +41 -41
  185. package/lib/utils/StringUtils.d.ts +9 -9
  186. package/lib/utils/StringUtils.js +46 -46
  187. package/lib/view/asset-manifest.json +18 -18
  188. package/lib/view/assets/icons/delete_icon.svg +3 -3
  189. package/lib/view/assets/icons/flags/ic_flag_cn.svg +9 -9
  190. package/lib/view/assets/icons/flags/ic_flag_sa.svg +9 -9
  191. package/lib/view/assets/icons/flags/ic_flag_vn.svg +9 -9
  192. package/lib/view/assets/icons/info_icon.svg +3 -3
  193. package/lib/view/assets/icons/navbar/ic_banking.svg +5 -5
  194. package/lib/view/assets/icons/navbar/ic_invoice.svg +4 -4
  195. package/lib/view/assets/icons/navbar/ic_kanban.svg +7 -7
  196. package/lib/view/assets/icons/navbar/ic_menu_item.svg +8 -8
  197. package/lib/view/assets/icons/small_info_icon.svg +3 -3
  198. package/lib/view/assets/illustrations/Group 16.svg +4 -4
  199. package/lib/view/assets/illustrations/logo.svg +5 -5
  200. package/lib/view/favicon/browserconfig.xml +9 -9
  201. package/lib/view/favicon/safari-pinned-tab.svg +182 -182
  202. package/lib/view/favicon/site.webmanifest +19 -19
  203. package/lib/view/fonts/index.css +18 -18
  204. package/lib/view/index.html +52 -52
  205. package/lib/view/manifest.json +20 -20
  206. package/lib/view/robots.txt +3 -3
  207. package/lib/view/static/css/main.54de06ef.css +1 -1
  208. package/lib/view/static/js/574.778b5963.chunk.js +1 -1
  209. package/lib/view/static/js/678.521704a3.chunk.js +1 -1
  210. package/lib/view/static/js/798.54856416.chunk.js +1 -1
  211. package/lib/view/static/js/main.4687f255.js +2 -2
  212. package/lib/view/static/js/main.4687f255.js.LICENSE.txt +214 -214
  213. package/package.json +64 -64
@@ -1,68 +1,68 @@
1
- import { Aggregate, Document, Model } from 'mongoose';
2
- import SaveResult from './SaveResult';
3
- export interface PaginateParams {
4
- page: number;
5
- perPage: number;
6
- }
7
- interface IQueryOptions {
8
- filter?: any;
9
- sort?: any;
10
- select?: any;
11
- limit?: number;
12
- skip?: number;
13
- paginateParams?: PaginateParams;
14
- populate?: any;
15
- }
16
- export interface PageInfo {
17
- currentPage: number;
18
- pagesCount: number;
19
- nextPage: number;
20
- recordsCount: number;
21
- perPage: number;
22
- }
23
- export interface Page<T> {
24
- records: T[];
25
- pageInfo: PageInfo;
26
- }
27
- export interface IDashboardRepository {
28
- }
29
- export interface IRepository<T extends Document> {
30
- findById(id: any): Promise<T | null>;
31
- findOne(queryOptions?: IQueryOptions): Promise<T | null>;
32
- findMany(queryOptions?: IQueryOptions): Promise<T[]>;
33
- count(filterOptions: any): Promise<number>;
34
- save(props: any): Promise<SaveResult<T>>;
35
- saveAll(props: any[]): Promise<any>;
36
- findByIdAndUpdate(id: any, props: any): Promise<T | null>;
37
- findOneAndUpdate(filter: any, props: any, options?: any): Promise<T | null>;
38
- remove(filterOptions: any): Promise<T | null>;
39
- distinct(field: string, filterOptions: any): Promise<T[] | null>;
40
- paginate(queryOptions: IQueryOptions): Promise<Page<T>>;
41
- update(instance: T, props: any): Promise<SaveResult<T>>;
42
- saveInstance(instance: T): Promise<SaveResult<T>>;
43
- }
44
- export default class Repository<T extends Document> implements IRepository<T>, IDashboardRepository {
45
- protected model: Model<T>;
46
- private static NO_NEXT_PAGE;
47
- constructor(model: Model<T>);
48
- findById(id: any): Promise<T | null>;
49
- findOne(queryOptions?: IQueryOptions): Promise<T | null>;
50
- findMany(queryOptions: IQueryOptions): Promise<T[]>;
51
- paginate(queryOptions: IQueryOptions): Promise<Page<T>>;
52
- private getLimit;
53
- private getSkip;
54
- toLimitSkip(paginateParams: PaginateParams): [number, number];
55
- protected createPageInfo(filter: any, skip: number, limit: number): Promise<PageInfo>;
56
- protected createPageInfoFromAggregate(aggregate: Aggregate<any[]>, skip: number, limit: number): Promise<PageInfo>;
57
- count(filter: any): Promise<number>;
58
- countAggregate(aggregate: Aggregate<any[]>): Promise<number>;
59
- update(instance: T, props: any): Promise<SaveResult<T>>;
60
- save(props: any): Promise<SaveResult<T>>;
61
- saveInstance(instance: T): Promise<SaveResult<T>>;
62
- saveAll(props: any[]): Promise<any>;
63
- findByIdAndUpdate(id: any, props: any): Promise<T | null>;
64
- findOneAndUpdate(filter: any, props: any): Promise<T | null>;
65
- remove(filter: any): Promise<T | null>;
66
- distinct(field: string, filter: any): Promise<T[] | null>;
67
- }
68
- export {};
1
+ import { Aggregate, Document, Model } from 'mongoose';
2
+ import SaveResult from './SaveResult';
3
+ export interface PaginateParams {
4
+ page: number;
5
+ perPage: number;
6
+ }
7
+ interface IQueryOptions {
8
+ filter?: any;
9
+ sort?: any;
10
+ select?: any;
11
+ limit?: number;
12
+ skip?: number;
13
+ paginateParams?: PaginateParams;
14
+ populate?: any;
15
+ }
16
+ export interface PageInfo {
17
+ currentPage: number;
18
+ pagesCount: number;
19
+ nextPage: number;
20
+ recordsCount: number;
21
+ perPage: number;
22
+ }
23
+ export interface Page<T> {
24
+ records: T[];
25
+ pageInfo: PageInfo;
26
+ }
27
+ export interface IDashboardRepository {
28
+ }
29
+ export interface IRepository<T extends Document> {
30
+ findById(id: any): Promise<T | null>;
31
+ findOne(queryOptions?: IQueryOptions): Promise<T | null>;
32
+ findMany(queryOptions?: IQueryOptions): Promise<T[]>;
33
+ count(filterOptions: any): Promise<number>;
34
+ save(props: any): Promise<SaveResult<T>>;
35
+ saveAll(props: any[]): Promise<any>;
36
+ findByIdAndUpdate(id: any, props: any): Promise<T | null>;
37
+ findOneAndUpdate(filter: any, props: any, options?: any): Promise<T | null>;
38
+ remove(filterOptions: any): Promise<T | null>;
39
+ distinct(field: string, filterOptions: any): Promise<T[] | null>;
40
+ paginate(queryOptions: IQueryOptions): Promise<Page<T>>;
41
+ update(instance: T, props: any): Promise<SaveResult<T>>;
42
+ saveInstance(instance: T): Promise<SaveResult<T>>;
43
+ }
44
+ export default class Repository<T extends Document> implements IRepository<T>, IDashboardRepository {
45
+ protected model: Model<T>;
46
+ private static NO_NEXT_PAGE;
47
+ constructor(model: Model<T>);
48
+ findById(id: any): Promise<T | null>;
49
+ findOne(queryOptions?: IQueryOptions): Promise<T | null>;
50
+ findMany(queryOptions: IQueryOptions): Promise<T[]>;
51
+ paginate(queryOptions: IQueryOptions): Promise<Page<T>>;
52
+ private getLimit;
53
+ private getSkip;
54
+ toLimitSkip(paginateParams: PaginateParams): [number, number];
55
+ protected createPageInfo(filter: any, skip: number, limit: number): Promise<PageInfo>;
56
+ protected createPageInfoFromAggregate(aggregate: Aggregate<any[]>, skip: number, limit: number): Promise<PageInfo>;
57
+ count(filter: any): Promise<number>;
58
+ countAggregate(aggregate: Aggregate<any[]>): Promise<number>;
59
+ update(instance: T, props: any): Promise<SaveResult<T>>;
60
+ save(props: any): Promise<SaveResult<T>>;
61
+ saveInstance(instance: T): Promise<SaveResult<T>>;
62
+ saveAll(props: any[]): Promise<any>;
63
+ findByIdAndUpdate(id: any, props: any): Promise<T | null>;
64
+ findOneAndUpdate(filter: any, props: any): Promise<T | null>;
65
+ remove(filter: any): Promise<T | null>;
66
+ distinct(field: string, filter: any): Promise<T[] | null>;
67
+ }
68
+ export {};
@@ -1,215 +1,215 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __param = (this && this.__param) || function (paramIndex, decorator) {
9
- return function (target, key) { decorator(target, key, paramIndex); }
10
- };
11
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
- return new (P || (P = Promise))(function (resolve, reject) {
14
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
- step((generator = generator.apply(thisArg, _arguments || [])).next());
18
- });
19
- };
20
- var __importDefault = (this && this.__importDefault) || function (mod) {
21
- return (mod && mod.__esModule) ? mod : { "default": mod };
22
- };
23
- var Repository_1;
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- const inversify_1 = require("inversify");
26
- const mongoose_1 = require("mongoose");
27
- const SaveResult_1 = __importDefault(require("./SaveResult"));
28
- let Repository = Repository_1 = class Repository {
29
- constructor(model) {
30
- this.model = model;
31
- }
32
- findById(id) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- return yield this.model.findById(id);
35
- });
36
- }
37
- findOne(queryOptions) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- const filter = (queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.filter) ? queryOptions.filter : {};
40
- const populate = queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.populate;
41
- return this.model.findOne(filter).populate(populate).exec();
42
- });
43
- }
44
- findMany(queryOptions) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const filter = queryOptions.filter ? queryOptions.filter : {};
47
- const sort = queryOptions.sort;
48
- const select = queryOptions.select;
49
- const limit = this.getLimit(queryOptions);
50
- const skip = this.getSkip(queryOptions);
51
- const populate = queryOptions.populate;
52
- var query = this.model.find(filter);
53
- if (select) {
54
- query = query.select(select);
55
- }
56
- if (sort) {
57
- query = query.sort(sort);
58
- }
59
- if (skip) {
60
- query = query.skip(skip);
61
- }
62
- if (limit) {
63
- query = query.limit(limit);
64
- }
65
- if (populate) {
66
- query = query.populate(populate);
67
- }
68
- return yield query;
69
- });
70
- }
71
- paginate(queryOptions) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- const filter = queryOptions.filter ? queryOptions.filter : {};
74
- const limit = this.getLimit(queryOptions);
75
- const skip = this.getSkip(queryOptions);
76
- const pageInfoPromise = yield this.createPageInfo(filter, skip, limit);
77
- const recordsPromise = yield this.findMany(queryOptions);
78
- const [records, pageInfo] = yield Promise.all([recordsPromise, pageInfoPromise]);
79
- return {
80
- records: records,
81
- pageInfo
82
- };
83
- });
84
- }
85
- getLimit(queryOptions) {
86
- if (queryOptions.paginateParams) {
87
- return queryOptions.paginateParams.perPage;
88
- }
89
- return queryOptions.limit;
90
- }
91
- getSkip(queryOptions) {
92
- if (queryOptions.paginateParams) {
93
- return queryOptions.paginateParams.perPage * (queryOptions.paginateParams.page - 1);
94
- }
95
- return queryOptions.skip;
96
- }
97
- toLimitSkip(paginateParams) {
98
- return [paginateParams.perPage, paginateParams.perPage * (paginateParams.page - 1)];
99
- }
100
- createPageInfo(filter, skip, limit) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const count = yield this.count(filter);
103
- const currentPage = (skip / limit) + 1;
104
- const pagesCount = Math.ceil(count / limit);
105
- const nextPage = currentPage < pagesCount ? (currentPage + 1) : Repository_1.NO_NEXT_PAGE;
106
- return {
107
- currentPage,
108
- pagesCount,
109
- nextPage,
110
- perPage: limit,
111
- recordsCount: count
112
- };
113
- });
114
- }
115
- createPageInfoFromAggregate(aggregate, skip, limit) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const count = yield this.countAggregate(aggregate);
118
- const currentPage = (skip / limit) + 1;
119
- const pagesCount = Math.ceil(count / limit);
120
- const nextPage = currentPage < pagesCount ? (currentPage + 1) : Repository_1.NO_NEXT_PAGE;
121
- return {
122
- currentPage,
123
- pagesCount,
124
- nextPage,
125
- perPage: limit,
126
- recordsCount: count
127
- };
128
- });
129
- }
130
- count(filter) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- return this.model.countDocuments(filter);
133
- });
134
- }
135
- countAggregate(aggregate) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- const queryResult = yield aggregate.count('count');
138
- if (queryResult.length == 0) {
139
- return 0;
140
- }
141
- return queryResult[0].count;
142
- });
143
- }
144
- update(instance, props) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- const allProps = Object.assign(Object.assign({}, instance.toObject()), props);
147
- return this.save(allProps);
148
- });
149
- }
150
- save(props) {
151
- return __awaiter(this, void 0, void 0, function* () {
152
- const instance = new this.model(props);
153
- const hasId = !!props._id;
154
- instance.isNew = !hasId;
155
- return this.saveInstance(instance);
156
- });
157
- }
158
- saveInstance(instance) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- var document;
161
- var errors = [];
162
- try {
163
- document = yield instance.save();
164
- return new SaveResult_1.default(document, errors);
165
- }
166
- catch (e) {
167
- if (e instanceof mongoose_1.Error.ValidationError) {
168
- errors = Object.keys(e.errors).map((key) => {
169
- const saveError = e.errors[key];
170
- return {
171
- path: saveError.path,
172
- type: saveError.kind,
173
- message: saveError.message
174
- };
175
- });
176
- }
177
- else {
178
- errors = [{ path: e.keyPattern, type: "", message: e.message }];
179
- }
180
- }
181
- return new SaveResult_1.default(document, errors);
182
- });
183
- }
184
- saveAll(props) {
185
- return __awaiter(this, void 0, void 0, function* () {
186
- return this.model.insertMany(props);
187
- });
188
- }
189
- findByIdAndUpdate(id, props) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- return yield this.model.findByIdAndUpdate(id, props, { new: true, returnOriginal: false, returnDocument: 'after' });
192
- });
193
- }
194
- findOneAndUpdate(filter, props) {
195
- return __awaiter(this, void 0, void 0, function* () {
196
- return yield this.model.findOneAndUpdate(filter, props, { new: true, returnOriginal: false, returnDocument: 'after', setDefaultsOnInsert: true, upsert: true });
197
- });
198
- }
199
- remove(filter) {
200
- return __awaiter(this, void 0, void 0, function* () {
201
- return yield this.model.findOneAndRemove(filter);
202
- });
203
- }
204
- distinct(field, filter) {
205
- return __awaiter(this, void 0, void 0, function* () {
206
- return yield this.model.distinct(field, filter);
207
- });
208
- }
209
- };
210
- Repository.NO_NEXT_PAGE = -1;
211
- Repository = Repository_1 = __decorate([
212
- (0, inversify_1.injectable)(),
213
- __param(0, (0, inversify_1.unmanaged)())
214
- ], Repository);
215
- exports.default = Repository;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
9
+ return function (target, key) { decorator(target, key, paramIndex); }
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ var Repository_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const inversify_1 = require("inversify");
26
+ const mongoose_1 = require("mongoose");
27
+ const SaveResult_1 = __importDefault(require("./SaveResult"));
28
+ let Repository = Repository_1 = class Repository {
29
+ constructor(model) {
30
+ this.model = model;
31
+ }
32
+ findById(id) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return yield this.model.findById(id);
35
+ });
36
+ }
37
+ findOne(queryOptions) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const filter = (queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.filter) ? queryOptions.filter : {};
40
+ const populate = queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.populate;
41
+ return this.model.findOne(filter).populate(populate).exec();
42
+ });
43
+ }
44
+ findMany(queryOptions) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const filter = queryOptions.filter ? queryOptions.filter : {};
47
+ const sort = queryOptions.sort;
48
+ const select = queryOptions.select;
49
+ const limit = this.getLimit(queryOptions);
50
+ const skip = this.getSkip(queryOptions);
51
+ const populate = queryOptions.populate;
52
+ var query = this.model.find(filter);
53
+ if (select) {
54
+ query = query.select(select);
55
+ }
56
+ if (sort) {
57
+ query = query.sort(sort);
58
+ }
59
+ if (skip) {
60
+ query = query.skip(skip);
61
+ }
62
+ if (limit) {
63
+ query = query.limit(limit);
64
+ }
65
+ if (populate) {
66
+ query = query.populate(populate);
67
+ }
68
+ return yield query;
69
+ });
70
+ }
71
+ paginate(queryOptions) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const filter = queryOptions.filter ? queryOptions.filter : {};
74
+ const limit = this.getLimit(queryOptions);
75
+ const skip = this.getSkip(queryOptions);
76
+ const pageInfoPromise = yield this.createPageInfo(filter, skip, limit);
77
+ const recordsPromise = yield this.findMany(queryOptions);
78
+ const [records, pageInfo] = yield Promise.all([recordsPromise, pageInfoPromise]);
79
+ return {
80
+ records: records,
81
+ pageInfo
82
+ };
83
+ });
84
+ }
85
+ getLimit(queryOptions) {
86
+ if (queryOptions.paginateParams) {
87
+ return queryOptions.paginateParams.perPage;
88
+ }
89
+ return queryOptions.limit;
90
+ }
91
+ getSkip(queryOptions) {
92
+ if (queryOptions.paginateParams) {
93
+ return queryOptions.paginateParams.perPage * (queryOptions.paginateParams.page - 1);
94
+ }
95
+ return queryOptions.skip;
96
+ }
97
+ toLimitSkip(paginateParams) {
98
+ return [paginateParams.perPage, paginateParams.perPage * (paginateParams.page - 1)];
99
+ }
100
+ createPageInfo(filter, skip, limit) {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ const count = yield this.count(filter);
103
+ const currentPage = (skip / limit) + 1;
104
+ const pagesCount = Math.ceil(count / limit);
105
+ const nextPage = currentPage < pagesCount ? (currentPage + 1) : Repository_1.NO_NEXT_PAGE;
106
+ return {
107
+ currentPage,
108
+ pagesCount,
109
+ nextPage,
110
+ perPage: limit,
111
+ recordsCount: count
112
+ };
113
+ });
114
+ }
115
+ createPageInfoFromAggregate(aggregate, skip, limit) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const count = yield this.countAggregate(aggregate);
118
+ const currentPage = (skip / limit) + 1;
119
+ const pagesCount = Math.ceil(count / limit);
120
+ const nextPage = currentPage < pagesCount ? (currentPage + 1) : Repository_1.NO_NEXT_PAGE;
121
+ return {
122
+ currentPage,
123
+ pagesCount,
124
+ nextPage,
125
+ perPage: limit,
126
+ recordsCount: count
127
+ };
128
+ });
129
+ }
130
+ count(filter) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ return this.model.countDocuments(filter);
133
+ });
134
+ }
135
+ countAggregate(aggregate) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ const queryResult = yield aggregate.count('count');
138
+ if (queryResult.length == 0) {
139
+ return 0;
140
+ }
141
+ return queryResult[0].count;
142
+ });
143
+ }
144
+ update(instance, props) {
145
+ return __awaiter(this, void 0, void 0, function* () {
146
+ const allProps = Object.assign(Object.assign({}, instance.toObject()), props);
147
+ return this.save(allProps);
148
+ });
149
+ }
150
+ save(props) {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ const instance = new this.model(props);
153
+ const hasId = !!props._id;
154
+ instance.isNew = !hasId;
155
+ return this.saveInstance(instance);
156
+ });
157
+ }
158
+ saveInstance(instance) {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ var document;
161
+ var errors = [];
162
+ try {
163
+ document = yield instance.save();
164
+ return new SaveResult_1.default(document, errors);
165
+ }
166
+ catch (e) {
167
+ if (e instanceof mongoose_1.Error.ValidationError) {
168
+ errors = Object.keys(e.errors).map((key) => {
169
+ const saveError = e.errors[key];
170
+ return {
171
+ path: saveError.path,
172
+ type: saveError.kind,
173
+ message: saveError.message
174
+ };
175
+ });
176
+ }
177
+ else {
178
+ errors = [{ path: e.keyPattern, type: "", message: e.message }];
179
+ }
180
+ }
181
+ return new SaveResult_1.default(document, errors);
182
+ });
183
+ }
184
+ saveAll(props) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ return this.model.insertMany(props);
187
+ });
188
+ }
189
+ findByIdAndUpdate(id, props) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ return yield this.model.findByIdAndUpdate(id, props, { new: true, returnOriginal: false, returnDocument: 'after' });
192
+ });
193
+ }
194
+ findOneAndUpdate(filter, props) {
195
+ return __awaiter(this, void 0, void 0, function* () {
196
+ return yield this.model.findOneAndUpdate(filter, props, { new: true, returnOriginal: false, returnDocument: 'after', setDefaultsOnInsert: true, upsert: true });
197
+ });
198
+ }
199
+ remove(filter) {
200
+ return __awaiter(this, void 0, void 0, function* () {
201
+ return yield this.model.findOneAndRemove(filter);
202
+ });
203
+ }
204
+ distinct(field, filter) {
205
+ return __awaiter(this, void 0, void 0, function* () {
206
+ return yield this.model.distinct(field, filter);
207
+ });
208
+ }
209
+ };
210
+ Repository.NO_NEXT_PAGE = -1;
211
+ Repository = Repository_1 = __decorate([
212
+ (0, inversify_1.injectable)(),
213
+ __param(0, (0, inversify_1.unmanaged)())
214
+ ], Repository);
215
+ exports.default = Repository;
@@ -1,10 +1,10 @@
1
- import { IRequestLogDocument } from '../models/request-log/IRequestLog';
2
- import Repository, { IRepository } from './Repository';
3
- export interface IRequestLogRepository extends IRepository<IRequestLogDocument> {
4
- deleteTillLastDays(days: number): Promise<void>;
5
- }
6
- export default class RequestLogRepository extends Repository<IRequestLogDocument> {
7
- constructor();
8
- deleteTillLastDays(days: number): Promise<void>;
9
- getRequestLogsStats(): Promise<any[]>;
10
- }
1
+ import { IRequestLogDocument } from '../models/request-log/IRequestLog';
2
+ import Repository, { IRepository } from './Repository';
3
+ export interface IRequestLogRepository extends IRepository<IRequestLogDocument> {
4
+ deleteTillLastDays(days: number): Promise<void>;
5
+ }
6
+ export default class RequestLogRepository extends Repository<IRequestLogDocument> {
7
+ constructor();
8
+ deleteTillLastDays(days: number): Promise<void>;
9
+ getRequestLogsStats(): Promise<any[]>;
10
+ }