@kipicore/dbcore 1.1.683 → 1.1.685

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 (208) hide show
  1. package/dist/configs/env.d.ts +0 -2
  2. package/dist/configs/env.js +0 -4
  3. package/dist/configs/index.d.ts +0 -2
  4. package/dist/configs/index.js +0 -2
  5. package/dist/constants/app.d.ts +29 -22
  6. package/dist/constants/app.js +35 -27
  7. package/dist/constants/errorMessages.d.ts +0 -17
  8. package/dist/constants/errorMessages.js +1 -20
  9. package/dist/constants/successMessages.d.ts +0 -14
  10. package/dist/constants/successMessages.js +1 -17
  11. package/dist/db/psql/migrations/20260714095754-create-arena-models.js +642 -0
  12. package/dist/db/psql/migrations/20260720092201-replace-facility-sports-with-sport-group-data.d.ts +2 -0
  13. package/dist/db/psql/migrations/20260720092201-replace-facility-sports-with-sport-group-data.js +138 -0
  14. package/dist/db/psql/migrations/20260722143500-create-school_has_sports.js +71 -0
  15. package/dist/helpers/index.d.ts +0 -3
  16. package/dist/helpers/index.js +0 -3
  17. package/dist/helpers/utils.d.ts +3 -5
  18. package/dist/helpers/utils.js +31 -58
  19. package/dist/index.d.ts +0 -4
  20. package/dist/index.js +0 -4
  21. package/dist/interfaces/ageGroupInterface.d.ts +12 -0
  22. package/dist/interfaces/amenityInterface.d.ts +23 -0
  23. package/dist/interfaces/assessmentTestInterface.d.ts +23 -0
  24. package/dist/interfaces/assessmentTestInterface.js +2 -0
  25. package/dist/interfaces/categoriesInterface.d.ts +1 -2
  26. package/dist/interfaces/equipmentInterface.d.ts +10 -0
  27. package/dist/interfaces/equipmentInterface.js +2 -0
  28. package/dist/interfaces/facilityMasterInterface.d.ts +9 -0
  29. package/dist/interfaces/facilityMasterInterface.js +2 -0
  30. package/dist/interfaces/index.d.ts +16 -1
  31. package/dist/interfaces/index.js +17 -1
  32. package/dist/interfaces/instituteInterface.d.ts +0 -1
  33. package/dist/interfaces/instituteOwnershipHistoryInterface.d.ts +1 -2
  34. package/dist/interfaces/institutePartnersInterface.d.ts +1 -2
  35. package/dist/interfaces/schoolHasSportInterface.d.ts +7 -0
  36. package/dist/interfaces/schoolHasSportInterface.js +2 -0
  37. package/dist/interfaces/skillInterface.d.ts +19 -0
  38. package/dist/interfaces/skillInterface.js +2 -0
  39. package/dist/interfaces/sportCategoryInterface.d.ts +9 -0
  40. package/dist/interfaces/sportCategoryInterface.js +2 -0
  41. package/dist/interfaces/sportGroupDataInterface.d.ts +7 -0
  42. package/dist/interfaces/sportGroupDataInterface.js +2 -0
  43. package/dist/interfaces/sportInfoInterface.d.ts +23 -0
  44. package/dist/interfaces/sportInfoInterface.js +2 -0
  45. package/dist/interfaces/sportInterface.d.ts +10 -0
  46. package/dist/interfaces/sportInterface.js +2 -0
  47. package/dist/interfaces/sportRoleInterface.d.ts +11 -0
  48. package/dist/interfaces/sportRoleInterface.js +2 -0
  49. package/dist/interfaces/sportSubCategoryInterface.d.ts +10 -0
  50. package/dist/interfaces/sportSubCategoryInterface.js +2 -0
  51. package/dist/interfaces/sportsAcademyInterface.d.ts +39 -0
  52. package/dist/interfaces/sportsAcademyInterface.js +2 -0
  53. package/dist/interfaces/studentSportTestInterface.d.ts +20 -0
  54. package/dist/interfaces/studentSportTestInterface.js +2 -0
  55. package/dist/interfaces/subCategoriesInterface.d.ts +1 -2
  56. package/dist/interfaces/subscriptionPlanInterface.d.ts +1 -2
  57. package/dist/interfaces/unitInterface.d.ts +10 -0
  58. package/dist/interfaces/unitInterface.js +2 -0
  59. package/dist/interfaces/userAmenityInterface.d.ts +23 -0
  60. package/dist/interfaces/userAmenityInterface.js +2 -0
  61. package/dist/interfaces/userInterface.d.ts +1 -3
  62. package/dist/interfaces/vendorCompanyMetaInterface.d.ts +1 -3
  63. package/dist/models/mongodb/amenityModel.d.ts +4 -0
  64. package/dist/models/mongodb/amenityModel.js +72 -0
  65. package/dist/models/mongodb/assessmentTestModel.d.ts +4 -0
  66. package/dist/models/mongodb/assessmentTestModel.js +72 -0
  67. package/dist/models/mongodb/index.d.ts +5 -0
  68. package/dist/models/mongodb/index.js +12 -1
  69. package/dist/models/mongodb/productMetaModel.js +0 -8
  70. package/dist/models/mongodb/sportInfoModel.d.ts +4 -0
  71. package/dist/models/mongodb/sportInfoModel.js +71 -0
  72. package/dist/models/mongodb/sportsAcademyModel.d.ts +4 -0
  73. package/dist/models/mongodb/sportsAcademyModel.js +89 -0
  74. package/dist/models/mongodb/studentSportTestModel.d.ts +4 -0
  75. package/dist/models/mongodb/studentSportTestModel.js +68 -0
  76. package/dist/models/mongodb/subscriptionPlanModel.js +0 -5
  77. package/dist/models/mongodb/userAmenityModel.d.ts +4 -0
  78. package/dist/models/mongodb/userAmenityModel.js +72 -0
  79. package/dist/models/mongodb/vendorCompanyMetaModel.js +1 -10
  80. package/dist/models/psql/SubCategoriesModel.d.ts +1 -2
  81. package/dist/models/psql/SubCategoriesModel.js +0 -5
  82. package/dist/models/psql/ageGroupModel.d.ts +22 -0
  83. package/dist/models/psql/ageGroupModel.js +76 -0
  84. package/dist/models/psql/categoriesModel.d.ts +1 -2
  85. package/dist/models/psql/categoriesModel.js +0 -5
  86. package/dist/models/psql/equipmentModel.d.ts +20 -0
  87. package/dist/models/psql/equipmentModel.js +57 -0
  88. package/dist/models/psql/facilityMasterModel.d.ts +18 -0
  89. package/dist/models/psql/facilityMasterModel.js +64 -0
  90. package/dist/models/psql/fileStorageModel.js +4 -3
  91. package/dist/models/psql/index.d.ts +11 -1
  92. package/dist/models/psql/index.js +25 -4
  93. package/dist/models/psql/instituteModel.d.ts +0 -1
  94. package/dist/models/psql/instituteModel.js +2 -5
  95. package/dist/models/psql/instituteOwnershipHistoryModel.d.ts +1 -2
  96. package/dist/models/psql/instituteOwnershipHistoryModel.js +3 -8
  97. package/dist/models/psql/institutePartnersModel.d.ts +1 -2
  98. package/dist/models/psql/institutePartnersModel.js +3 -8
  99. package/dist/models/psql/schoolHasSportModel.d.ts +17 -0
  100. package/dist/models/psql/schoolHasSportModel.js +76 -0
  101. package/dist/models/psql/skillModel.d.ts +25 -0
  102. package/dist/models/psql/skillModel.js +99 -0
  103. package/dist/models/psql/sportCategoryModel.d.ts +19 -0
  104. package/dist/models/psql/sportCategoryModel.js +53 -0
  105. package/dist/models/psql/sportGroupDataModel.d.ts +13 -0
  106. package/dist/models/psql/sportGroupDataModel.js +64 -0
  107. package/dist/models/psql/sportModel.d.ts +20 -0
  108. package/dist/models/psql/sportModel.js +58 -0
  109. package/dist/models/psql/sportRoleModel.d.ts +21 -0
  110. package/dist/models/psql/sportRoleModel.js +71 -0
  111. package/dist/models/psql/sportSubCategoryModel.d.ts +20 -0
  112. package/dist/models/psql/sportSubCategoryModel.js +75 -0
  113. package/dist/models/psql/unitModel.d.ts +20 -0
  114. package/dist/models/psql/unitModel.js +57 -0
  115. package/dist/models/psql/userModel.d.ts +1 -3
  116. package/dist/models/psql/userModel.js +2 -2
  117. package/dist/types/ageGroupType.d.ts +2 -0
  118. package/dist/types/ageGroupType.js +2 -0
  119. package/dist/types/assessmentTestType.d.ts +2 -0
  120. package/dist/types/assessmentTestType.js +2 -0
  121. package/dist/types/commonType.d.ts +1 -29
  122. package/dist/types/equipmentType.d.ts +2 -0
  123. package/dist/types/equipmentType.js +2 -0
  124. package/dist/types/facilityMasterType.d.ts +3 -0
  125. package/dist/types/facilityMasterType.js +2 -0
  126. package/dist/types/index.d.ts +16 -1
  127. package/dist/types/index.js +17 -1
  128. package/dist/types/schoolHasSportType.d.ts +2 -0
  129. package/dist/types/schoolHasSportType.js +2 -0
  130. package/dist/types/skillType.d.ts +2 -0
  131. package/dist/types/skillType.js +2 -0
  132. package/dist/types/sportCategoryType.d.ts +2 -0
  133. package/dist/types/sportCategoryType.js +2 -0
  134. package/dist/types/sportGroupDataType.d.ts +3 -0
  135. package/dist/types/sportGroupDataType.js +2 -0
  136. package/dist/types/sportInfoType.d.ts +2 -0
  137. package/dist/types/sportInfoType.js +2 -0
  138. package/dist/types/sportRoleType.d.ts +2 -0
  139. package/dist/types/sportRoleType.js +2 -0
  140. package/dist/types/sportSubCategoryType.d.ts +2 -0
  141. package/dist/types/sportSubCategoryType.js +2 -0
  142. package/dist/types/sportType.d.ts +2 -0
  143. package/dist/types/sportType.js +2 -0
  144. package/dist/types/sportsAcademyType.d.ts +2 -0
  145. package/dist/types/sportsAcademyType.js +2 -0
  146. package/dist/types/studentSportTestType.d.ts +2 -0
  147. package/dist/types/studentSportTestType.js +2 -0
  148. package/dist/types/unitType.d.ts +2 -0
  149. package/dist/types/unitType.js +2 -0
  150. package/dist/types/userAmenityType.d.ts +2 -0
  151. package/dist/types/userAmenityType.js +2 -0
  152. package/package.json +2 -10
  153. package/dist/commonValidator/commandValidator.d.ts +0 -27
  154. package/dist/commonValidator/commandValidator.js +0 -225
  155. package/dist/commonValidator/index.d.ts +0 -3
  156. package/dist/commonValidator/index.js +0 -24
  157. package/dist/commonValidator/joiCommonValidator.d.ts +0 -12
  158. package/dist/commonValidator/joiCommonValidator.js +0 -47
  159. package/dist/commonValidator/joiSchemaBuilder.d.ts +0 -6
  160. package/dist/commonValidator/joiSchemaBuilder.js +0 -70
  161. package/dist/configs/logger.d.ts +0 -2
  162. package/dist/configs/logger.js +0 -44
  163. package/dist/configs/redisConfig.d.ts +0 -4
  164. package/dist/configs/redisConfig.js +0 -32
  165. package/dist/db/psql/migrations/20260714111425-change_status_enum_to_string_in_institutes.js +0 -46
  166. package/dist/db/psql/migrations/20260714131500-add_note_to_institutes.js +0 -20
  167. package/dist/db/psql/migrations/20260715150000-create-ai-model-keys.d.ts +0 -2
  168. package/dist/db/psql/migrations/20260715150000-create-ai-model-keys.js +0 -156
  169. package/dist/db/psql/migrations/20260717071354-add_type_to_categories.d.ts +0 -2
  170. package/dist/db/psql/migrations/20260717071354-add_type_to_categories.js +0 -19
  171. package/dist/db/psql/migrations/20260717072745-add_type_to_sub_categories.d.ts +0 -2
  172. package/dist/db/psql/migrations/20260717072745-add_type_to_sub_categories.js +0 -19
  173. package/dist/db/psql/migrations/20260717095051-add_status_to_users.d.ts +0 -2
  174. package/dist/db/psql/migrations/20260717095051-add_status_to_users.js +0 -19
  175. package/dist/db/psql/migrations/20260721000001-add-deleted-at-to-rms-maintenance-activities.d.ts +0 -2
  176. package/dist/db/psql/migrations/20260721000001-add-deleted-at-to-rms-maintenance-activities.js +0 -12
  177. package/dist/db/psql/migrations/20260721000002-change-uploaded-from-enum-to-string-in-file-storage.d.ts +0 -2
  178. package/dist/db/psql/migrations/20260721000002-change-uploaded-from-enum-to-string-in-file-storage.js +0 -42
  179. package/dist/db/psql/migrations/20260722130134-add_portfolio_theme_to_users.d.ts +0 -2
  180. package/dist/db/psql/migrations/20260722130134-add_portfolio_theme_to_users.js +0 -22
  181. package/dist/db/psql/migrations/20260727123149-add_vendorCompanyId_to_institute_ownership_histories.d.ts +0 -2
  182. package/dist/db/psql/migrations/20260727123149-add_vendorCompanyId_to_institute_ownership_histories.js +0 -23
  183. package/dist/db/psql/migrations/20260727130802-add_vendorCompanyId_to_institute_partners.d.ts +0 -2
  184. package/dist/db/psql/migrations/20260727130802-add_vendorCompanyId_to_institute_partners.js +0 -23
  185. package/dist/db/psql/migrations/20260727132312-make_instituteId_and_vendorCompanyId_optional_in_institute_partners.d.ts +0 -2
  186. package/dist/db/psql/migrations/20260727132312-make_instituteId_and_vendorCompanyId_optional_in_institute_partners.js +0 -28
  187. package/dist/db/psql/migrations/20260727132747-make_instituteId_and_vendorCompanyId_optional_in_institute_ownership_histories.d.ts +0 -2
  188. package/dist/db/psql/migrations/20260727132747-make_instituteId_and_vendorCompanyId_optional_in_institute_ownership_histories.js +0 -25
  189. package/dist/helpers/sendEmail.d.ts +0 -3
  190. package/dist/helpers/sendEmail.js +0 -117
  191. package/dist/helpers/sendNotification.d.ts +0 -4
  192. package/dist/helpers/sendNotification.js +0 -34
  193. package/dist/helpers/sendSMS.d.ts +0 -5
  194. package/dist/helpers/sendSMS.js +0 -34
  195. package/dist/interfaces/aiModelKeysInterface.d.ts +0 -15
  196. package/dist/models/psql/aiModelKeysModel.d.ts +0 -20
  197. package/dist/models/psql/aiModelKeysModel.js +0 -70
  198. package/dist/queues/emailQueue.d.ts +0 -3
  199. package/dist/queues/emailQueue.js +0 -22
  200. package/dist/queues/emailWorker.d.ts +0 -3
  201. package/dist/queues/emailWorker.js +0 -33
  202. package/dist/queues/index.d.ts +0 -2
  203. package/dist/queues/index.js +0 -18
  204. package/dist/types/aiModelKeysType.d.ts +0 -3
  205. /package/dist/db/psql/migrations/{20260714111425-change_status_enum_to_string_in_institutes.d.ts → 20260714095754-create-arena-models.d.ts} +0 -0
  206. /package/dist/db/psql/migrations/{20260714131500-add_note_to_institutes.d.ts → 20260722143500-create-school_has_sports.d.ts} +0 -0
  207. /package/dist/interfaces/{aiModelKeysInterface.js → ageGroupInterface.js} +0 -0
  208. /package/dist/{types/aiModelKeysType.js → interfaces/amenityInterface.js} +0 -0
