@jrosadob/ms-sophia-framework-mysql 0.0.2 → 0.0.4

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 (232) hide show
  1. package/dist/libs/ms-sophia-framework-mysql/app.module.d.ts +2 -0
  2. package/dist/libs/ms-sophia-framework-mysql/app.module.js +26 -0
  3. package/dist/libs/ms-sophia-framework-mysql/app.module.js.map +1 -0
  4. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-clients.d.ts +18 -0
  5. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-clients.js +22 -0
  6. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-clients.js.map +1 -0
  7. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-clients.module.d.ts +5 -0
  8. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-clients.module.js +48 -0
  9. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-clients.module.js.map +1 -0
  10. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-config.d.ts +3 -0
  11. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-config.js +3 -0
  12. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-config.js.map +1 -0
  13. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-pattern.d.ts +20 -0
  14. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-pattern.js +55 -0
  15. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-pattern.js.map +1 -0
  16. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-register.options.d.ts +5 -0
  17. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-register.options.js +3 -0
  18. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-register.options.js.map +1 -0
  19. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-sample.module.d.ts +2 -0
  20. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-sample.module.js +33 -0
  21. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-sample.module.js.map +1 -0
  22. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-sample.service.d.ts +10 -0
  23. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-sample.service.js +53 -0
  24. package/dist/libs/ms-sophia-framework-mysql/core/amqp-clients/amqp-sample.service.js.map +1 -0
  25. package/dist/libs/ms-sophia-framework-mysql/core/common/base/error.d.ts +5 -0
  26. package/dist/libs/ms-sophia-framework-mysql/core/common/base/error.js +10 -0
  27. package/dist/libs/ms-sophia-framework-mysql/core/common/base/error.js.map +1 -0
  28. package/dist/libs/ms-sophia-framework-mysql/core/common/base/result.d.ts +10 -0
  29. package/dist/libs/ms-sophia-framework-mysql/core/common/base/result.js +17 -0
  30. package/dist/libs/ms-sophia-framework-mysql/core/common/base/result.js.map +1 -0
  31. package/dist/libs/ms-sophia-framework-mysql/core/common/base/status-base.d.ts +5 -0
  32. package/dist/libs/ms-sophia-framework-mysql/core/common/base/status-base.js +32 -0
  33. package/dist/libs/ms-sophia-framework-mysql/core/common/base/status-base.js.map +1 -0
  34. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/change-status.dto.d.ts +5 -0
  35. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/change-status.dto.js +35 -0
  36. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/change-status.dto.js.map +1 -0
  37. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/log.dto.d.ts +14 -0
  38. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/log.dto.js +33 -0
  39. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/log.dto.js.map +1 -0
  40. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/order-by.dto.d.ts +4 -0
  41. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/order-by.dto.js +28 -0
  42. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/order-by.dto.js.map +1 -0
  43. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/pagination.dto.d.ts +5 -0
  44. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/pagination.dto.js +32 -0
  45. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/pagination.dto.js.map +1 -0
  46. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/search.dto.d.ts +4 -0
  47. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/search.dto.js +27 -0
  48. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/search.dto.js.map +1 -0
  49. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/select.dto.d.ts +9 -0
  50. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/select.dto.js +45 -0
  51. package/dist/libs/ms-sophia-framework-mysql/core/common/dto/select.dto.js.map +1 -0
  52. package/dist/libs/ms-sophia-framework-mysql/core/common/entity/base.entity.d.ts +7 -0
  53. package/dist/libs/ms-sophia-framework-mysql/core/common/entity/base.entity.js +33 -0
  54. package/dist/libs/ms-sophia-framework-mysql/core/common/entity/base.entity.js.map +1 -0
  55. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-badrequest.exception.d.ts +6 -0
  56. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-badrequest.exception.js +31 -0
  57. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-badrequest.exception.js.map +1 -0
  58. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-http.exception.d.ts +5 -0
  59. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-http.exception.js +35 -0
  60. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-http.exception.js.map +1 -0
  61. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-unauthorized.exception.d.ts +6 -0
  62. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-unauthorized.exception.js +33 -0
  63. package/dist/libs/ms-sophia-framework-mysql/core/common/exceptions/app-unauthorized.exception.js.map +1 -0
  64. package/dist/libs/ms-sophia-framework-mysql/core/common/filters/all-exception.filter.d.ts +4 -0
  65. package/dist/libs/ms-sophia-framework-mysql/core/common/filters/all-exception.filter.js +39 -0
  66. package/dist/libs/ms-sophia-framework-mysql/core/common/filters/all-exception.filter.js.map +1 -0
  67. package/{libs/ms-sophia-framework-mysql/src/core/common/index.ts → dist/libs/ms-sophia-framework-mysql/core/common/index.d.ts} +1 -7
  68. package/dist/libs/ms-sophia-framework-mysql/core/common/index.js +35 -0
  69. package/dist/libs/ms-sophia-framework-mysql/core/common/index.js.map +1 -0
  70. package/dist/libs/ms-sophia-framework-mysql/core/common/pipes/app-validation.pipe.d.ts +5 -0
  71. package/dist/libs/ms-sophia-framework-mysql/core/common/pipes/app-validation.pipe.js +28 -0
  72. package/dist/libs/ms-sophia-framework-mysql/core/common/pipes/app-validation.pipe.js.map +1 -0
  73. package/dist/libs/ms-sophia-framework-mysql/core/common/result/bad-request.result.d.ts +8 -0
  74. package/dist/libs/ms-sophia-framework-mysql/core/common/result/bad-request.result.js +45 -0
  75. package/dist/libs/ms-sophia-framework-mysql/core/common/result/bad-request.result.js.map +1 -0
  76. package/dist/libs/ms-sophia-framework-mysql/core/common/result/property.result.d.ts +4 -0
  77. package/dist/libs/ms-sophia-framework-mysql/core/common/result/property.result.js +27 -0
  78. package/dist/libs/ms-sophia-framework-mysql/core/common/result/property.result.js.map +1 -0
  79. package/dist/libs/ms-sophia-framework-mysql/core/common/result/unauthorized.result.d.ts +6 -0
  80. package/dist/libs/ms-sophia-framework-mysql/core/common/result/unauthorized.result.js +39 -0
  81. package/dist/libs/ms-sophia-framework-mysql/core/common/result/unauthorized.result.js.map +1 -0
  82. package/dist/libs/ms-sophia-framework-mysql/core/config/config.module.d.ts +2 -0
  83. package/dist/libs/ms-sophia-framework-mysql/core/config/config.module.js +66 -0
  84. package/dist/libs/ms-sophia-framework-mysql/core/config/config.module.js.map +1 -0
  85. package/dist/libs/ms-sophia-framework-mysql/core/config/config.service.d.ts +6 -0
  86. package/dist/libs/ms-sophia-framework-mysql/core/config/config.service.js +49 -0
  87. package/dist/libs/ms-sophia-framework-mysql/core/config/config.service.js.map +1 -0
  88. package/dist/libs/ms-sophia-framework-mysql/core/config/index.d.ts +2 -0
  89. package/dist/libs/ms-sophia-framework-mysql/core/config/index.js +19 -0
  90. package/dist/libs/ms-sophia-framework-mysql/core/config/index.js.map +1 -0
  91. package/dist/libs/ms-sophia-framework-mysql/core/database/database.module.d.ts +2 -0
  92. package/dist/libs/ms-sophia-framework-mysql/core/database/database.module.js +26 -0
  93. package/dist/libs/ms-sophia-framework-mysql/core/database/database.module.js.map +1 -0
  94. package/dist/libs/ms-sophia-framework-mysql/core/database/database.provider.d.ts +11 -0
  95. package/dist/libs/ms-sophia-framework-mysql/core/database/database.provider.js +57 -0
  96. package/dist/libs/ms-sophia-framework-mysql/core/database/database.provider.js.map +1 -0
  97. package/dist/libs/ms-sophia-framework-mysql/core/database/index.d.ts +3 -0
  98. package/dist/libs/ms-sophia-framework-mysql/core/database/index.js +20 -0
  99. package/dist/libs/ms-sophia-framework-mysql/core/database/index.js.map +1 -0
  100. package/dist/libs/ms-sophia-framework-mysql/core/database/providers.d.ts +3 -0
  101. package/dist/libs/ms-sophia-framework-mysql/core/database/providers.js +8 -0
  102. package/dist/libs/ms-sophia-framework-mysql/core/database/providers.js.map +1 -0
  103. package/dist/libs/ms-sophia-framework-mysql/core/health/health.controller.d.ts +11 -0
  104. package/dist/libs/ms-sophia-framework-mysql/core/health/health.controller.js +62 -0
  105. package/dist/libs/ms-sophia-framework-mysql/core/health/health.controller.js.map +1 -0
  106. package/dist/libs/ms-sophia-framework-mysql/core/health/health.module.d.ts +2 -0
  107. package/dist/libs/ms-sophia-framework-mysql/core/health/health.module.js +24 -0
  108. package/dist/libs/ms-sophia-framework-mysql/core/health/health.module.js.map +1 -0
  109. package/dist/libs/ms-sophia-framework-mysql/core/index.d.ts +6 -0
  110. package/dist/libs/ms-sophia-framework-mysql/core/index.js +23 -0
  111. package/dist/libs/ms-sophia-framework-mysql/core/index.js.map +1 -0
  112. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/headers.interceptor.d.ts +5 -0
  113. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/headers.interceptor.js +24 -0
  114. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/headers.interceptor.js.map +1 -0
  115. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/index.d.ts +2 -0
  116. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/index.js +19 -0
  117. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/index.js.map +1 -0
  118. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/logging.interceptor.d.ts +8 -0
  119. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/logging.interceptor.js +47 -0
  120. package/dist/libs/ms-sophia-framework-mysql/core/interceptors/logging.interceptor.js.map +1 -0
  121. package/dist/libs/ms-sophia-framework-mysql/core/logger/index.d.ts +4 -0
  122. package/dist/libs/ms-sophia-framework-mysql/core/logger/index.js +21 -0
  123. package/dist/libs/ms-sophia-framework-mysql/core/logger/index.js.map +1 -0
  124. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.d.ts +29 -0
  125. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.js +115 -0
  126. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.js.map +1 -0
  127. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.module.d.ts +2 -0
  128. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.module.js +23 -0
  129. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.module.js.map +1 -0
  130. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.request.d.ts +27 -0
  131. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.request.js +107 -0
  132. package/dist/libs/ms-sophia-framework-mysql/core/logger/logger.request.js.map +1 -0
  133. package/dist/libs/ms-sophia-framework-mysql/core/logger/typeorm-logger.service.d.ts +13 -0
  134. package/dist/libs/ms-sophia-framework-mysql/core/logger/typeorm-logger.service.js +58 -0
  135. package/dist/libs/ms-sophia-framework-mysql/core/logger/typeorm-logger.service.js.map +1 -0
  136. package/dist/libs/ms-sophia-framework-mysql/core/subscribers/entity.subscriber.d.ts +11 -0
  137. package/dist/libs/ms-sophia-framework-mysql/core/subscribers/entity.subscriber.js +88 -0
  138. package/dist/libs/ms-sophia-framework-mysql/core/subscribers/entity.subscriber.js.map +1 -0
  139. package/dist/libs/ms-sophia-framework-mysql/core/subscribers/log.entity.d.ts +15 -0
  140. package/dist/libs/ms-sophia-framework-mysql/core/subscribers/log.entity.js +85 -0
  141. package/dist/libs/ms-sophia-framework-mysql/core/subscribers/log.entity.js.map +1 -0
  142. package/dist/libs/ms-sophia-framework-mysql/core/tools/env-vars.d.ts +1 -0
  143. package/dist/libs/ms-sophia-framework-mysql/core/tools/env-vars.js +7 -0
  144. package/dist/libs/ms-sophia-framework-mysql/core/tools/env-vars.js.map +1 -0
  145. package/dist/libs/ms-sophia-framework-mysql/core/tools/index.d.ts +4 -0
  146. package/dist/libs/ms-sophia-framework-mysql/core/tools/index.js +21 -0
  147. package/dist/libs/ms-sophia-framework-mysql/core/tools/index.js.map +1 -0
  148. package/dist/libs/ms-sophia-framework-mysql/core/tools/nanoid.d.ts +1 -0
  149. package/dist/libs/ms-sophia-framework-mysql/core/tools/nanoid.js +6 -0
  150. package/dist/libs/ms-sophia-framework-mysql/core/tools/nanoid.js.map +1 -0
  151. package/dist/libs/ms-sophia-framework-mysql/core/tools/query.d.ts +27 -0
  152. package/dist/libs/ms-sophia-framework-mysql/core/tools/query.js +119 -0
  153. package/dist/libs/ms-sophia-framework-mysql/core/tools/query.js.map +1 -0
  154. package/dist/libs/ms-sophia-framework-mysql/core/tools/send-to-logstash.d.ts +2 -0
  155. package/dist/libs/ms-sophia-framework-mysql/core/tools/send-to-logstash.js +106 -0
  156. package/dist/libs/ms-sophia-framework-mysql/core/tools/send-to-logstash.js.map +1 -0
  157. package/dist/libs/ms-sophia-framework-mysql/index.d.ts +3 -0
  158. package/dist/libs/ms-sophia-framework-mysql/index.js +20 -0
  159. package/dist/libs/ms-sophia-framework-mysql/index.js.map +1 -0
  160. package/dist/libs/ms-sophia-framework-mysql/main.d.ts +6 -0
  161. package/dist/libs/ms-sophia-framework-mysql/main.js +212 -0
  162. package/dist/libs/ms-sophia-framework-mysql/main.js.map +1 -0
  163. package/dist/libs/ms-sophia-framework-mysql/tsconfig.lib.tsbuildinfo +1 -0
  164. package/package.json +29 -16
  165. package/.prettierrc +0 -4
  166. package/bootstrap.yml +0 -193
  167. package/eslint.config.mjs +0 -35
  168. package/libs/ms-sophia-framework-mysql/src/app.module.ts +0 -14
  169. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-clients.module.ts +0 -43
  170. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-clients.ts +0 -22
  171. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-config.ts +0 -3
  172. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-pattern.ts +0 -61
  173. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-register.options.ts +0 -6
  174. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-sample.module.ts +0 -20
  175. package/libs/ms-sophia-framework-mysql/src/core/amqp-clients/amqp-sample.service.ts +0 -34
  176. package/libs/ms-sophia-framework-mysql/src/core/common/base/error.ts +0 -5
  177. package/libs/ms-sophia-framework-mysql/src/core/common/base/result.ts +0 -15
  178. package/libs/ms-sophia-framework-mysql/src/core/common/base/status-base.ts +0 -12
  179. package/libs/ms-sophia-framework-mysql/src/core/common/dto/change-status.dto.ts +0 -13
  180. package/libs/ms-sophia-framework-mysql/src/core/common/dto/log.dto.ts +0 -29
  181. package/libs/ms-sophia-framework-mysql/src/core/common/dto/order-by.dto.ts +0 -9
  182. package/libs/ms-sophia-framework-mysql/src/core/common/dto/pagination.dto.ts +0 -10
  183. package/libs/ms-sophia-framework-mysql/src/core/common/dto/search.dto.ts +0 -8
  184. package/libs/ms-sophia-framework-mysql/src/core/common/dto/select.dto.ts +0 -23
  185. package/libs/ms-sophia-framework-mysql/src/core/common/entity/base.entity.ts +0 -16
  186. package/libs/ms-sophia-framework-mysql/src/core/common/exceptions/app-badrequest.exception.ts +0 -31
  187. package/libs/ms-sophia-framework-mysql/src/core/common/exceptions/app-http.exception.ts +0 -35
  188. package/libs/ms-sophia-framework-mysql/src/core/common/exceptions/app-unauthorized.exception.ts +0 -36
  189. package/libs/ms-sophia-framework-mysql/src/core/common/filters/all-exception.filter.ts +0 -42
  190. package/libs/ms-sophia-framework-mysql/src/core/common/pipes/app-validation.pipe.ts +0 -35
  191. package/libs/ms-sophia-framework-mysql/src/core/common/result/bad-request.result.ts +0 -17
  192. package/libs/ms-sophia-framework-mysql/src/core/common/result/property.result.ts +0 -8
  193. package/libs/ms-sophia-framework-mysql/src/core/common/result/unauthorized.result.ts +0 -14
  194. package/libs/ms-sophia-framework-mysql/src/core/config/config.module.ts +0 -22
  195. package/libs/ms-sophia-framework-mysql/src/core/config/config.service.ts +0 -37
  196. package/libs/ms-sophia-framework-mysql/src/core/config/index.ts +0 -2
  197. package/libs/ms-sophia-framework-mysql/src/core/database/database.module.ts +0 -18
  198. package/libs/ms-sophia-framework-mysql/src/core/database/database.provider.ts +0 -70
  199. package/libs/ms-sophia-framework-mysql/src/core/database/index.ts +0 -3
  200. package/libs/ms-sophia-framework-mysql/src/core/database/providers.ts +0 -3
  201. package/libs/ms-sophia-framework-mysql/src/core/health/health.controller.ts +0 -36
  202. package/libs/ms-sophia-framework-mysql/src/core/health/health.module.ts +0 -16
  203. package/libs/ms-sophia-framework-mysql/src/core/interceptors/headers.interceptor.ts +0 -16
  204. package/libs/ms-sophia-framework-mysql/src/core/interceptors/index.ts +0 -2
  205. package/libs/ms-sophia-framework-mysql/src/core/interceptors/logging.interceptor.ts +0 -43
  206. package/libs/ms-sophia-framework-mysql/src/core/logger/index.ts +0 -4
  207. package/libs/ms-sophia-framework-mysql/src/core/logger/logger.module.ts +0 -10
  208. package/libs/ms-sophia-framework-mysql/src/core/logger/logger.request.ts +0 -137
  209. package/libs/ms-sophia-framework-mysql/src/core/logger/logger.ts +0 -146
  210. package/libs/ms-sophia-framework-mysql/src/core/logger/typeorm-logger.service.ts +0 -76
  211. package/libs/ms-sophia-framework-mysql/src/core/subscribers/entity.subscriber.ts +0 -79
  212. package/libs/ms-sophia-framework-mysql/src/core/subscribers/log.entity.ts +0 -35
  213. package/libs/ms-sophia-framework-mysql/src/core/tools/env-vars.ts +0 -26
  214. package/libs/ms-sophia-framework-mysql/src/core/tools/index.ts +0 -4
  215. package/libs/ms-sophia-framework-mysql/src/core/tools/nanoid.ts +0 -4
  216. package/libs/ms-sophia-framework-mysql/src/core/tools/query.ts +0 -186
  217. package/libs/ms-sophia-framework-mysql/src/core/tools/send-to-logstash.ts +0 -103
  218. package/libs/ms-sophia-framework-mysql/src/index.ts +0 -1
  219. package/libs/ms-sophia-framework-mysql/src/main.ts +0 -230
  220. package/libs/ms-sophia-framework-mysql/tsconfig.lib.json +0 -9
  221. package/nest-cli.json +0 -20
  222. package/pnpm-workspace.yaml +0 -3
  223. package/publish.sh +0 -18
  224. package/src/app.controller.spec.ts +0 -22
  225. package/src/app.controller.ts +0 -12
  226. package/src/app.module.ts +0 -10
  227. package/src/app.service.ts +0 -8
  228. package/src/main.ts +0 -8
  229. package/test/app.e2e-spec.ts +0 -29
  230. package/test/jest-e2e.json +0 -16
  231. package/tsconfig.build.json +0 -4
  232. package/tsconfig.json +0 -33
