@owox/backend 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/commands/create-migration-template.js +8 -0
  2. package/dist/public/assets/index-CISA6IwH.css +1 -0
  3. package/dist/public/assets/index-xNsUEA9g.js +550 -0
  4. package/dist/public/index.html +2 -2
  5. package/dist/{app.module.js → src/app.module.js} +2 -5
  6. package/dist/src/common/schemas/google-service-account-key.schema.js +33 -0
  7. package/dist/src/common/zod/zod-transformer.js +14 -0
  8. package/dist/src/config/data-source-options.config.js +49 -0
  9. package/dist/{config → src/config}/express-static.config.js +7 -3
  10. package/dist/src/config/get-sqlite-database-path.js +36 -0
  11. package/dist/src/config/migrations.config.js +30 -0
  12. package/dist/src/data-marts/connector-types/connector-definition.js +11 -0
  13. package/dist/src/data-marts/connector-types/connector-fields-schema.js +18 -0
  14. package/dist/src/data-marts/connector-types/connector-specification.js +20 -0
  15. package/dist/src/data-marts/controllers/connector.controller.js +79 -0
  16. package/dist/src/data-marts/controllers/data-destination.controller.js +124 -0
  17. package/dist/{data-marts → src/data-marts}/controllers/data-mart.controller.js +20 -2
  18. package/dist/src/data-marts/controllers/report.controller.js +159 -0
  19. package/dist/src/data-marts/controllers/spec/connector.api.js +20 -0
  20. package/dist/src/data-marts/controllers/spec/data-destination.api.js +28 -0
  21. package/dist/{data-marts → src/data-marts}/controllers/spec/data-mart.api.js +4 -0
  22. package/dist/src/data-marts/controllers/spec/report.api.js +55 -0
  23. package/dist/src/data-marts/data-destination-types/data-destination-config.guards.js +13 -0
  24. package/dist/src/data-marts/data-destination-types/data-destination-config.type.js +7 -0
  25. package/dist/src/data-marts/data-destination-types/data-destination-credentials.guards.js +13 -0
  26. package/dist/src/data-marts/data-destination-types/data-destination-credentials.type.js +9 -0
  27. package/dist/src/data-marts/data-destination-types/data-destination-facades.js +10 -0
  28. package/dist/src/data-marts/data-destination-types/data-destination-providers.js +40 -0
  29. package/dist/src/data-marts/data-destination-types/enums/data-destination-type.enum.js +17 -0
  30. package/dist/src/data-marts/data-destination-types/facades/data-destination-access-validator.facade.js +40 -0
  31. package/dist/{data-marts/data-storage-types/facades/data-storage-title.facade.js → src/data-marts/data-destination-types/facades/data-destination-credentials-validator.facade.js} +13 -13
  32. package/dist/{data-marts/data-storage-types/athena/services/athena-title.generator.js → src/data-marts/data-destination-types/google-sheets/adapters/google-sheets-api-adapter.factory.js} +9 -12
  33. package/dist/src/data-marts/data-destination-types/google-sheets/adapters/google-sheets-api.adapter.js +104 -0
  34. package/dist/src/data-marts/data-destination-types/google-sheets/schemas/google-sheets-config.schema.js +11 -0
  35. package/dist/src/data-marts/data-destination-types/google-sheets/schemas/google-sheets-credentials.schema.js +13 -0
  36. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-access-validator.js +59 -0
  37. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-credentials-validator.js +45 -0
  38. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-report-writer.js +158 -0
  39. package/dist/src/data-marts/data-destination-types/google-sheets/services/sheet-formatters/sheet-header-formatter.js +54 -0
  40. package/dist/src/data-marts/data-destination-types/google-sheets/services/sheet-formatters/sheet-metadata-formatter.js +60 -0
  41. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-access-validator.interface.js +17 -0
  42. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-credentials-validator.interface.js +15 -0
  43. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-report-writer.interface.js +3 -0
  44. package/dist/src/data-marts/data-marts.module.js +127 -0
  45. package/dist/{data-marts/data-storage-types/bigquery/services/bigquery-title.generator.js → src/data-marts/data-storage-types/athena/adapters/athena-api-adapter.factory.js} +9 -12
  46. package/dist/src/data-marts/data-storage-types/athena/adapters/athena-api.adapter.js +91 -0
  47. package/dist/src/data-marts/data-storage-types/athena/adapters/s3-api-adapter.factory.js +21 -0
  48. package/dist/src/data-marts/data-storage-types/athena/adapters/s3-api.adapter.js +53 -0
  49. package/dist/src/data-marts/data-storage-types/athena/services/athena-report-reader.service.js +158 -0
  50. package/dist/src/data-marts/data-storage-types/bigquery/adapters/bigquery-api-adapter.factory.js +21 -0
  51. package/dist/src/data-marts/data-storage-types/bigquery/adapters/bigquery-api.adapter.js +36 -0
  52. package/dist/src/data-marts/data-storage-types/bigquery/schemas/bigquery-credentials.schema.js +6 -0
  53. package/dist/src/data-marts/data-storage-types/bigquery/services/bigquery-report-reader.service.js +132 -0
  54. package/dist/src/data-marts/data-storage-types/data-storage-config.guards.js +13 -0
  55. package/dist/src/data-marts/data-storage-types/data-storage-credentials.guards.js +13 -0
  56. package/dist/src/data-marts/data-storage-types/data-storage-credentials.type.js +3 -0
  57. package/dist/src/data-marts/data-storage-types/data-storage-facades.js +6 -0
  58. package/dist/src/data-marts/data-storage-types/data-storage-providers.js +32 -0
  59. package/dist/src/data-marts/data-storage-types/interfaces/data-storage-report-reader.interface.js +3 -0
  60. package/dist/src/data-marts/dto/domain/create-data-destination.command.js +17 -0
  61. package/dist/src/data-marts/dto/domain/create-report.command.js +21 -0
  62. package/dist/src/data-marts/dto/domain/data-destination.dto.js +23 -0
  63. package/dist/src/data-marts/dto/domain/delete-data-destination.command.js +13 -0
  64. package/dist/src/data-marts/dto/domain/get-data-destination.command.js +13 -0
  65. package/dist/src/data-marts/dto/domain/get-report.command.js +15 -0
  66. package/dist/src/data-marts/dto/domain/list-data-destinations.command.js +11 -0
  67. package/dist/src/data-marts/dto/domain/list-reports-by-data-mart.command.js +15 -0
  68. package/dist/src/data-marts/dto/domain/list-reports-by-project.command.js +13 -0
  69. package/dist/src/data-marts/dto/domain/report-data-batch.dto.js +13 -0
  70. package/dist/src/data-marts/dto/domain/report-data-description.dto.js +13 -0
  71. package/dist/src/data-marts/dto/domain/report.dto.js +31 -0
  72. package/dist/src/data-marts/dto/domain/run-data-mart.command.js +15 -0
  73. package/dist/src/data-marts/dto/domain/run-report.command.js +3 -0
  74. package/dist/src/data-marts/dto/domain/update-data-destination.command.js +17 -0
  75. package/dist/src/data-marts/dto/domain/update-report.command.js +21 -0
  76. package/dist/src/data-marts/dto/presentation/connector-definition-response-api.dto.js +37 -0
  77. package/dist/src/data-marts/dto/presentation/connector-fields-response-api.dto.js +60 -0
  78. package/dist/src/data-marts/dto/presentation/connector-specification-response-api.dto.js +65 -0
  79. package/dist/src/data-marts/dto/presentation/create-data-destination-api.dto.js +42 -0
  80. package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.js +46 -0
  81. package/dist/src/data-marts/dto/presentation/data-destination-response-api.dto.js +57 -0
  82. package/dist/src/data-marts/dto/presentation/report-response-api.dto.js +75 -0
  83. package/dist/src/data-marts/dto/presentation/update-data-destination-api.dto.js +35 -0
  84. package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.js +39 -0
  85. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.js +23 -0
  86. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/data-mart-definition.guards.js +23 -0
  87. package/dist/src/data-marts/entities/data-destination.entity.js +66 -0
  88. package/dist/src/data-marts/entities/data-mart-run.entity.js +63 -0
  89. package/dist/src/data-marts/entities/report.entity.js +85 -0
  90. package/dist/{data-marts → src/data-marts}/enums/data-mart-definition-type.enum.js +1 -0
  91. package/dist/src/data-marts/enums/data-mart-run-status.enum.js +10 -0
  92. package/dist/src/data-marts/enums/report-run-status.enum.js +10 -0
  93. package/dist/src/data-marts/mappers/connector.mapper.js +54 -0
  94. package/dist/src/data-marts/mappers/data-destination.mapper.js +58 -0
  95. package/dist/{data-marts → src/data-marts}/mappers/data-mart.mapper.js +4 -0
  96. package/dist/{data-marts → src/data-marts}/mappers/data-storage.mapper.js +2 -6
  97. package/dist/src/data-marts/mappers/report.mapper.js +81 -0
  98. package/dist/src/data-marts/services/connector-execution.service.js +190 -0
  99. package/dist/src/data-marts/services/connector.service.js +79 -0
  100. package/dist/src/data-marts/services/data-destination.service.js +39 -0
  101. package/dist/src/data-marts/use-cases/connector/available-connector.service.js +29 -0
  102. package/dist/src/data-marts/use-cases/connector/fields-connector.service.js +29 -0
  103. package/dist/src/data-marts/use-cases/connector/specification-connector.service.js +29 -0
  104. package/dist/src/data-marts/use-cases/create-data-destination.service.js +51 -0
  105. package/dist/src/data-marts/use-cases/create-report.service.js +83 -0
  106. package/dist/src/data-marts/use-cases/delete-data-destination.service.js +59 -0
  107. package/dist/src/data-marts/use-cases/delete-report.service.js +46 -0
  108. package/dist/src/data-marts/use-cases/get-data-destination.service.js +34 -0
  109. package/dist/src/data-marts/use-cases/get-report.service.js +51 -0
  110. package/dist/src/data-marts/use-cases/list-data-destinations.service.js +42 -0
  111. package/dist/src/data-marts/use-cases/list-reports-by-data-mart.service.js +47 -0
  112. package/dist/src/data-marts/use-cases/list-reports-by-project.service.js +47 -0
  113. package/dist/src/data-marts/use-cases/run-data-mart.service.js +39 -0
  114. package/dist/src/data-marts/use-cases/run-report.service.js +97 -0
  115. package/dist/src/data-marts/use-cases/update-data-destination.service.js +52 -0
  116. package/dist/src/data-marts/use-cases/update-report.service.js +77 -0
  117. package/dist/src/data-source.js +11 -0
  118. package/dist/src/load-env.js +34 -0
  119. package/dist/{main.js → src/main.js} +7 -1
  120. package/dist/src/migrations/1750350724543-create-data-mart-and-data-storage-tables.js +53 -0
  121. package/dist/src/migrations/helper.js +13 -0
  122. package/package.json +28 -9
  123. package/dist/config/database.config.js +0 -31
  124. package/dist/data-marts/data-marts.module.js +0 -65
  125. package/dist/data-marts/data-storage-types/bigquery/schemas/bigquery-credentials.schema.js +0 -11
  126. package/dist/data-marts/data-storage-types/data-storage-facades.js +0 -7
  127. package/dist/data-marts/data-storage-types/data-storage-providers.js +0 -27
  128. package/dist/data-marts/data-storage-types/interfaces/data-storage-title-generator.interface.js +0 -3
  129. package/dist/public/assets/index-BZJIHZWS.js +0 -502
  130. package/dist/public/assets/index-BpZgB8Pl.css +0 -1
  131. /package/dist/{common → src/common}/authorization-context/authorization.context.js +0 -0
  132. /package/dist/{common → src/common}/common.module.js +0 -0
  133. /package/dist/{common → src/common}/exceptions/access-validation.exception.js +0 -0
  134. /package/dist/{common → src/common}/exceptions/base-exception.filter.js +0 -0
  135. /package/dist/{common → src/common}/exceptions/base.exception.js +0 -0
  136. /package/dist/{common → src/common}/exceptions/business-violation.exception.js +0 -0
  137. /package/dist/{common → src/common}/resolver/type-resolver.js +0 -0
  138. /package/dist/{common → src/common}/resolver/typed-component.resolver.js +0 -0
  139. /package/dist/{common → src/common}/scheduler/facades/scheduler-facade.impl.js +0 -0
  140. /package/dist/{common → src/common}/scheduler/scheduler.module.js +0 -0
  141. /package/dist/{common → src/common}/scheduler/services/fetchers/time-based-trigger-fetcher.factory.js +0 -0
  142. /package/dist/{common → src/common}/scheduler/services/fetchers/time-based-trigger-fetcher.service.js +0 -0
  143. /package/dist/{common → src/common}/scheduler/services/graceful-shutdown.service.js +0 -0
  144. /package/dist/{common → src/common}/scheduler/services/runners/abstract-trigger-runner.service.js +0 -0
  145. /package/dist/{common → src/common}/scheduler/services/runners/direct-trigger-runner.service.js +0 -0
  146. /package/dist/{common → src/common}/scheduler/services/runners/pubsub-trigger-runner.service.js +0 -0
  147. /package/dist/{common → src/common}/scheduler/services/runners/trigger-runner.factory.js +0 -0
  148. /package/dist/{common → src/common}/scheduler/services/runners/trigger-runner.interface.js +0 -0
  149. /package/dist/{common → src/common}/scheduler/services/system-time.service.js +0 -0
  150. /package/dist/{common → src/common}/scheduler/shared/entities/scheduled-trigger.entity.js +0 -0
  151. /package/dist/{common → src/common}/scheduler/shared/entities/time-based-trigger.entity.js +0 -0
  152. /package/dist/{common → src/common}/scheduler/shared/scheduler.facade.js +0 -0
  153. /package/dist/{common → src/common}/scheduler/shared/time-based-trigger-handler.interface.js +0 -0
  154. /package/dist/{config → src/config}/global-pipes.config.js +0 -0
  155. /package/dist/{config → src/config}/swagger.config.js +0 -0
  156. /package/dist/{data-marts → src/data-marts}/controllers/data-storage.controller.js +0 -0
  157. /package/dist/{data-marts → src/data-marts}/controllers/spec/data-storage.api.js +0 -0
  158. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/schemas/athena-config.schema.js +0 -0
  159. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/schemas/athena-credentials.schema.js +0 -0
  160. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/services/athena-access.validator.js +0 -0
  161. /package/dist/{data-marts → src/data-marts}/data-storage-types/bigquery/schemas/bigquery-config.schema.js +0 -0
  162. /package/dist/{data-marts → src/data-marts}/data-storage-types/bigquery/services/bigquery-access.validator.js +0 -0
  163. /package/dist/{data-marts → src/data-marts}/data-storage-types/data-storage-config.type.js +0 -0
  164. /package/dist/{data-marts → src/data-marts}/data-storage-types/enums/data-storage-type.enum.js +0 -0
  165. /package/dist/{data-marts → src/data-marts}/data-storage-types/facades/data-storage-access.facade.js +0 -0
  166. /package/dist/{data-marts → src/data-marts}/data-storage-types/interfaces/data-storage-access-validator.interface.js +0 -0
  167. /package/dist/{data-marts → src/data-marts}/dto/domain/create-data-mart.command.js +0 -0
  168. /package/dist/{data-marts → src/data-marts}/dto/domain/create-data-storage.command.js +0 -0
  169. /package/dist/{data-marts → src/data-marts}/dto/domain/data-mart.dto.js +0 -0
  170. /package/dist/{data-marts → src/data-marts}/dto/domain/data-storage.dto.js +0 -0
  171. /package/dist/{data-marts → src/data-marts}/dto/domain/delete-data-mart.command.js +0 -0
  172. /package/dist/{data-marts → src/data-marts}/dto/domain/delete-data-storage.command.js +0 -0
  173. /package/dist/{data-marts → src/data-marts}/dto/domain/get-data-mart.command.js +0 -0
  174. /package/dist/{data-marts → src/data-marts}/dto/domain/get-data-storage.command.js +0 -0
  175. /package/dist/{data-marts → src/data-marts}/dto/domain/list-data-marts.command.js +0 -0
  176. /package/dist/{data-marts → src/data-marts}/dto/domain/list-data-storages.command.js +0 -0
  177. /package/dist/{data-marts → src/data-marts}/dto/domain/publish-data-mart.command.js +0 -0
  178. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-definition.command.js +0 -0
  179. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-description.command.js +0 -0
  180. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-title.command.js +0 -0
  181. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-storage.command.js +0 -0
  182. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-mart-request-api.dto.js +0 -0
  183. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-mart-response-api.dto.js +0 -0
  184. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-storage-api.dto.js +0 -0
  185. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-mart-response-api.dto.js +0 -0
  186. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-storage-list-response-api.dto.js +0 -0
  187. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-storage-response-api.dto.js +0 -0
  188. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-definition-api.dto.js +0 -0
  189. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-description-api.dto.js +0 -0
  190. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-title-api.dto.js +0 -0
  191. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-storage-api.dto.js +0 -0
  192. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/data-mart-definition.js +0 -0
  193. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/sql-definition.schema.js +0 -0
  194. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/table-definition.schema.js +0 -0
  195. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/table-pattern-definition.schema.js +0 -0
  196. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/view-definition.schema.js +0 -0
  197. /package/dist/{data-marts → src/data-marts}/entities/data-mart.entity.js +0 -0
  198. /package/dist/{data-marts → src/data-marts}/entities/data-storage.entity.js +0 -0
  199. /package/dist/{data-marts → src/data-marts}/enums/data-mart-status.enum.js +0 -0
  200. /package/dist/{data-marts → src/data-marts}/services/data-mart.service.js +0 -0
  201. /package/dist/{data-marts → src/data-marts}/services/data-storage.service.js +0 -0
  202. /package/dist/{data-marts → src/data-marts}/use-cases/create-data-mart.service.js +0 -0
  203. /package/dist/{data-marts → src/data-marts}/use-cases/create-data-storage.service.js +0 -0
  204. /package/dist/{data-marts → src/data-marts}/use-cases/delete-data-mart.service.js +0 -0
  205. /package/dist/{data-marts → src/data-marts}/use-cases/delete-data-storage.service.js +0 -0
  206. /package/dist/{data-marts → src/data-marts}/use-cases/get-data-mart.service.js +0 -0
  207. /package/dist/{data-marts → src/data-marts}/use-cases/get-data-storage.service.js +0 -0
  208. /package/dist/{data-marts → src/data-marts}/use-cases/list-data-marts.service.js +0 -0
  209. /package/dist/{data-marts → src/data-marts}/use-cases/list-data-storages.service.js +0 -0
  210. /package/dist/{data-marts → src/data-marts}/use-cases/publish-data-mart.service.js +0 -0
  211. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-definition.service.js +0 -0
  212. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-description.service.js +0 -0
  213. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-title.service.js +0 -0
  214. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-storage.service.js +0 -0
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleSheetsCredentialsSchema = exports.GoogleSheetsCredentialsType = void 0;
4
+ const zod_1 = require("zod");
5
+ const google_service_account_key_schema_1 = require("../../../../common/schemas/google-service-account-key.schema");
6
+ exports.GoogleSheetsCredentialsType = 'google-sheets-credentials';
7
+ exports.GoogleSheetsCredentialsSchema = zod_1.z
8
+ .object({
9
+ type: zod_1.z.literal(exports.GoogleSheetsCredentialsType),
10
+ serviceAccountKey: google_service_account_key_schema_1.GoogleServiceAccountKeySchema,
11
+ })
12
+ .passthrough();
13
+ //# sourceMappingURL=google-sheets-credentials.schema.js.map
@@ -0,0 +1,59 @@
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 GoogleSheetsAccessValidator_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.GoogleSheetsAccessValidator = void 0;
11
+ const data_destination_access_validator_interface_1 = require("../../interfaces/data-destination-access-validator.interface");
12
+ const data_destination_type_enum_1 = require("../../enums/data-destination-type.enum");
13
+ const common_1 = require("@nestjs/common");
14
+ const google_sheets_credentials_schema_1 = require("../schemas/google-sheets-credentials.schema");
15
+ const google_sheets_config_schema_1 = require("../schemas/google-sheets-config.schema");
16
+ const google_sheets_api_adapter_1 = require("../adapters/google-sheets-api.adapter");
17
+ let GoogleSheetsAccessValidator = GoogleSheetsAccessValidator_1 = class GoogleSheetsAccessValidator {
18
+ logger = new common_1.Logger(GoogleSheetsAccessValidator_1.name);
19
+ type = data_destination_type_enum_1.DataDestinationType.GOOGLE_SHEETS;
20
+ async validate(destinationConfig, dataDestination) {
21
+ const credentials = dataDestination.credentials;
22
+ const credentialsOpt = google_sheets_credentials_schema_1.GoogleSheetsCredentialsSchema.safeParse(credentials);
23
+ if (!credentialsOpt.success) {
24
+ this.logger.warn('Invalid credentials format', credentialsOpt.error);
25
+ return new data_destination_access_validator_interface_1.ValidationResult(false, 'Invalid credentials', {
26
+ errors: credentialsOpt.error.errors,
27
+ });
28
+ }
29
+ const configOpt = google_sheets_config_schema_1.GoogleSheetsConfigSchema.safeParse(destinationConfig);
30
+ if (!configOpt.success) {
31
+ this.logger.warn('Invalid configuration format', configOpt.error);
32
+ return new data_destination_access_validator_interface_1.ValidationResult(false, 'Invalid configuration', {
33
+ errors: configOpt.error.errors,
34
+ });
35
+ }
36
+ try {
37
+ const adapter = new google_sheets_api_adapter_1.GoogleSheetsApiAdapter(credentials);
38
+ const spreadsheet = await adapter.getSpreadsheet(configOpt.data.spreadsheetId, 'properties.title,sheets.properties.sheetId,sheets.properties.title');
39
+ const sheet = adapter.findSheetById(spreadsheet, configOpt.data.sheetId);
40
+ if (!spreadsheet?.properties?.title || !sheet || !sheet?.properties?.title) {
41
+ this.logger.warn(`Failed to find sheet ${configOpt.data.sheetId} in spreadsheet ${configOpt.data.spreadsheetId}`);
42
+ return new data_destination_access_validator_interface_1.ValidationResult(false, `Failed to find sheet ${configOpt.data.sheetId} in spreadsheet ${configOpt.data.spreadsheetId}`);
43
+ }
44
+ return new data_destination_access_validator_interface_1.ValidationResult(true, undefined, undefined, {
45
+ spreadsheetTitle: spreadsheet.properties?.title,
46
+ sheetTitle: sheet.properties?.title,
47
+ });
48
+ }
49
+ catch (error) {
50
+ this.logger.warn('Access check failed', error);
51
+ return new data_destination_access_validator_interface_1.ValidationResult(false, 'Access check failed');
52
+ }
53
+ }
54
+ };
55
+ exports.GoogleSheetsAccessValidator = GoogleSheetsAccessValidator;
56
+ exports.GoogleSheetsAccessValidator = GoogleSheetsAccessValidator = GoogleSheetsAccessValidator_1 = __decorate([
57
+ (0, common_1.Injectable)()
58
+ ], GoogleSheetsAccessValidator);
59
+ //# sourceMappingURL=google-sheets-access-validator.js.map
@@ -0,0 +1,45 @@
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 GoogleSheetsCredentialsValidator_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.GoogleSheetsCredentialsValidator = void 0;
11
+ const data_destination_type_enum_1 = require("../../enums/data-destination-type.enum");
12
+ const common_1 = require("@nestjs/common");
13
+ const data_destination_credentials_validator_interface_1 = require("../../interfaces/data-destination-credentials-validator.interface");
14
+ const google_sheets_credentials_schema_1 = require("../schemas/google-sheets-credentials.schema");
15
+ const google_sheets_api_adapter_1 = require("../adapters/google-sheets-api.adapter");
16
+ let GoogleSheetsCredentialsValidator = GoogleSheetsCredentialsValidator_1 = class GoogleSheetsCredentialsValidator {
17
+ logger = new common_1.Logger(GoogleSheetsCredentialsValidator_1.name);
18
+ type = data_destination_type_enum_1.DataDestinationType.GOOGLE_SHEETS;
19
+ async validate(credentials) {
20
+ const credentialsOpt = google_sheets_credentials_schema_1.GoogleSheetsCredentialsSchema.safeParse(credentials);
21
+ if (!credentialsOpt.success) {
22
+ this.logger.warn('Invalid credentials format', credentialsOpt.error);
23
+ return new data_destination_credentials_validator_interface_1.ValidationResult(false, 'Invalid credentials', {
24
+ errors: credentialsOpt.error.errors,
25
+ });
26
+ }
27
+ try {
28
+ const isValid = await google_sheets_api_adapter_1.GoogleSheetsApiAdapter.validateCredentials(credentialsOpt.data);
29
+ if (!isValid) {
30
+ this.logger.warn('Invalid credentials');
31
+ return new data_destination_credentials_validator_interface_1.ValidationResult(false, 'Invalid credentials');
32
+ }
33
+ return new data_destination_credentials_validator_interface_1.ValidationResult(true);
34
+ }
35
+ catch (error) {
36
+ this.logger.warn('Invalid credentials', error);
37
+ return new data_destination_credentials_validator_interface_1.ValidationResult(false, 'Invalid credentials');
38
+ }
39
+ }
40
+ };
41
+ exports.GoogleSheetsCredentialsValidator = GoogleSheetsCredentialsValidator;
42
+ exports.GoogleSheetsCredentialsValidator = GoogleSheetsCredentialsValidator = GoogleSheetsCredentialsValidator_1 = __decorate([
43
+ (0, common_1.Injectable)()
44
+ ], GoogleSheetsCredentialsValidator);
45
+ //# sourceMappingURL=google-sheets-credentials-validator.js.map
@@ -0,0 +1,158 @@
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 __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var GoogleSheetsReportWriter_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.GoogleSheetsReportWriter = void 0;
14
+ const data_destination_type_enum_1 = require("../../enums/data-destination-type.enum");
15
+ const common_1 = require("@nestjs/common");
16
+ const data_destination_config_guards_1 = require("../../data-destination-config.guards");
17
+ const data_destination_credentials_guards_1 = require("../../data-destination-credentials.guards");
18
+ const luxon_1 = require("luxon");
19
+ const sheet_header_formatter_1 = require("./sheet-formatters/sheet-header-formatter");
20
+ const sheet_metadata_formatter_1 = require("./sheet-formatters/sheet-metadata-formatter");
21
+ const google_sheets_api_adapter_factory_1 = require("../adapters/google-sheets-api-adapter.factory");
22
+ let GoogleSheetsReportWriter = GoogleSheetsReportWriter_1 = class GoogleSheetsReportWriter {
23
+ headerFormatter;
24
+ metadataFormatter;
25
+ adapterFactory;
26
+ type = data_destination_type_enum_1.DataDestinationType.GOOGLE_SHEETS;
27
+ logger = new common_1.Logger(GoogleSheetsReportWriter_1.name);
28
+ adapter;
29
+ destination;
30
+ spreadsheetTimeZone;
31
+ sheetTitle;
32
+ dataMartTitle;
33
+ writtenRowsCount = 0;
34
+ availableRowsCount = 0;
35
+ availableColumnsCount = 0;
36
+ constructor(headerFormatter, metadataFormatter, adapterFactory) {
37
+ this.headerFormatter = headerFormatter;
38
+ this.metadataFormatter = metadataFormatter;
39
+ this.adapterFactory = adapterFactory;
40
+ }
41
+ async prepareToWriteReport(report, reportDataDescription) {
42
+ return this.executeWithErrorHandling(async () => {
43
+ await this.initializeService(report);
44
+ await this.prepareSheetColumns(reportDataDescription.dataHeaders.length);
45
+ if (reportDataDescription.estimatedDataRowsCount) {
46
+ await this.ensureRowsAvailable(reportDataDescription.estimatedDataRowsCount + 1);
47
+ }
48
+ await this.clearSheet();
49
+ await this.writeHeaders(reportDataDescription.dataHeaders);
50
+ }, 'Preparing Google Sheets document for report');
51
+ }
52
+ async writeReportDataBatch(reportDataBatch) {
53
+ return this.executeWithErrorHandling(async () => {
54
+ const rows = reportDataBatch.dataRows;
55
+ if (!rows.length) {
56
+ return;
57
+ }
58
+ await this.ensureRowsAvailable(rows.length);
59
+ const rowToWrite = this.writtenRowsCount + 1;
60
+ const range = `'${this.sheetTitle}'!${rowToWrite}:${rowToWrite + rows.length}`;
61
+ await this.adapter.updateValues(this.destination.spreadsheetId, range, rows);
62
+ this.writtenRowsCount += rows.length;
63
+ }, 'Writing data batch to Google Sheets');
64
+ }
65
+ async finalize() {
66
+ return this.executeWithErrorHandling(async () => {
67
+ if (this.writtenRowsCount > 0) {
68
+ const dateNow = luxon_1.DateTime.now().setZone(this.spreadsheetTimeZone);
69
+ const dateNowFormatted = `${dateNow.toFormat('yyyy LLL d, HH:mm:ss')} ${dateNow.zoneName}`;
70
+ await this.adapter.batchUpdate(this.destination.spreadsheetId, [
71
+ this.metadataFormatter.createTabColorAndFreezeHeaderRequest(this.destination.sheetId),
72
+ this.metadataFormatter.createMetadataNoteRequest(this.destination.sheetId, dateNowFormatted, this.dataMartTitle),
73
+ ]);
74
+ }
75
+ }, 'Finalizing report with metadata and formatting');
76
+ }
77
+ async initializeService(report) {
78
+ return this.executeWithErrorHandling(async () => {
79
+ if (!(0, data_destination_config_guards_1.isGoogleSheetsDestination)(report.destinationConfig)) {
80
+ throw new Error('Invalid Google Sheets destination configuration provided');
81
+ }
82
+ this.destination = report.destinationConfig;
83
+ if (!(0, data_destination_credentials_guards_1.isGoogleSheetsCredentials)(report.dataDestination.credentials)) {
84
+ throw new Error('Invalid Google Sheets credentials provided');
85
+ }
86
+ this.adapter = this.adapterFactory.create(report.dataDestination.credentials);
87
+ const spreadsheet = await this.adapter.getSpreadsheet(this.destination.spreadsheetId);
88
+ const sheet = this.adapter.findSheetById(spreadsheet, this.destination.sheetId);
89
+ if (!sheet) {
90
+ throw new Error(`Failed to find sheet ${this.destination.sheetId} in spreadsheet ${this.destination.spreadsheetId}`);
91
+ }
92
+ if (!sheet.properties?.title) {
93
+ throw new Error('Sheet title is undefined');
94
+ }
95
+ this.sheetTitle = sheet.properties?.title;
96
+ this.availableRowsCount = sheet.properties?.gridProperties?.rowCount ?? 0;
97
+ this.availableColumnsCount = sheet.properties?.gridProperties?.columnCount ?? 0;
98
+ this.spreadsheetTimeZone = spreadsheet.properties?.timeZone ?? 'UTC';
99
+ this.dataMartTitle = report.dataMart.title;
100
+ }, 'Initializing Google Sheets service and locating target sheet');
101
+ }
102
+ async prepareSheetColumns(columnsCount) {
103
+ return this.executeWithErrorHandling(async () => {
104
+ const columnsToAllocate = columnsCount - this.availableColumnsCount;
105
+ if (columnsToAllocate <= 0) {
106
+ return;
107
+ }
108
+ await this.adapter.appendDimensionToSheet(this.destination.spreadsheetId, this.destination.sheetId, columnsToAllocate, 'COLUMNS');
109
+ }, 'Adding columns to sheet as needed');
110
+ }
111
+ async ensureRowsAvailable(rowsToWrite) {
112
+ return this.executeWithErrorHandling(async () => {
113
+ const rowsNeeded = this.writtenRowsCount + rowsToWrite;
114
+ const rowsToAllocate = rowsNeeded - this.availableRowsCount;
115
+ if (rowsToAllocate <= 0) {
116
+ return;
117
+ }
118
+ await this.adapter.appendDimensionToSheet(this.destination.spreadsheetId, this.destination.sheetId, rowsToAllocate, 'ROWS');
119
+ this.availableRowsCount += rowsToAllocate;
120
+ }, 'Adding rows to sheet to accommodate data');
121
+ }
122
+ async clearSheet() {
123
+ return this.executeWithErrorHandling(async () => {
124
+ await this.adapter.clearSheet(this.destination.spreadsheetId, this.sheetTitle);
125
+ }, 'Clearing all content from sheet');
126
+ }
127
+ async writeHeaders(columnTitles) {
128
+ return this.executeWithErrorHandling(async () => {
129
+ await this.adapter.batchUpdate(this.destination.spreadsheetId, [
130
+ this.headerFormatter.createHeaderFormatRequest(this.destination.sheetId, columnTitles.length),
131
+ ]);
132
+ await this.adapter.updateValues(this.destination.spreadsheetId, `'${this.sheetTitle}'`, [
133
+ columnTitles,
134
+ ]);
135
+ this.writtenRowsCount++;
136
+ }, 'Writing and formatting column headers');
137
+ }
138
+ async executeWithErrorHandling(operation, operationName) {
139
+ try {
140
+ this.logger.debug(`${operationName} started`);
141
+ const result = await operation();
142
+ this.logger.debug(`${operationName} completed`);
143
+ return result;
144
+ }
145
+ catch (error) {
146
+ this.logger.error(`${operationName} failed: ${error.message}`, error.stack);
147
+ throw error;
148
+ }
149
+ }
150
+ };
151
+ exports.GoogleSheetsReportWriter = GoogleSheetsReportWriter;
152
+ exports.GoogleSheetsReportWriter = GoogleSheetsReportWriter = GoogleSheetsReportWriter_1 = __decorate([
153
+ (0, common_1.Injectable)({ scope: common_1.Scope.TRANSIENT }),
154
+ __metadata("design:paramtypes", [sheet_header_formatter_1.SheetHeaderFormatter,
155
+ sheet_metadata_formatter_1.SheetMetadataFormatter,
156
+ google_sheets_api_adapter_factory_1.GoogleSheetsApiAdapterFactory])
157
+ ], GoogleSheetsReportWriter);
158
+ //# sourceMappingURL=google-sheets-report-writer.js.map
@@ -0,0 +1,54 @@
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 SheetHeaderFormatter_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SheetHeaderFormatter = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ let SheetHeaderFormatter = class SheetHeaderFormatter {
13
+ static { SheetHeaderFormatter_1 = this; }
14
+ static HEADER_BACKGROUND_COLOR = {
15
+ red: 243 / 255,
16
+ green: 243 / 255,
17
+ blue: 243 / 255,
18
+ alpha: 1.0,
19
+ };
20
+ static HEADER_TEXT_COLOR = {
21
+ red: 0.1,
22
+ green: 0.1,
23
+ blue: 0.1,
24
+ alpha: 1.0,
25
+ };
26
+ createHeaderFormatRequest(sheetId, columnsCount) {
27
+ return {
28
+ repeatCell: {
29
+ range: {
30
+ sheetId: sheetId,
31
+ startRowIndex: 0,
32
+ endRowIndex: 1,
33
+ startColumnIndex: 0,
34
+ endColumnIndex: columnsCount,
35
+ },
36
+ cell: {
37
+ userEnteredFormat: {
38
+ backgroundColor: SheetHeaderFormatter_1.HEADER_BACKGROUND_COLOR,
39
+ textFormat: {
40
+ bold: true,
41
+ foregroundColor: SheetHeaderFormatter_1.HEADER_TEXT_COLOR,
42
+ },
43
+ },
44
+ },
45
+ fields: 'userEnteredFormat.textFormat,userEnteredFormat.backgroundColor',
46
+ },
47
+ };
48
+ }
49
+ };
50
+ exports.SheetHeaderFormatter = SheetHeaderFormatter;
51
+ exports.SheetHeaderFormatter = SheetHeaderFormatter = SheetHeaderFormatter_1 = __decorate([
52
+ (0, common_1.Injectable)()
53
+ ], SheetHeaderFormatter);
54
+ //# sourceMappingURL=sheet-header-formatter.js.map
@@ -0,0 +1,60 @@
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 SheetMetadataFormatter_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SheetMetadataFormatter = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ let SheetMetadataFormatter = class SheetMetadataFormatter {
13
+ static { SheetMetadataFormatter_1 = this; }
14
+ static TAB_COLOR = {
15
+ red: 30 / 255,
16
+ green: 136 / 255,
17
+ blue: 229 / 255,
18
+ alpha: 1.0,
19
+ };
20
+ createTabColorAndFreezeHeaderRequest(sheetId) {
21
+ return {
22
+ updateSheetProperties: {
23
+ properties: {
24
+ sheetId: sheetId,
25
+ gridProperties: {
26
+ frozenRowCount: 1,
27
+ },
28
+ tabColorStyle: {
29
+ rgbColor: SheetMetadataFormatter_1.TAB_COLOR,
30
+ },
31
+ },
32
+ fields: 'tabColorStyle,gridProperties.frozenRowCount',
33
+ },
34
+ };
35
+ }
36
+ createMetadataNoteRequest(sheetId, dateFormatted, dataMartTitle) {
37
+ const metadataNote = `Imported via OWOX Data Marts Community Edition at ${dateFormatted}\n` +
38
+ `Data Mart: ${dataMartTitle}`;
39
+ return {
40
+ repeatCell: {
41
+ range: {
42
+ sheetId: sheetId,
43
+ startRowIndex: 0,
44
+ endRowIndex: 1,
45
+ startColumnIndex: 0,
46
+ endColumnIndex: 1,
47
+ },
48
+ cell: {
49
+ note: metadataNote,
50
+ },
51
+ fields: 'note',
52
+ },
53
+ };
54
+ }
55
+ };
56
+ exports.SheetMetadataFormatter = SheetMetadataFormatter;
57
+ exports.SheetMetadataFormatter = SheetMetadataFormatter = SheetMetadataFormatter_1 = __decorate([
58
+ (0, common_1.Injectable)()
59
+ ], SheetMetadataFormatter);
60
+ //# sourceMappingURL=sheet-metadata-formatter.js.map
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationResult = void 0;
4
+ class ValidationResult {
5
+ valid;
6
+ errorMessage;
7
+ reason;
8
+ discoveredValues;
9
+ constructor(valid, errorMessage, reason, discoveredValues) {
10
+ this.valid = valid;
11
+ this.errorMessage = errorMessage;
12
+ this.reason = reason;
13
+ this.discoveredValues = discoveredValues;
14
+ }
15
+ }
16
+ exports.ValidationResult = ValidationResult;
17
+ //# sourceMappingURL=data-destination-access-validator.interface.js.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationResult = void 0;
4
+ class ValidationResult {
5
+ valid;
6
+ errorMessage;
7
+ reason;
8
+ constructor(valid, errorMessage, reason) {
9
+ this.valid = valid;
10
+ this.errorMessage = errorMessage;
11
+ this.reason = reason;
12
+ }
13
+ }
14
+ exports.ValidationResult = ValidationResult;
15
+ //# sourceMappingURL=data-destination-credentials-validator.interface.js.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data-destination-report-writer.interface.js.map
@@ -0,0 +1,127 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DataMartsModule = void 0;
10
+ const typeorm_1 = require("@nestjs/typeorm");
11
+ const common_1 = require("@nestjs/common");
12
+ const data_mart_controller_1 = require("./controllers/data-mart.controller");
13
+ const data_storage_controller_1 = require("./controllers/data-storage.controller");
14
+ const data_destination_controller_1 = require("./controllers/data-destination.controller");
15
+ const report_controller_1 = require("./controllers/report.controller");
16
+ const create_data_mart_service_1 = require("./use-cases/create-data-mart.service");
17
+ const list_data_marts_service_1 = require("./use-cases/list-data-marts.service");
18
+ const get_data_mart_service_1 = require("./use-cases/get-data-mart.service");
19
+ const data_mart_mapper_1 = require("./mappers/data-mart.mapper");
20
+ const data_storage_service_1 = require("./services/data-storage.service");
21
+ const data_storage_mapper_1 = require("./mappers/data-storage.mapper");
22
+ const data_destination_service_1 = require("./services/data-destination.service");
23
+ const data_destination_mapper_1 = require("./mappers/data-destination.mapper");
24
+ const report_mapper_1 = require("./mappers/report.mapper");
25
+ const get_data_storage_service_1 = require("./use-cases/get-data-storage.service");
26
+ const create_data_storage_service_1 = require("./use-cases/create-data-storage.service");
27
+ const update_data_storage_service_1 = require("./use-cases/update-data-storage.service");
28
+ const get_data_destination_service_1 = require("./use-cases/get-data-destination.service");
29
+ const create_data_destination_service_1 = require("./use-cases/create-data-destination.service");
30
+ const update_data_destination_service_1 = require("./use-cases/update-data-destination.service");
31
+ const create_report_service_1 = require("./use-cases/create-report.service");
32
+ const get_report_service_1 = require("./use-cases/get-report.service");
33
+ const list_reports_by_data_mart_service_1 = require("./use-cases/list-reports-by-data-mart.service");
34
+ const list_reports_by_project_service_1 = require("./use-cases/list-reports-by-project.service");
35
+ const delete_report_service_1 = require("./use-cases/delete-report.service");
36
+ const run_report_service_1 = require("./use-cases/run-report.service");
37
+ const update_report_service_1 = require("./use-cases/update-report.service");
38
+ const data_mart_entity_1 = require("./entities/data-mart.entity");
39
+ const data_storage_entity_1 = require("./entities/data-storage.entity");
40
+ const data_mart_run_entity_1 = require("./entities/data-mart-run.entity");
41
+ const data_storage_facades_1 = require("./data-storage-types/data-storage-facades");
42
+ const data_storage_providers_1 = require("./data-storage-types/data-storage-providers");
43
+ const data_destination_facades_1 = require("./data-destination-types/data-destination-facades");
44
+ const data_destination_providers_1 = require("./data-destination-types/data-destination-providers");
45
+ const update_data_mart_definition_service_1 = require("./use-cases/update-data-mart-definition.service");
46
+ const data_mart_service_1 = require("./services/data-mart.service");
47
+ const publish_data_mart_service_1 = require("./use-cases/publish-data-mart.service");
48
+ const update_data_mart_description_service_1 = require("./use-cases/update-data-mart-description.service");
49
+ const update_data_mart_title_service_1 = require("./use-cases/update-data-mart-title.service");
50
+ const list_data_storages_service_1 = require("./use-cases/list-data-storages.service");
51
+ const list_data_destinations_service_1 = require("./use-cases/list-data-destinations.service");
52
+ const delete_data_storage_service_1 = require("./use-cases/delete-data-storage.service");
53
+ const delete_data_destination_service_1 = require("./use-cases/delete-data-destination.service");
54
+ const delete_data_mart_service_1 = require("./use-cases/delete-data-mart.service");
55
+ const data_destination_entity_1 = require("./entities/data-destination.entity");
56
+ const report_entity_1 = require("./entities/report.entity");
57
+ const connector_controller_1 = require("./controllers/connector.controller");
58
+ const available_connector_service_1 = require("./use-cases/connector/available-connector.service");
59
+ const connector_service_1 = require("./services/connector.service");
60
+ const connector_execution_service_1 = require("./services/connector-execution.service");
61
+ const connector_mapper_1 = require("./mappers/connector.mapper");
62
+ const specification_connector_service_1 = require("./use-cases/connector/specification-connector.service");
63
+ const fields_connector_service_1 = require("./use-cases/connector/fields-connector.service");
64
+ const run_data_mart_service_1 = require("./use-cases/run-data-mart.service");
65
+ let DataMartsModule = class DataMartsModule {
66
+ };
67
+ exports.DataMartsModule = DataMartsModule;
68
+ exports.DataMartsModule = DataMartsModule = __decorate([
69
+ (0, common_1.Module)({
70
+ imports: [
71
+ typeorm_1.TypeOrmModule.forFeature([data_mart_entity_1.DataMart, data_storage_entity_1.DataStorage, data_destination_entity_1.DataDestination, report_entity_1.Report, data_mart_run_entity_1.DataMartRun]),
72
+ ],
73
+ controllers: [
74
+ data_mart_controller_1.DataMartController,
75
+ data_storage_controller_1.DataStorageController,
76
+ data_destination_controller_1.DataDestinationController,
77
+ report_controller_1.ReportController,
78
+ connector_controller_1.ConnectorController,
79
+ ],
80
+ providers: [
81
+ ...data_storage_providers_1.dataStorageResolverProviders,
82
+ ...data_storage_facades_1.dataStorageFacadesProviders,
83
+ ...data_destination_providers_1.dataDestinationResolverProviders,
84
+ ...data_destination_facades_1.dataDestinationFacadesProviders,
85
+ data_mart_service_1.DataMartService,
86
+ create_data_mart_service_1.CreateDataMartService,
87
+ list_data_marts_service_1.ListDataMartsService,
88
+ get_data_mart_service_1.GetDataMartService,
89
+ update_data_mart_definition_service_1.UpdateDataMartDefinitionService,
90
+ publish_data_mart_service_1.PublishDataMartService,
91
+ update_data_mart_description_service_1.UpdateDataMartDescriptionService,
92
+ update_data_mart_title_service_1.UpdateDataMartTitleService,
93
+ data_mart_mapper_1.DataMartMapper,
94
+ data_storage_service_1.DataStorageService,
95
+ data_storage_mapper_1.DataStorageMapper,
96
+ data_destination_service_1.DataDestinationService,
97
+ data_destination_mapper_1.DataDestinationMapper,
98
+ list_data_storages_service_1.ListDataStoragesService,
99
+ list_data_destinations_service_1.ListDataDestinationsService,
100
+ delete_data_storage_service_1.DeleteDataStorageService,
101
+ delete_data_destination_service_1.DeleteDataDestinationService,
102
+ delete_data_mart_service_1.DeleteDataMartService,
103
+ get_data_storage_service_1.GetDataStorageService,
104
+ get_data_destination_service_1.GetDataDestinationService,
105
+ create_data_storage_service_1.CreateDataStorageService,
106
+ create_data_destination_service_1.CreateDataDestinationService,
107
+ update_data_storage_service_1.UpdateDataStorageService,
108
+ update_data_destination_service_1.UpdateDataDestinationService,
109
+ report_mapper_1.ReportMapper,
110
+ create_report_service_1.CreateReportService,
111
+ get_report_service_1.GetReportService,
112
+ list_reports_by_data_mart_service_1.ListReportsByDataMartService,
113
+ list_reports_by_project_service_1.ListReportsByProjectService,
114
+ delete_report_service_1.DeleteReportService,
115
+ run_report_service_1.RunReportService,
116
+ update_report_service_1.UpdateReportService,
117
+ available_connector_service_1.AvailableConnectorService,
118
+ connector_service_1.ConnectorService,
119
+ connector_execution_service_1.ConnectorExecutionService,
120
+ connector_mapper_1.ConnectorMapper,
121
+ specification_connector_service_1.SpecificationConnectorService,
122
+ fields_connector_service_1.FieldsConnectorService,
123
+ run_data_mart_service_1.RunDataMartService,
124
+ ],
125
+ })
126
+ ], DataMartsModule);
127
+ //# sourceMappingURL=data-marts.module.js.map
@@ -6,19 +6,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.BigQueryTitleGenerator = void 0;
9
+ exports.AthenaApiAdapterFactory = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
- const data_storage_type_enum_1 = require("../../enums/data-storage-type.enum");
12
- const bigquery_config_schema_1 = require("../schemas/bigquery-config.schema");
13
- let BigQueryTitleGenerator = class BigQueryTitleGenerator {
14
- type = data_storage_type_enum_1.DataStorageType.GOOGLE_BIGQUERY;
15
- generateTitle(config) {
16
- const parsed = bigquery_config_schema_1.BigQueryConfigSchema.parse(config);
17
- return `${parsed.projectId} / ${parsed.location}`;
11
+ const athena_api_adapter_1 = require("./athena-api.adapter");
12
+ let AthenaApiAdapterFactory = class AthenaApiAdapterFactory {
13
+ create(credentials, config) {
14
+ return new athena_api_adapter_1.AthenaApiAdapter(credentials, config);
18
15
  }
19
16
  };
20
- exports.BigQueryTitleGenerator = BigQueryTitleGenerator;
21
- exports.BigQueryTitleGenerator = BigQueryTitleGenerator = __decorate([
17
+ exports.AthenaApiAdapterFactory = AthenaApiAdapterFactory;
18
+ exports.AthenaApiAdapterFactory = AthenaApiAdapterFactory = __decorate([
22
19
  (0, common_1.Injectable)()
23
- ], BigQueryTitleGenerator);
24
- //# sourceMappingURL=bigquery-title.generator.js.map
20
+ ], AthenaApiAdapterFactory);
21
+ //# sourceMappingURL=athena-api-adapter.factory.js.map