@@ -1,225 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const joi_1 = __importDefault(require("joi"));
40
- const joiSchemaBuilder_1 = __importStar(require("./joiSchemaBuilder"));
41
- const joiCommonValidator_1 = require("./joiCommonValidator");
42
- class BaseCrudValidator extends joiSchemaBuilder_1.default {
43
- constructor(baseSchema, rules = {}) {
44
- super();
45
- /** CREATE */
46
- this.createValidator = (req, res, next) => {
47
- try {
48
- const mergedRules = this.mergeRules({}, this.rules.create);
49
- let schema = (0, joiSchemaBuilder_1.buildSchema)(this.baseSchema, mergedRules);
50
- if (mergedRules.nestedRequired?.length) {
51
- schema = this.applyNestedRequired(schema, mergedRules.nestedRequired);
52
- }
53
- this.validate(schema, req);
54
- next();
55
- }
56
- catch (err) {
57
- next(err);
58
- }
59
- };
60
- /** UPDATE */
61
- this.updateValidator = (req, res, next) => {
62
- try {
63
- const idRules = this.applyDefaultIdRule(this.rules.update);
64
- const mergedRules = this.mergeRules({}, idRules);
65
- let schema = (0, joiSchemaBuilder_1.buildSchema)(this.baseSchema, mergedRules);
66
- if (mergedRules.nestedRequired?.length) {
67
- schema = this.applyNestedRequired(schema, mergedRules.nestedRequired);
68
- }
69
- this.validate(schema, req);
70
- next();
71
- }
72
- catch (err) {
73
- next(err);
74
- }
75
- };
76
- /** DELETE */
77
- this.deleteValidator = (req, res, next) => {
78
- try {
79
- const idRules = this.applyDefaultIdRule(this.rules.delete);
80
- const mergedRules = this.mergeRules({}, idRules);
81
- const schema = (0, joiSchemaBuilder_1.buildSchema)(this.baseSchema, mergedRules);
82
- this.validate(schema, req);
83
- next();
84
- }
85
- catch (err) {
86
- next(err);
87
- }
88
- };
89
- /** GET BY ID */
90
- this.getByIdValidator = (req, res, next) => {
91
- try {
92
- const idRules = this.applyDefaultIdRule(this.rules.getById);
93
- const mergedRules = this.mergeRules({}, idRules);
94
- const schema = (0, joiSchemaBuilder_1.buildSchema)(this.baseSchema, mergedRules);
95
- this.validate(schema, req);
96
- next();
97
- }
98
- catch (err) {
99
- next(err);
100
- }
101
- };
102
- /** GET ALL */
103
- this.getAllValidator = (req, res, next) => {
104
- try {
105
- const mergedRules = this.mergeRules({}, this.rules.getAll);
106
- const schema = (0, joiSchemaBuilder_1.buildSchema)(this.baseSchema, mergedRules);
107
- this.validate(schema, req);
108
- next();
109
- }
110
- catch (err) {
111
- next(err);
112
- }
113
- };
114
- /** GET ALL WITH PAGINATION */
115
- this.getAllWithPaginationValidator = (req, res, next) => {
116
- try {
117
- const mergedRules = this.mergeRules({ customFields: joiCommonValidator_1.paginationValidators }, this.rules.getAllWithPagination ?? this.rules.getAll);
118
- const schema = (0, joiSchemaBuilder_1.buildSchema)(this.baseSchema, mergedRules);
119
- this.validate(schema, req);
120
- next();
121
- }
122
- catch (err) {
123
- next(err);
124
- }
125
- };
126
- this.baseSchema = baseSchema;
127
- this.rules = rules;
128
- }
129
- /** MERGE RULES */
130
- mergeRules(defaultRules, overrideRules) {
131
- const defaultCustomFields = {
132
- search: joi_1.default.string().optional().allow(null),
133
- };
134
- return {
135
- ...defaultRules,
136
- ...overrideRules,
137
- required: [...(defaultRules.required || []), ...(overrideRules?.required || [])],
138
- optional: [...(defaultRules.optional || []), ...(overrideRules?.optional || [])],
139
- allowNull: [...(defaultRules.allowNull || []), ...(overrideRules?.allowNull || [])],
140
- forbidden: [...(defaultRules.forbidden || []), ...(overrideRules?.forbidden || [])],
141
- singleOrArray: [...(defaultRules.singleOrArray || []), ...(overrideRules?.singleOrArray || [])],
142
- singleOrArrayOrNull: [...(defaultRules.singleOrArrayOrNull || []), ...(overrideRules?.singleOrArrayOrNull || [])],
143
- nestedRequired: [...(defaultRules.nestedRequired || []), ...(overrideRules?.nestedRequired || [])],
144
- customFields: {
145
- ...defaultCustomFields,
146
- ...(defaultRules.customFields || {}),
147
- ...(overrideRules?.customFields || {}),
148
- },
149
- };
150
- }
151
- /** APPLY DEFAULT ID RULE */
152
- applyDefaultIdRule(override) {
153
- const overrideHasId = override?.required?.includes('id') ||
154
- override?.optional?.includes('id') ||
155
- override?.forbidden?.includes('id');
156
- if (override && overrideHasId)
157
- return override;
158
- if (override)
159
- return override;
160
- return { required: ['id'] };
161
- }
162
- /** Nested Required for */
163
- // private applyNestedRequired(schema: Joi.ObjectSchema, paths: string[]): Joi.ObjectSchema {
164
- // return schema.custom((value, helpers) => {
165
- // for (const path of paths) {
166
- // const keys = path.split('.');
167
- // let current: any = value;
168
- // let fullPath = '';
169
- // for (const key of keys) {
170
- // if (Array.isArray(current)) {
171
- // if (!current.length) {
172
- // return helpers.message(`"${fullPath || path}" is required`);
173
- // }
174
- // current = current[0];
175
- // fullPath += '[0]';
176
- // }
177
- // fullPath = fullPath ? `${fullPath}.${key}` : key;
178
- // if (current?.[key] === undefined) {
179
- // return helpers.message(`"${fullPath}" is required`);
180
- // }
181
- // current = current[key];
182
- // }
183
- // }
184
- // return value;
185
- // });
186
- // }
187
- applyNestedRequired(schema, paths) {
188
- return schema
189
- .custom((value, helpers) => {
190
- const checkPath = (current, keys, basePath = '') => {
191
- if (!keys.length)
192
- return null;
193
- const [key, ...rest] = keys;
194
- if (Array.isArray(current)) {
195
- for (let i = 0; i < current.length; i++) {
196
- const result = checkPath(current[i], keys, `${basePath}[${i}]`);
197
- if (result)
198
- return result;
199
- }
200
- return null;
201
- }
202
- const nextValue = current?.[key];
203
- const currentPath = basePath ? `${basePath}.${key}` : key;
204
- if (nextValue === undefined) {
205
- return currentPath;
206
- }
207
- return checkPath(nextValue, rest, currentPath);
208
- };
209
- for (const path of paths) {
210
- const keys = path.split('.');
211
- const missingPath = checkPath(value, keys);
212
- if (missingPath) {
213
- return helpers.error('any.custom', {
214
- path: missingPath,
215
- });
216
- }
217
- }
218
- return value;
219
- })
220
- .messages({
221
- 'any.custom': '"{{#path}}" is required',
222
- });
223
- }
224
- }
225
- exports.default = BaseCrudValidator;
@@ -1,3 +0,0 @@
1
- export * from './joiSchemaBuilder';
2
- export * from './joiCommonValidator';
3
- export { default as BaseValidator } from './joiSchemaBuilder';
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.BaseValidator = void 0;
21
- __exportStar(require("./joiSchemaBuilder"), exports);
22
- __exportStar(require("./joiCommonValidator"), exports);
23
- var joiSchemaBuilder_1 = require("./joiSchemaBuilder");
24
- Object.defineProperty(exports, "BaseValidator", { enumerable: true, get: function () { return __importDefault(joiSchemaBuilder_1).default; } });
@@ -1,12 +0,0 @@
1
- import Joi from 'joi';
2
- export declare const paginationValidators: {
3
- page: Joi.NumberSchema<number>;
4
- limit: Joi.NumberSchema<number>;
5
- search: Joi.StringSchema<string>;
6
- isPaginate: Joi.BooleanSchema<boolean>;
7
- order: Joi.ArraySchema<string[][]>;
8
- sort: Joi.StringSchema<string>;
9
- };
10
- export declare const enumAlternatives: (enumObj: Record<string, string>, isRequired?: boolean, allowArray?: boolean) => Joi.StringSchema<string> | Joi.AlternativesSchema<any>;
11
- export declare const objectIdAlternatives: (isRequired?: boolean, allowArray?: boolean) => Joi.AlternativesSchema<any> | undefined;
12
- export declare const uuidIdAlternatives: (isRequired?: boolean, allowArray?: boolean) => Joi.AlternativesSchema<any> | undefined;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.uuidIdAlternatives = exports.objectIdAlternatives = exports.enumAlternatives = exports.paginationValidators = void 0;
7
- const joi_1 = __importDefault(require("joi"));
8
- exports.paginationValidators = {
9
- page: joi_1.default.number().integer().min(1).default(1),
10
- limit: joi_1.default.number().integer().min(1).default(10),
11
- search: joi_1.default.string().trim(),
12
- isPaginate: joi_1.default.boolean().default(true),
13
- order: joi_1.default.array().items(joi_1.default.array().items(joi_1.default.string().trim(), joi_1.default.string().trim())),
14
- sort: joi_1.default.string()
15
- .pattern(/^(-?\\w+(,-?\\w+)*)?$/)
16
- .optional()
17
- .messages({
18
- 'string.pattern.base': `"sort" must be a comma-separated list of field names, optionally prefixed with '-' for descending`,
19
- }),
20
- };
21
- const enumAlternatives = (enumObj, isRequired = false, allowArray = true) => {
22
- const base = joi_1.default.string().valid(...Object.values(enumObj));
23
- if (allowArray) {
24
- const alt = joi_1.default.alternatives().try(base, joi_1.default.array().items(base));
25
- return isRequired ? alt.required() : alt.optional();
26
- }
27
- return isRequired ? base.required() : base.optional();
28
- };
29
- exports.enumAlternatives = enumAlternatives;
30
- const objectIdAlternatives = (isRequired = false, allowArray = true) => {
31
- const base = joi_1.default.string()
32
- .pattern(/^[0-9a-fA-F]{24}$/)
33
- .message('Invalid ObjectId format');
34
- if (allowArray) {
35
- const alt = joi_1.default.alternatives().try(base, joi_1.default.array().items(base));
36
- return isRequired ? alt.required() : alt.optional();
37
- }
38
- };
39
- exports.objectIdAlternatives = objectIdAlternatives;
40
- const uuidIdAlternatives = (isRequired = false, allowArray = true) => {
41
- const base = joi_1.default.string().uuid().message('Invalid Uuid format');
42
- if (allowArray) {
43
- const alt = joi_1.default.alternatives().try(base, joi_1.default.array().items(base));
44
- return isRequired ? alt.required() : alt.optional();
45
- }
46
- };
47
- exports.uuidIdAlternatives = uuidIdAlternatives;
@@ -1,6 +0,0 @@
1
- import Joi from 'joi';
2
- import { SchemaRules } from '../types/commonType';
3
- export declare const buildSchema: <TModel extends Record<string, any>, Keys extends keyof TModel & string = keyof TModel & string>(base: Joi.ObjectSchema<TModel>, rules?: SchemaRules<Keys>) => Joi.ObjectSchema<TModel>;
4
- export default class BaseValidator {
5
- protected validate(schema: Joi.ObjectSchema, req: any, options?: Joi.ValidationOptions): void;
6
- }
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildSchema = void 0;
7
- const joi_1 = __importDefault(require("joi"));
8
- const httpStatusCode_1 = require("../constants/httpStatusCode");
9
- class ApiError extends Error {
10
- constructor(statusCode, message, isOperational = true, stack = '') {
11
- super(message);
12
- this.statusCode = statusCode;
13
- this.isOperational = isOperational;
14
- if (stack) {
15
- this.stack = stack;
16
- }
17
- else {
18
- Error.captureStackTrace(this, this.constructor);
19
- }
20
- }
21
- }
22
- // GENERIC BUILDER
23
- const buildSchema = (base, rules = {}) => {
24
- let schema = base;
25
- // REQUIRED
26
- if (rules.required) {
27
- schema = schema.fork(rules.required, field => field.required());
28
- }
29
- // OPTIONAL
30
- if (rules.optional) {
31
- schema = schema.fork(rules.optional, field => field.optional());
32
- }
33
- // ALLOW NULL
34
- if (rules.allowNull) {
35
- schema = schema.fork(rules.allowNull, field => field.allow(null));
36
- }
37
- // FORBIDDEN
38
- if (rules.forbidden) {
39
- schema = schema.fork(rules.forbidden, field => field.forbidden());
40
- }
41
- // SINGLE OR ARRAY
42
- if (rules.singleOrArray) {
43
- schema = schema.fork(rules.singleOrArray, field => joi_1.default.alternatives().try(field, joi_1.default.array().items(field)));
44
- }
45
- // SINGLE OR ARRAY OR NULL
46
- if (rules.singleOrArrayOrNull) {
47
- schema = schema.fork(rules.singleOrArrayOrNull, field => joi_1.default.alternatives().try(field, joi_1.default.array().items(field), joi_1.default.valid(null)));
48
- }
49
- // CUSTOM FIELDS
50
- if (rules.customFields) {
51
- schema = schema.append(rules.customFields);
52
- }
53
- return schema;
54
- };
55
- exports.buildSchema = buildSchema;
56
- const defaultOptions = {
57
- abortEarly: false,
58
- allowUnknown: false,
59
- };
60
- class BaseValidator {
61
- validate(schema, req, options) {
62
- const { error, value } = schema.validate({ ...req.body, ...req.query, ...req.params }, { ...defaultOptions, ...options });
63
- if (error) {
64
- const errorMessage = error.details.map(d => d.message).join(', ');
65
- throw new ApiError(httpStatusCode_1.HTTP_STATUS_CODE.BAD_REQUEST, errorMessage);
66
- }
67
- req.body = value;
68
- }
69
- }
70
- exports.default = BaseValidator;
@@ -1,2 +0,0 @@
1
- import winston from 'winston';
2
- export declare const logger: winston.Logger;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logger = void 0;
7
- const winston_1 = __importDefault(require("winston"));
8
- const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file"));
9
- const env_1 = require("../configs/env");
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- const enumerateErrorFormat = winston_1.default.format((info) => {
12
- if (info.message instanceof Error) {
13
- info.message = {
14
- message: info.message.message,
15
- stack: info.message.stack,
16
- ...info.message,
17
- };
18
- }
19
- if (info instanceof Error) {
20
- return {
21
- // message: info.message,
22
- stack: info.stack,
23
- ...info,
24
- };
25
- }
26
- return info;
27
- });
28
- const transport = new winston_daily_rotate_file_1.default({
29
- filename: env_1.ENV_VARIABLE.LOG_FOLDER + env_1.ENV_VARIABLE.LOG_FILE,
30
- datePattern: 'YYYY-MM-DD',
31
- zippedArchive: true,
32
- maxSize: '20m',
33
- maxFiles: '3',
34
- // prepend: true,
35
- });
36
- exports.logger = winston_1.default.createLogger({
37
- format: winston_1.default.format.combine(enumerateErrorFormat(), winston_1.default.format.json()),
38
- transports: [
39
- transport,
40
- new winston_1.default.transports.Console({
41
- level: 'info',
42
- }),
43
- ],
44
- });
@@ -1,4 +0,0 @@
1
- import Redis from 'ioredis';
2
- declare const redisClient: Redis;
3
- export declare const connectRedis: () => Promise<void>;
4
- export default redisClient;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.connectRedis = void 0;
7
- const ioredis_1 = __importDefault(require("ioredis"));
8
- const logger_1 = require("./logger");
9
- const env_1 = require("./env");
10
- // const redisClient = new Redis(ENV_VARIABLE.REDIS_URL, {
11
- // maxRetriesPerRequest: null,
12
- // });
13
- const redisClient = new ioredis_1.default({
14
- host: env_1.ENV_VARIABLE.REDIS_HOST || 'redis',
15
- port: 6379,
16
- maxRetriesPerRequest: null,
17
- });
18
- redisClient.on('error', err => {
19
- console.error('Redis Client Error', err);
20
- logger_1.logger.error(err);
21
- });
22
- const connectRedis = async () => {
23
- // ioredis connects automatically, but we can check the status
24
- if (redisClient.status === 'ready')
25
- return;
26
- return new Promise((resolve, reject) => {
27
- redisClient.once('ready', () => resolve());
28
- redisClient.once('error', err => reject(err));
29
- });
30
- };
31
- exports.connectRedis = connectRedis;
32
- exports.default = redisClient;
@@ -1,46 +0,0 @@
1
- 'use strict';
2
- module.exports = {
3
- up: async (queryInterface, Sequelize) => {
4
- const table = await queryInterface.describeTable('institutes');
5
- if (table.status) {
6
- // In PostgreSQL, changing from ENUM to VARCHAR often requires a USING clause
7
- try {
8
- await queryInterface.sequelize.query('ALTER TABLE institutes ALTER COLUMN status TYPE VARCHAR(255) USING status::varchar;');
9
- await queryInterface.changeColumn('institutes', 'status', {
10
- type: Sequelize.STRING,
11
- allowNull: false,
12
- defaultValue: 'ACTIVE',
13
- });
14
- }
15
- catch (error) {
16
- // Fallback if the raw query fails
17
- await queryInterface.changeColumn('institutes', 'status', {
18
- type: Sequelize.STRING,
19
- allowNull: false,
20
- defaultValue: 'ACTIVE',
21
- });
22
- }
23
- }
24
- },
25
- down: async (queryInterface, Sequelize) => {
26
- const table = await queryInterface.describeTable('institutes');
27
- if (table.status) {
28
- try {
29
- await queryInterface.sequelize.query('ALTER TABLE institutes ALTER COLUMN status TYPE "enum_institutes_status" USING status::text::"enum_institutes_status";');
30
- await queryInterface.changeColumn('institutes', 'status', {
31
- type: Sequelize.ENUM('ACTIVE', 'INACTIVE', 'PENDING', 'BLOCKED'), // Typical statuses, can adapt if needed
32
- allowNull: false,
33
- defaultValue: 'ACTIVE',
34
- });
35
- }
36
- catch (error) {
37
- // Fallback
38
- await queryInterface.changeColumn('institutes', 'status', {
39
- type: Sequelize.ENUM('ACTIVE', 'INACTIVE', 'PENDING', 'BLOCKED'),
40
- allowNull: false,
41
- defaultValue: 'ACTIVE',
42
- });
43
- }
44
- }
45
- }
46
- };
@@ -1,20 +0,0 @@
1
- 'use strict';
2
- const up = async (queryInterface, Sequelize) => {
3
- const table = await queryInterface.describeTable('institutes');
4
- if (!table.note) {
5
- await queryInterface.addColumn('institutes', 'note', {
6
- type: Sequelize.STRING,
7
- allowNull: true,
8
- });
9
- }
10
- };
11
- const down = async (queryInterface) => {
12
- const table = await queryInterface.describeTable('institutes');
13
- if (table.note) {
14
- await queryInterface.removeColumn('institutes', 'note');
15
- }
16
- };
17
- module.exports = {
18
- up,
19
- down,
20
- };
@@ -1,2 +0,0 @@
1
- export function up(queryInterface: any, Sequelize: any): Promise<void>;
2
- export function down(queryInterface: any): Promise<void>;