@@ -1,31 +0,0 @@
1
- import { BadRequestException, HttpStatus, Logger } from '@nestjs/common';
2
- // import { nanoid } from 'src/core/tools';
3
- import { BadRequestResult } from '../result/bad-request.result';
4
- import { nanoid } from '../../tools';
5
-
6
- export class AppBadRequestException extends BadRequestException {
7
- constructor(message: string) {
8
- super(message);
9
- }
10
-
11
- getResponse(): BadRequestResult {
12
- const response = super.getResponse();
13
- const loggerId = nanoid();
14
- if (typeof response === 'string') {
15
- Logger.log(`[${loggerId}]: ${response}`, 'AppBadRequestException');
16
- return {
17
- message: response,
18
- error: 'Bad Request',
19
- statusCode: HttpStatus.BAD_REQUEST,
20
- loggerId: loggerId,
21
- } as BadRequestResult;
22
- }
23
- // @ts-ignore: This line is to ignore the TypeScript error in response.message and response.error
24
- const message = response.message ?? response.error;
25
- Logger.log(`[${loggerId}]: ${message}`, 'AppBadRequestException');
26
- return {
27
- ...response,
28
- loggerId: loggerId,
29
- } as BadRequestResult;
30
- }
31
- }
@@ -1,35 +0,0 @@
1
- import { HttpException, HttpStatus, Logger } from '@nestjs/common';
2
- // import { nanoid } from 'src/core/tools';
3
- import { Result } from '../base/result';
4
- import { nanoid } from '../../tools';
5
-
6
- export class AppHttpException extends HttpException {
7
- constructor(e: any, result: Result<any>) {
8
- const loggerId = nanoid();
9
- let status: HttpStatus;
10
- let loggerMessage: string;
11
-
12
- const errorType = e.constructor.name;
13
- switch (errorType) {
14
- case 'QueryFailedError':
15
- status = HttpStatus.BAD_REQUEST;
16
- super(result, status);
17
- result.entity = undefined;
18
- result.entities = undefined;
19
- loggerMessage = `[${loggerId}] SqlState: ${e.driverError.sqlState} | QueryFailedError: ${e.driverError.sqlMessage}`;
20
- Logger.log(loggerMessage, 'AppHttpException');
21
- result.addError(loggerId, 400, 'Database error (QueryFailedError)');
22
- break;
23
- default:
24
- status = HttpStatus.SERVICE_UNAVAILABLE;
25
- super(result, status);
26
- result.entity = undefined;
27
- result.entities = undefined;
28
- loggerMessage = `[${loggerId}] ${e.message}`;
29
- Logger.log(loggerMessage, 'AppHttpException');
30
- result.addError(loggerId, 503, 'Service unavailable');
31
- break;
32
- }
33
- // super(result, status)
34
- }
35
- }
@@ -1,36 +0,0 @@
1
- import { UnauthorizedException, Logger, HttpStatus } from '@nestjs/common';
2
- // import { nanoid } from 'src/core/tools';
3
- import { UnauthorizedResult } from '../result/unauthorized.result';
4
- import { nanoid } from '../../tools';
5
-
6
- const Logging = new Logger('AppUnauthorizedException');
7
-
8
- export class AppUnauthorizedException extends UnauthorizedException {
9
- constructor(message: string) {
10
- super(message);
11
- }
12
-
13
- getResponse(): UnauthorizedResult {
14
- const response = super.getResponse();
15
- const loggerId = nanoid();
16
- if (typeof response === 'string') {
17
- Logging.log(`[${loggerId}]: ${response}`);
18
- return {
19
- message: response,
20
- error: 'Unauthorized',
21
- statusCode: HttpStatus.UNAUTHORIZED,
22
- loggerId: loggerId,
23
- } as UnauthorizedResult;
24
- }
25
- // @ts-ignore: This line is to ignore the TypeScript error
26
- Logging.log(`[${loggerId}]: ${response.message ?? response.error}`);
27
-
28
- return {
29
- error: 'Unauthorized',
30
- // @ts-ignore: This line is to ignore the TypeScript error
31
- message: response.message,
32
- statusCode: HttpStatus.UNAUTHORIZED,
33
- loggerId: loggerId,
34
- } as UnauthorizedResult;
35
- }
36
- }
@@ -1,42 +0,0 @@
1
- import {
2
- ExceptionFilter,
3
- Catch,
4
- ArgumentsHost,
5
- HttpException,
6
- HttpStatus,
7
- Logger,
8
- } from '@nestjs/common';
9
- import { Response } from 'express';
10
- import { nanoid } from '../../tools';
11
- // import { nanoid } from 'src/core/tools';
12
-
13
- @Catch()
14
- export class AllExceptionsFilter implements ExceptionFilter {
15
- catch(exception: unknown, host: ArgumentsHost) {
16
- const ctx = host.switchToHttp();
17
- const response = ctx.getResponse<Response>();
18
-
19
- const status =
20
- exception instanceof HttpException
21
- ? exception.getStatus()
22
- : HttpStatus.INTERNAL_SERVER_ERROR;
23
-
24
- const message =
25
- exception instanceof HttpException ? exception.getResponse() : exception;
26
-
27
- const loggerId = nanoid();
28
- const loggerMessage = `[${loggerId}] ${message}`;
29
- Logger.error({ message: loggerMessage, context: 'AllExceptionsFilter' });
30
-
31
- response.status(status).json({
32
- hasError: true,
33
- errors: [
34
- {
35
- message: message,
36
- statusCode: status,
37
- loggerId: loggerId,
38
- },
39
- ],
40
- });
41
- }
42
- }
@@ -1,35 +0,0 @@
1
- import {
2
- ValidationPipe,
3
- ValidationError,
4
- BadRequestException,
5
- HttpStatus,
6
- ValidationPipeOptions,
7
- } from '@nestjs/common';
8
- import { BadRequestResult } from '../result/bad-request.result';
9
- import { PropertyResult } from '../result/property.result';
10
- import { nanoid } from '../../tools';
11
- //import { nanoid } from 'src/core/tools';
12
-
13
- export class AppValidationPipe extends ValidationPipe {
14
- constructor(options?: ValidationPipeOptions) {
15
- super(options);
16
- }
17
-
18
- createExceptionFactory() {
19
- return (validationErrors: ValidationError[] = []) => {
20
- const loggerId = nanoid();
21
- const customErrors = validationErrors.map((error) => ({
22
- property: error.property,
23
- message: Object.values(error.constraints || {}).join(', '),
24
- }));
25
-
26
- return new BadRequestException({
27
- error: 'Bad Request',
28
- message: 'Validation failed',
29
- statusCode: HttpStatus.BAD_REQUEST,
30
- errors: [...customErrors] as PropertyResult[],
31
- loggerId: loggerId,
32
- } as BadRequestResult);
33
- };
34
- }
35
- }
@@ -1,17 +0,0 @@
1
- import { ApiProperty } from '@nestjs/swagger'
2
- import { PropertyResult } from './property.result'
3
-
4
- export class BadRequestResult {
5
- @ApiProperty({ description: 'Mensaje de error' })
6
- message: string
7
- @ApiProperty({
8
- description: 'Nombre del error según StatusCode, p.e: BAD REQUEST, NOT FOUND, CREATED, etc',
9
- })
10
- error: string
11
- @ApiProperty({ description: 'Código de error HttpStatusCode: 200, 201, 400, 401, etc.' })
12
- statusCode: number
13
- @ApiProperty({ description: 'loggerId del mensaje de error, para ubicarlo en el Logger' })
14
- loggerId: string
15
- @ApiProperty({ description: 'Array de errores de validación', type: [PropertyResult] })
16
- errors: PropertyResult[] | null
17
- }
@@ -1,8 +0,0 @@
1
- import { ApiProperty } from '@nestjs/swagger'
2
-
3
- export class PropertyResult {
4
- @ApiProperty({ description: 'Nombre de la property que no cumple con la validación' })
5
- property: string
6
- @ApiProperty({ description: 'Descripción de la validación que la property no cumple' })
7
- message: string
8
- }
@@ -1,14 +0,0 @@
1
- import { ApiProperty } from '@nestjs/swagger'
2
-
3
- export class UnauthorizedResult {
4
- @ApiProperty({ description: 'Mensaje de error' })
5
- message: string
6
- @ApiProperty({
7
- description: 'Nombre del error según StatusCode, p.e: BAD REQUEST, NOT FOUND, CREATED, etc',
8
- })
9
- error: string
10
- @ApiProperty({ description: 'Código de error HttpStatusCode: 200, 201, 400, 401, etc.' })
11
- statusCode: number
12
- @ApiProperty({ description: 'loggerId del mensaje de error, para ubicarlo en el Logger' })
13
- loggerId: string
14
- }
@@ -1,22 +0,0 @@
1
- import { Module, Global } from '@nestjs/common'
2
- import { ConfigService } from './config.service'
3
- import * as yaml from 'js-yaml'
4
- import { readFileSync } from 'node:fs'
5
- import { replaceEnvVars } from '../tools'
6
-
7
- @Global()
8
- @Module({
9
- providers: [
10
- {
11
- provide: ConfigService,
12
- useFactory: () => {
13
- const configData = yaml.load(
14
- replaceEnvVars(readFileSync('bootstrap.yml', 'utf8')),
15
- ) as Record<string, any>
16
- return new ConfigService(configData)
17
- },
18
- },
19
- ],
20
- exports: [ConfigService],
21
- })
22
- export class ConfigModule {}
@@ -1,37 +0,0 @@
1
- import { Injectable } from '@nestjs/common'
2
- import { Logger } from '../logger/logger'
3
-
4
- @Injectable()
5
- export class ConfigService {
6
- private readonly config: Record<string, any>
7
-
8
- constructor(config: Record<string, any>) {
9
- this.config = config
10
- this.getKey = this.getKey.bind(this)
11
- this.get = this.get.bind(this)
12
- }
13
-
14
- getKey<T>(key: string): T | undefined {
15
- const keys = key.split('.')
16
- let current: any = this.config
17
-
18
- for (const k of keys) {
19
- if (current && typeof current === 'object' && k in current) {
20
- current = current[k]
21
- } else {
22
- return undefined
23
- }
24
- }
25
-
26
- return current as T | undefined
27
- }
28
-
29
- get<T>(key: string): T | undefined {
30
- const value = this.getKey<T>(key)
31
- if (value === undefined) {
32
- Logger.warn(`[ConfigService] Missing property: ${key}`)
33
- return undefined
34
- }
35
- return value
36
- }
37
- }
@@ -1,2 +0,0 @@
1
- export * from './config.module'
2
- export * from './config.service'
@@ -1,18 +0,0 @@
1
- import { Global, Module } from '@nestjs/common'
2
- import { databaseProviders } from './database.provider'
3
- import { ConfigService } from '@nestjs/config'
4
- import { ConfigModule } from '../config/config.module'
5
- import { Logger } from '../logger/logger'
6
- // import { ConfigService } from '@nestjs/config'
7
- // import { LoggerHttpService } from 'src/logger/logger-http.service'
8
- // import { LoggerModule } from 'src/logger/logger.module'
9
- // import { LoggerService } from 'src/logger/logger.service'
10
- // import { LoggerHttpService } from 'src/logger/logger-http.service'
11
-
12
- @Global()
13
- @Module({
14
- imports: [ConfigModule],
15
- providers: [ConfigService, ...databaseProviders, Logger],
16
- exports: [...databaseProviders],
17
- })
18
- export class DatabaseModule {}
@@ -1,70 +0,0 @@
1
- //import { DatabaseType, DataSource, LoggerOptions } from 'typeorm'
2
- import { DataSource, EntitySchema, MixedList } from 'typeorm';
3
- import { Providers } from './providers';
4
- import { ConfigModule } from '../config/config.module';
5
- import { ConfigService } from '../config/config.service';
6
- import { Logger } from '../logger/logger';
7
- import { LoggerModule } from '../logger/logger.module';
8
- import { TypeOrmLoggerService } from '../logger/typeorm-logger.service';
9
- import { EntitySubscriber } from '../subscribers/entity.subscriber';
10
- import { Logs } from '../subscribers/log.entity';
11
-
12
- type MySqlDatabaseType = 'mysql' | 'mariadb';
13
- export const databaseProviders = [
14
- {
15
- provide: Providers.DATA_SOURCE,
16
- imports: [ConfigModule, LoggerModule],
17
- inject: [ConfigService, Logger],
18
- useFactory: async (configService: ConfigService, logger: Logger) => {
19
- const includeLogs: boolean = getIncludeLogs(configService);
20
- logger.log('Value process.cwd(): ' + process.cwd(), 'DatabaseProvider');
21
-
22
- const entities: MixedList<string | Function | EntitySchema<any>> | undefined = [
23
- process.cwd() + configService.get<string>('typeorm.mysql.entities'),
24
- ];
25
- if (includeLogs) {
26
- entities.push(Logs);
27
- }
28
- const subscribers = includeLogs ? [EntitySubscriber] : undefined;
29
- const synchronize = configService.get<boolean>('typeorm.mysql.synchronize');
30
- const logging = configService.get<boolean>('typeorm.mysql.logging') as boolean;
31
- const typeOrmLogger = logging ? new TypeOrmLoggerService(logger, logging) : undefined;
32
-
33
- const dataSource = new DataSource({
34
- type: configService.get<string>(
35
- 'typeorm.mysql.type',
36
- ) as MySqlDatabaseType,
37
- host: configService.get<string>('typeorm.mysql.host'),
38
- port: configService.get<number>('typeorm.mysql.port'),
39
- database: configService.get<string>('typeorm.mysql.database'),
40
- username: configService.get<string>('typeorm.mysql.username'),
41
- password: configService.get<string>('typeorm.mysql.password'),
42
- // Se define las entities, subscribers, synchronize, logging, logger dinámicamente, mas arriba, según la configuración
43
- // entities: [
44
- // process.cwd() + configService.get<string>('typeorm.mysql.entities'),
45
- // Logs
46
- // ],
47
- // subscribers: [EntitySubscriber],
48
- // NOT USE. La sincronización elimina todas las columnas y las crea nuevas
49
- // synchronize: configService.get<boolean>('typeorm.mysql.synchronize'),
50
- entities,
51
- subscribers,
52
- synchronize,
53
- logging,
54
- logger: typeOrmLogger,
55
- });
56
- const data = await dataSource.initialize();
57
- logger.log('Database connection established', 'DatabaseProvider');
58
- //return dataSource.initialize()
59
- return data;
60
- },
61
- },
62
- ];
63
-
64
- function getIncludeLogs(configService: ConfigService): boolean {
65
- const includeLogs = configService.get<boolean>('entityLogs.insertEnabled') ||
66
- configService.get<boolean>('entityLogs.updateEnabled') ||
67
- configService.get<boolean>('entityLogs.removeEnabled') ||
68
- false;
69
- return includeLogs
70
- }
@@ -1,3 +0,0 @@
1
- export * from './database.module'
2
- export * from './database.provider'
3
- export * from './providers'
@@ -1,3 +0,0 @@
1
- export enum Providers {
2
- DATA_SOURCE = 'DATA_SOURCE',
3
- }
@@ -1,36 +0,0 @@
1
- import { Controller, Get, HttpException, HttpStatus, Inject } from '@nestjs/common'
2
- import { ApiOperation, ApiResponse } from '@nestjs/swagger'
3
- import { DataSource } from 'typeorm'
4
- import { Providers } from '../database'
5
-
6
- @Controller('health')
7
- export class HealthController {
8
- constructor(
9
- @Inject(Providers.DATA_SOURCE)
10
- private readonly dataSource: DataSource,
11
- ) {}
12
-
13
- @Get('liveness')
14
- @ApiOperation({ summary: 'Enpoint liveness for Kubernetes' })
15
- @ApiResponse({ status: 200, description: 'Ok' })
16
- @ApiResponse({ status: 500, description: 'Internal server error' })
17
- liveness() {
18
- return { status: 'ok' }
19
- }
20
-
21
- @Get('readiness')
22
- @ApiOperation({ summary: 'Enpoint readiness for Kubernetes' })
23
- @ApiResponse({ status: 200, description: 'Ok' })
24
- @ApiResponse({ status: 503, description: 'Service unaivalable' })
25
- async readiness() {
26
- try {
27
- await this.dataSource.query('SELECT 1')
28
- return { status: 'ok' }
29
- } catch (error) {
30
- throw new HttpException(
31
- { status: 'error', message: 'Database connection failed' },
32
- HttpStatus.SERVICE_UNAVAILABLE,
33
- )
34
- }
35
- }
36
- }
@@ -1,16 +0,0 @@
1
- import { Module } from '@nestjs/common'
2
- import { HealthController } from './health.controller'
3
- import { Logger } from '../logger'
4
- // import { ConfigModule } from './core/config/config.module'
5
- // import { DatabaseModule } from './core/database/database.module'
6
- // import { LoggerModule } from './core/logger/logger.module'
7
- // import { Logger } from './core/logger/logger'
8
- // import { HealthController } from './core/health/HealthController'
9
-
10
- @Module({
11
- imports: [],
12
- controllers: [HealthController],
13
- providers: [Logger],
14
- exports: [Logger],
15
- })
16
- export class HealthModule {}
@@ -1,16 +0,0 @@
1
- import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common'
2
- import { Observable } from 'rxjs'
3
-
4
- @Injectable()
5
- export class HeadersInterceptor implements NestInterceptor {
6
- intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
7
- const request = context.switchToHttp().getRequest()
8
- request.startTime = Date.now()
9
- request.appName = request.headers['app-name'] ?? ''
10
- request.scopes = request.headers['scopes'] ?? ''
11
-
12
- return next.handle()
13
- }
14
- }
15
-
16
- //Pasar todo esto al Loggin interceptor
@@ -1,2 +0,0 @@
1
- export * from './headers.interceptor'
2
- export * from './logging.interceptor'
@@ -1,43 +0,0 @@
1
- import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common'
2
- import { Observable } from 'rxjs'
3
- import { tap } from 'rxjs/operators'
4
- import { LoggerRequest } from '../logger/logger.request'
5
- import { ConfigService } from '../config'
6
- import { nanoid } from '../tools/nanoid'
7
-
8
- @Injectable()
9
- export class LoggingInterceptor implements NestInterceptor {
10
- //private readonly configService: ConfigService
11
- constructor(private readonly configService: ConfigService) {
12
- this.configService = configService
13
- }
14
- intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
15
- const request = context.switchToHttp().getRequest()
16
- const response = context.switchToHttp().getResponse()
17
- const { method, url } = request
18
- const startTime = Date.now()
19
-
20
- request.requestId = request.headers['request-id'] ?? nanoid()
21
-
22
- response.setHeader('Request-ID', request.requestId)
23
- response['responseTime'] = Date.now() - startTime
24
- request.response = response
25
-
26
- LoggerRequest.setConfigService(this.configService)
27
- LoggerRequest.setResponse(response)
28
- LoggerRequest.setRequest(request)
29
- LoggerRequest.log(
30
- `[${request.requestId}] Incoming Request: ${method} ${url}`,
31
- 'LoggingInterceptor',
32
- )
33
-
34
- return next.handle().pipe(
35
- tap((resp) => {
36
- LoggerRequest.log(
37
- `[${request.requestId}] Outgoing Response: ${method} ${url} - ${response['responseTime']}ms`,
38
- 'LoggingInterceptor',
39
- )
40
- }),
41
- )
42
- }
43
- }
@@ -1,4 +0,0 @@
1
- export * from './logger.module'
2
- export * from './logger'
3
- export * from './logger.request'
4
- export * from './typeorm-logger.service'
@@ -1,10 +0,0 @@
1
- import { Module } from '@nestjs/common'
2
- import { ConfigModule } from '../config/config.module'
3
- import { Logger, TypeOrmLoggerService } from '.'
4
-
5
- @Module({
6
- imports: [ConfigModule],
7
- providers: [Logger, TypeOrmLoggerService],
8
- exports: [Logger, TypeOrmLoggerService],
9
- })
10
- export class LoggerModule {}
@@ -1,137 +0,0 @@
1
- import {
2
- ConsoleLogger,
3
- Injectable,
4
- Logger,
5
- Logger as NestLogger,
6
- LoggerService as NestLoggerService,
7
- Scope,
8
- } from '@nestjs/common'
9
- import { ConfigService } from '../config/config.service'
10
- import { sendToLogstash } from '../tools/send-to-logstash'
11
- import { Request, Response } from 'express'
12
-
13
- @Injectable({ scope: Scope.REQUEST })
14
- export class LoggerRequest extends ConsoleLogger implements NestLoggerService {
15
- private static logstashUrl: string | undefined
16
- private static configService: ConfigService
17
- private static request: Request
18
- private static response: Response
19
-
20
- constructor(private readonly configService: ConfigService) {
21
- super()
22
- LoggerRequest.configService = this.configService
23
- LoggerRequest.logstashUrl = this.configService.get<string>('logger.http.host')
24
- }
25
-
26
- static setConfigService(configService: ConfigService) {
27
- this.configService = configService
28
- this.logstashUrl = this.configService.get<string>('logger.http.host')
29
- }
30
-
31
- static async setRequest(request: any): Promise<void> {
32
- this.request = request
33
- }
34
-
35
- static async setResponse(response: any): Promise<void> {
36
- this.response = response
37
- }
38
-
39
- private static async sendToLogstash(level: string, message: string, meta?: any): Promise<void> {
40
- await sendToLogstash(
41
- this.configService,
42
- this.logstashUrl,
43
- level,
44
- message,
45
- meta,
46
- this.request,
47
- this.response,
48
- )
49
- }
50
-
51
- // _log(message: string): void
52
- // _log(message: any, context: string): void
53
- // _log(message: any, context?: string): void {
54
- // if (context) {
55
- // super.log('- ' + message, context)
56
- // LoggerRequest.sendToLogstash('log', message, { context: context })
57
- // } else {
58
- // super.log('- ' + message)
59
- // LoggerRequest.sendToLogstash('log', message)
60
- // }
61
- // }
62
-
63
- warn(message: any)
64
- warn(message: any, context: string)
65
- warn(message: any, context?: string) {
66
- if (context) {
67
- super.warn('- ' + message, context)
68
- LoggerRequest.sendToLogstash('warn', message, { context: context })
69
- } else {
70
- super.warn('- ' + message)
71
- LoggerRequest.sendToLogstash('warn', message)
72
- }
73
- }
74
-
75
- error(message: string)
76
- error(message: string, trace: string)
77
- error(message: string, trace: string, meta: any)
78
- error(message: string, trace?: string, meta?: any) {
79
- if (meta) {
80
- super.error('- ' + message, trace, meta)
81
- LoggerRequest.sendToLogstash('error', message, { trace, meta })
82
- } else if (trace) {
83
- super.error('- ' + message, trace)
84
- LoggerRequest.sendToLogstash('error', message, { trace })
85
- } else {
86
- super.error('- ' + message)
87
- LoggerRequest.sendToLogstash('error', message)
88
- }
89
- }
90
-
91
- debug(message: string)
92
- debug(message: any, context: string)
93
- debug(message: any, context?: string) {
94
- if (context) {
95
- super.debug('- ' + message, context)
96
- LoggerRequest.sendToLogstash('warn', message, { context: context })
97
- } else {
98
- super.debug('- ' + message)
99
- LoggerRequest.sendToLogstash('warn', message)
100
- }
101
- }
102
- //#endregion
103
-
104
- //#region Static methods
105
- static async log(message: string, meta?: any) {
106
- const logger = new Logger()
107
- logger.log(message, meta)
108
- await LoggerRequest.sendToLogstash('log', message, { meta: meta })
109
- }
110
-
111
- static async warn(message: string, meta?: any) {
112
- NestLogger.warn(message, meta)
113
- await LoggerRequest.sendToLogstash('warn', message, { meta: meta })
114
- }
115
-
116
- static async error(message: string)
117
- static async error(message: string, trace: string)
118
- static async error(message: string, trace: string, meta: any)
119
- static async error(message: string, trace?: string, meta?: any) {
120
- if (meta) {
121
- NestLogger.error(message, trace, meta)
122
- // await LoggerRequest.sendToLogstash('error', message, { trace, meta })
123
- } else if (trace) {
124
- NestLogger.error(message, trace)
125
- // await LoggerRequest.sendToLogstash('error', message, { trace })
126
- } else {
127
- NestLogger.error(message)
128
- // await LoggerRequest.sendToLogstash('error', message)
129
- }
130
- }
131
-
132
- static async debug(message: string, meta?: any) {
133
- NestLogger.debug(message, meta)
134
- await LoggerRequest.sendToLogstash('debug', message, { meta: meta })
135
- }
136
- //#endregion
137
- }