@researchdatabox/redbox-core 0.0.1-beta.9604 → 0.0.1-beta.9873

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 (140) hide show
  1. package/dist/HarvestRunService.d.ts +49 -0
  2. package/dist/HarvestRunService.d.ts.map +1 -0
  3. package/dist/HarvestRunService.js +13 -0
  4. package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
  5. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
  6. package/dist/api-routes/groups/harvest-runs.js +79 -0
  7. package/dist/api-routes/groups/named-query.d.ts +8 -0
  8. package/dist/api-routes/groups/named-query.d.ts.map +1 -0
  9. package/dist/api-routes/groups/named-query.js +54 -0
  10. package/dist/api-routes/groups/records.d.ts.map +1 -1
  11. package/dist/api-routes/groups/records.js +6 -2
  12. package/dist/api-routes/groups/reports.d.ts +6 -0
  13. package/dist/api-routes/groups/reports.d.ts.map +1 -1
  14. package/dist/api-routes/groups/reports.js +45 -2
  15. package/dist/api-routes/groups/users.js +3 -3
  16. package/dist/api-routes/index.d.ts +2 -0
  17. package/dist/api-routes/index.d.ts.map +1 -1
  18. package/dist/api-routes/index.js +3 -1
  19. package/dist/api-routes/openapi.d.ts +0 -1
  20. package/dist/api-routes/openapi.d.ts.map +1 -1
  21. package/dist/api-routes/openapi.js +27 -8
  22. package/dist/api-routes/route-registry.d.ts.map +1 -1
  23. package/dist/api-routes/route-registry.js +5 -1
  24. package/dist/api-routes/route-resolution.d.ts.map +1 -1
  25. package/dist/api-routes/route-resolution.js +15 -1
  26. package/dist/api-routes/schemas/common.d.ts +1 -2
  27. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  28. package/dist/api-routes/schemas/common.js +10 -11
  29. package/dist/api-routes/schemas/responses.d.ts +6635 -1887
  30. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  31. package/dist/api-routes/schemas/responses.js +364 -269
  32. package/dist/api-routes/zod-openapi.d.ts +3 -0
  33. package/dist/api-routes/zod-openapi.d.ts.map +1 -0
  34. package/dist/api-routes/zod-openapi.js +8 -0
  35. package/dist/bootstrap.js +3 -3
  36. package/dist/config/auth.config.d.ts.map +1 -1
  37. package/dist/config/auth.config.js +8 -1
  38. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  39. package/dist/config/brandingConfigurationDefaults.config.js +4 -2
  40. package/dist/config/custom.config.d.ts +6 -0
  41. package/dist/config/custom.config.d.ts.map +1 -1
  42. package/dist/config/custom.config.js +10 -1
  43. package/dist/config/harvestRuns.config.d.ts +9 -0
  44. package/dist/config/harvestRuns.config.d.ts.map +1 -0
  45. package/dist/config/harvestRuns.config.js +11 -0
  46. package/dist/config/http.config.d.ts +1 -0
  47. package/dist/config/http.config.d.ts.map +1 -1
  48. package/dist/config/http.config.js +65 -3
  49. package/dist/config/index.d.ts +4 -3
  50. package/dist/config/index.d.ts.map +1 -1
  51. package/dist/config/index.js +4 -3
  52. package/dist/config/namedQuery.config.d.ts +16 -2
  53. package/dist/config/namedQuery.config.d.ts.map +1 -1
  54. package/dist/config/namedQuery.config.js +7 -350
  55. package/dist/config/report.config.d.ts +2 -11
  56. package/dist/config/report.config.d.ts.map +1 -1
  57. package/dist/config/report.config.js +3 -49
  58. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  59. package/dist/config/reusableContributorFormDefinitions.config.js +84 -23
  60. package/dist/config/routes.config.d.ts.map +1 -1
  61. package/dist/config/routes.config.js +19 -1
  62. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  63. package/dist/configmodels/AdminSidebarConfig.js +2 -1
  64. package/dist/controllers/AdminController.d.ts +1 -0
  65. package/dist/controllers/AdminController.d.ts.map +1 -1
  66. package/dist/controllers/AdminController.js +5 -1
  67. package/dist/controllers/NamedQueryController.d.ts +8 -0
  68. package/dist/controllers/NamedQueryController.d.ts.map +1 -0
  69. package/dist/controllers/NamedQueryController.js +17 -0
  70. package/dist/controllers/ReportController.d.ts +7 -0
  71. package/dist/controllers/ReportController.d.ts.map +1 -1
  72. package/dist/controllers/ReportController.js +75 -2
  73. package/dist/controllers/ReportsController.d.ts +1 -0
  74. package/dist/controllers/ReportsController.d.ts.map +1 -1
  75. package/dist/controllers/ReportsController.js +12 -2
  76. package/dist/controllers/index.d.ts.map +1 -1
  77. package/dist/controllers/index.js +10 -1
  78. package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
  79. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
  80. package/dist/controllers/webservice/HarvestRunController.js +148 -0
  81. package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
  82. package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
  83. package/dist/controllers/webservice/NamedQueryController.js +127 -0
  84. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  85. package/dist/controllers/webservice/RecordController.js +30 -74
  86. package/dist/controllers/webservice/ReportController.d.ts +7 -0
  87. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  88. package/dist/controllers/webservice/ReportController.js +111 -3
  89. package/dist/form-config/dataRecord-1.0-draft.js +3 -3
  90. package/dist/form-config/default-1.0-draft.js +2 -2
  91. package/dist/index.d.ts +2 -0
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +2 -1
  94. package/dist/model/config/ReportConfig.d.ts +1 -1
  95. package/dist/model/config/ReportConfig.d.ts.map +1 -1
  96. package/dist/model/config/ReportConfig.js +2 -2
  97. package/dist/model/storage/HarvestRunModel.d.ts +140 -0
  98. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
  99. package/dist/model/storage/HarvestRunModel.js +110 -0
  100. package/dist/model/storage/ReportModel.d.ts +1 -0
  101. package/dist/model/storage/ReportModel.d.ts.map +1 -1
  102. package/dist/model/storage/index.d.ts +1 -0
  103. package/dist/model/storage/index.d.ts.map +1 -1
  104. package/dist/model/storage/index.js +10 -2
  105. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  106. package/dist/services/DashboardConfigService.js +8 -2
  107. package/dist/services/HarvestRunService.d.ts +73 -0
  108. package/dist/services/HarvestRunService.d.ts.map +1 -0
  109. package/dist/services/HarvestRunService.js +1317 -0
  110. package/dist/services/NamedQueryService.d.ts +25 -4
  111. package/dist/services/NamedQueryService.d.ts.map +1 -1
  112. package/dist/services/NamedQueryService.js +444 -115
  113. package/dist/services/ReportsService.d.ts +57 -1
  114. package/dist/services/ReportsService.d.ts.map +1 -1
  115. package/dist/services/ReportsService.js +252 -34
  116. package/dist/services/index.d.ts +3 -0
  117. package/dist/services/index.d.ts.map +1 -1
  118. package/dist/services/index.js +7 -2
  119. package/dist/visitor/client.visitor.d.ts.map +1 -1
  120. package/dist/visitor/client.visitor.js +11 -1
  121. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  122. package/dist/visitor/construct.visitor.js +22 -4
  123. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  124. package/dist/visitor/migrate-config-v4-v5.visitor.js +9 -3
  125. package/dist/visitor/template.visitor.d.ts +1 -1
  126. package/dist/visitor/template.visitor.d.ts.map +1 -1
  127. package/dist/visitor/template.visitor.js +8 -2
  128. package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
  129. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
  130. package/dist/waterline-models/HarvestRecordEvent.js +107 -0
  131. package/dist/waterline-models/HarvestRun.d.ts +51 -0
  132. package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
  133. package/dist/waterline-models/HarvestRun.js +125 -0
  134. package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
  135. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
  136. package/dist/waterline-models/HarvestRunChunk.js +140 -0
  137. package/dist/waterline-models/index.d.ts +6 -0
  138. package/dist/waterline-models/index.d.ts.map +1 -1
  139. package/dist/waterline-models/index.js +10 -1
  140. package/package.json +29 -29
@@ -6,6 +6,7 @@ import { SearchService } from '../SearchService';
6
6
  import { Services as services } from '../CoreService';
7
7
  import { BrandingModel } from '../model/storage/BrandingModel';
8
8
  import { ReportDto, TemplateCompileInput } from '@researchdatabox/sails-ng-common';
9
+ import * as fs from 'node:fs/promises';
9
10
  type ReportColumnLike = {
10
11
  label: string;
11
12
  property: string;
@@ -24,6 +25,43 @@ type SolrSearchResponse = {
24
25
  docs: Array<Record<string, unknown>>;
25
26
  };
26
27
  };
28
+ type ReportConfigFilterDto = {
29
+ type: string;
30
+ paramName: string;
31
+ message: string;
32
+ property: string;
33
+ database?: {
34
+ fromProperty: string;
35
+ toProperty: string;
36
+ } | null;
37
+ };
38
+ type ReportConfigColumnDto = {
39
+ label: string;
40
+ property: string;
41
+ hide?: boolean;
42
+ exportTemplate?: string;
43
+ template?: string;
44
+ multivalue?: boolean;
45
+ };
46
+ export type ReportConfigDto = {
47
+ name: string;
48
+ title: string;
49
+ reportSource: 'database' | 'solr';
50
+ databaseQuery: {
51
+ queryName: string;
52
+ } | null;
53
+ solrQuery: {
54
+ baseQuery: string;
55
+ searchCore: string;
56
+ } | null;
57
+ filter: ReportConfigFilterDto[];
58
+ columns: ReportConfigColumnDto[];
59
+ readOnly: boolean;
60
+ readOnlyReason?: string;
61
+ canEdit: boolean;
62
+ canDelete: boolean;
63
+ canPreview: boolean;
64
+ };
27
65
  export declare namespace Services {
28
66
  /**
29
67
  * Reporting related functions...
@@ -37,10 +75,23 @@ export declare namespace Services {
37
75
  private helpersRegistered;
38
76
  protected _exportedMethods: string[];
39
77
  private getReportModel;
40
- bootstrap: (defBrand: BrandingModel) => Observable<ReportModel> | Observable<Observable<ReportModel>>;
78
+ bootstrapData(defBrand: BrandingModel): Promise<void>;
79
+ private getBootstrapDataPath;
80
+ protected getBootstrapFileOps(): Pick<typeof fs, 'readdir' | 'readFile'>;
81
+ private readJsonFile;
41
82
  findAllReportsForBrand(brand: BrandingModel): Observable<ReportModel[]>;
42
83
  get(brand: BrandingModel, name: string): Promise<import("../waterline-models/RBReport").ReportAttributes>;
43
84
  create(brand: BrandingModel, name: string, config: ReportConfig): Observable<ReportModel>;
85
+ listConfigs(brand: BrandingModel): Promise<ReportConfigDto[]>;
86
+ getConfig(brand: BrandingModel, name: string): Promise<ReportConfigDto | null>;
87
+ createConfig(brand: BrandingModel, config: ReportConfigDto): Promise<ReportConfigDto>;
88
+ updateConfig(brand: BrandingModel, name: string, config: ReportConfigDto): Promise<ReportConfigDto>;
89
+ deleteConfig(brand: BrandingModel, name: string): Promise<{
90
+ deleted: boolean;
91
+ }>;
92
+ previewConfig(brand: BrandingModel, config: ReportConfigDto, req: Sails.ReqParamProvider): Promise<ReportResult>;
93
+ private validateMutableConfig;
94
+ private normalizeReportConfigDto;
44
95
  private buildSolrParams;
45
96
  getResults(brand: BrandingModel, name: string | undefined, req: Sails.ReqParamProvider, start?: number, rows?: number): Promise<ReportResult>;
46
97
  getTranslateDatabaseResultToReportResult(dbResult: ListAPIResponse<Record<string, unknown>>, _report: ReportConfig): ReportResult;
@@ -90,6 +141,11 @@ export declare namespace Services {
90
141
  protected getQueryValue(report: ReportConfig): string;
91
142
  protected addPaginationParams(params: string, start: number | undefined, rows: number): string;
92
143
  getReportDto(reportModel: ReportModel): ReportDto;
144
+ getReportConfigDto(reportModel: ReportModel): ReportConfigDto;
145
+ }
146
+ class ReportConfigServiceError extends Error {
147
+ status: number;
148
+ constructor(status: number, message: string);
93
149
  }
94
150
  }
95
151
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsService.d.ts","sourceRoot":"","sources":["../../src/services/ReportsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReportsService.d.ts","sourceRoot":"","sources":["../../src/services/ReportsService.ts"],"names":[],"mappings":"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"}
@@ -17,18 +17,53 @@
17
17
  // You should have received a copy of the GNU General Public License along
18
18
  // with this program; if not, write to the Free Software Foundation, Inc.,
19
19
  // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
20
53
  var __importDefault = (this && this.__importDefault) || function (mod) {
21
54
  return (mod && mod.__esModule) ? mod : { "default": mod };
22
55
  };
23
56
  Object.defineProperty(exports, "__esModule", { value: true });
24
57
  exports.Services = void 0;
25
58
  const rxjs_1 = require("rxjs");
26
- const operators_1 = require("rxjs/operators");
27
59
  const ReportConfig_1 = require("../model/config/ReportConfig");
28
60
  const CoreService_1 = require("../CoreService");
29
61
  const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
30
62
  const sync_1 = require("csv-stringify/sync");
31
63
  const handlebars_1 = __importDefault(require("handlebars"));
64
+ const fs = __importStar(require("node:fs/promises"));
65
+ const path = __importStar(require("node:path"));
66
+ const DEFAULT_BOOTSTRAP_DATA_PATH = 'bootstrap-data';
32
67
  var Services;
33
68
  (function (Services) {
34
69
  /**
@@ -44,13 +79,19 @@ var Services;
44
79
  // Flag to track if helpers are registered
45
80
  helpersRegistered = false;
46
81
  _exportedMethods = [
47
- 'bootstrap',
82
+ 'bootstrapData',
48
83
  'create',
49
84
  'findAllReportsForBrand',
50
85
  'get',
51
86
  'getResults',
52
87
  'getCSVResult',
53
88
  'getReportDto',
89
+ 'listConfigs',
90
+ 'getConfig',
91
+ 'createConfig',
92
+ 'updateConfig',
93
+ 'deleteConfig',
94
+ 'previewConfig',
54
95
  'extractReportTemplates',
55
96
  //exported only for unit testing
56
97
  'getDataRows',
@@ -59,38 +100,68 @@ var Services;
59
100
  getReportModel() {
60
101
  return RBReport;
61
102
  }
62
- bootstrap = (defBrand) => {
63
- let reportModel;
103
+ async bootstrapData(defBrand) {
104
+ const bootstrapPath = this.getBootstrapDataPath();
105
+ let fileNames = [];
106
+ const fileOps = this.getBootstrapFileOps();
64
107
  try {
65
- reportModel = this.getReportModel();
108
+ const fileEntries = await fileOps.readdir(bootstrapPath, { withFileTypes: true });
109
+ fileNames = fileEntries
110
+ .filter((entry) => entry.isFile() && entry.name.endsWith('.json'))
111
+ .map((entry) => entry.name)
112
+ .sort((a, b) => a.localeCompare(b));
66
113
  }
67
- catch (_error) {
68
- sails.log.warn(`${this.logHeader} bootstrap() -> Report model unavailable, skipping report bootstrap.`);
69
- return (0, rxjs_1.of)({});
114
+ catch (error) {
115
+ const ioError = error;
116
+ if (ioError.code === 'ENOENT') {
117
+ sails.log.verbose(`Report bootstrap data path not found: ${bootstrapPath}`);
118
+ return;
119
+ }
120
+ sails.log.error(`Failed to read report bootstrap data path: ${bootstrapPath}`, error);
121
+ return;
70
122
  }
71
- return super.getObservable(reportModel.find({
72
- branding: defBrand.id
73
- })).pipe((0, operators_1.mergeMap)(reports => {
74
- if (_.isEmpty(reports)) {
75
- const rTypes = [];
76
- sails.log.verbose("Bootstrapping report definitions... ");
77
- _.forOwn(sails.config.reports, (config, report) => {
78
- const obs = this.create(defBrand, report, config);
79
- obs.subscribe(() => { });
80
- rTypes.push(obs);
81
- });
82
- return (0, rxjs_1.from)(rTypes);
123
+ for (const fileName of fileNames) {
124
+ try {
125
+ const filePath = path.join(bootstrapPath, fileName);
126
+ const definition = await this.readJsonFile(filePath);
127
+ if (!definition) {
128
+ continue;
129
+ }
130
+ const name = fileName.replace(/\.json$/, '');
131
+ if (!name || typeof definition.title !== 'string' || definition.title.length === 0) {
132
+ sails.log.error(`Skipping report bootstrap file with missing name or title: ${fileName}`);
133
+ continue;
134
+ }
135
+ const existing = await this.getReportModel().findOne({ key: `${defBrand.id}_${name}` });
136
+ if (existing) {
137
+ sails.log.verbose(`Skipping existing report bootstrap data: ${name}`);
138
+ continue;
139
+ }
140
+ await (0, rxjs_1.firstValueFrom)(this.create(defBrand, name, definition));
141
+ sails.log.verbose(`Bootstrapped report: ${name}`);
83
142
  }
84
- else {
85
- const rTypes = [];
86
- _.each(reports, function (report) {
87
- rTypes.push((0, rxjs_1.of)(report));
88
- });
89
- sails.log.verbose("Default reports definition(s) exist.");
90
- return (0, rxjs_1.from)(rTypes);
143
+ catch (error) {
144
+ sails.log.error(`Failed to bootstrap report from file: ${fileName}`, error);
91
145
  }
92
- }), (0, operators_1.last)());
93
- };
146
+ }
147
+ }
148
+ getBootstrapDataPath() {
149
+ const configuredPath = _.get(sails.config, 'bootstrap.bootstrapDataPath', DEFAULT_BOOTSTRAP_DATA_PATH);
150
+ return path.resolve(String(configuredPath), 'reports');
151
+ }
152
+ getBootstrapFileOps() {
153
+ return fs;
154
+ }
155
+ async readJsonFile(filePath) {
156
+ try {
157
+ const content = await this.getBootstrapFileOps().readFile(filePath, 'utf8');
158
+ return JSON.parse(content);
159
+ }
160
+ catch (error) {
161
+ sails.log.error(`Failed to read report bootstrap file: ${path.basename(filePath)}`, error);
162
+ return null;
163
+ }
164
+ }
94
165
  findAllReportsForBrand(brand) {
95
166
  const reportModel = this.getReportModel();
96
167
  return super.getObservable(reportModel.find({
@@ -116,6 +187,133 @@ var Services;
116
187
  columns: config.columns
117
188
  }));
118
189
  }
190
+ async listConfigs(brand) {
191
+ const reports = await (0, rxjs_1.firstValueFrom)(this.findAllReportsForBrand(brand));
192
+ return reports.map(report => this.getReportConfigDto(report));
193
+ }
194
+ async getConfig(brand, name) {
195
+ const report = await this.get(brand, name);
196
+ return report ? this.getReportConfigDto(report) : null;
197
+ }
198
+ async createConfig(brand, config) {
199
+ const { dto: normalized } = await this.validateMutableConfig(brand, config, false);
200
+ const existing = await this.get(brand, normalized.name);
201
+ if (existing) {
202
+ throw new ReportConfigServiceError(409, `Report '${normalized.name}' already exists`);
203
+ }
204
+ const created = await (0, rxjs_1.firstValueFrom)(this.create(brand, normalized.name, normalized));
205
+ return this.getReportConfigDto(created);
206
+ }
207
+ async updateConfig(brand, name, config) {
208
+ const existing = await this.get(brand, name);
209
+ if (!existing) {
210
+ throw new ReportConfigServiceError(404, `Report '${name}' not found`);
211
+ }
212
+ if (this.getReportConfigDto(existing).readOnly) {
213
+ throw new ReportConfigServiceError(403, 'Solr reports cannot be modified');
214
+ }
215
+ const { dto: normalized } = await this.validateMutableConfig(brand, { ...config, name }, true);
216
+ if (config.name && config.name !== name) {
217
+ throw new ReportConfigServiceError(400, 'Report name cannot be changed');
218
+ }
219
+ const reportModel = this.getReportModel();
220
+ const updated = await reportModel.updateOne({ key: `${brand.id}_${name}` }).set({
221
+ title: normalized.title,
222
+ reportSource: normalized.reportSource,
223
+ databaseQuery: normalized.databaseQuery,
224
+ solrQuery: normalized.solrQuery,
225
+ filter: normalized.filter,
226
+ columns: normalized.columns
227
+ });
228
+ if (!updated) {
229
+ throw new ReportConfigServiceError(404, `Report '${name}' not found`);
230
+ }
231
+ return this.getReportConfigDto(updated);
232
+ }
233
+ async deleteConfig(brand, name) {
234
+ const existing = await this.get(brand, name);
235
+ if (!existing) {
236
+ throw new ReportConfigServiceError(404, `Report '${name}' not found`);
237
+ }
238
+ if (this.getReportConfigDto(existing).readOnly) {
239
+ throw new ReportConfigServiceError(403, 'Solr reports cannot be deleted');
240
+ }
241
+ await this.getReportModel().destroyOne({ key: `${brand.id}_${name}` });
242
+ return { deleted: true };
243
+ }
244
+ async previewConfig(brand, config, req) {
245
+ const { dto: normalized, namedQuery } = await this.validateMutableConfig(brand, config, false);
246
+ const paramMap = this.buildNamedQueryParamMap(req, normalized);
247
+ const dbResult = await NamedQueryService.performNamedQueryFromConfig(namedQuery, paramMap, brand, 0, 100);
248
+ const response = this.getTranslateDatabaseResultToReportResult(dbResult, normalized);
249
+ response.success = true;
250
+ return response;
251
+ }
252
+ async validateMutableConfig(brand, config, isUpdate) {
253
+ const normalized = this.normalizeReportConfigDto(config);
254
+ if (_.isEmpty(normalized.name) || !/^[A-Za-z0-9_-]+$/.test(normalized.name)) {
255
+ throw new ReportConfigServiceError(400, 'Report name is required and must be URL safe');
256
+ }
257
+ if (_.isEmpty(normalized.title)) {
258
+ throw new ReportConfigServiceError(400, 'Report title is required');
259
+ }
260
+ if (normalized.reportSource !== ReportConfig_1.ReportSource.database) {
261
+ throw new ReportConfigServiceError(403, 'Only database reports can be changed');
262
+ }
263
+ if (!normalized.databaseQuery || _.isEmpty(normalized.databaseQuery.queryName)) {
264
+ throw new ReportConfigServiceError(400, 'Named query is required');
265
+ }
266
+ const namedQuery = await NamedQueryService.getNamedQueryConfig(brand, normalized.databaseQuery.queryName);
267
+ if (!namedQuery) {
268
+ throw new ReportConfigServiceError(400, `Named query '${normalized.databaseQuery.queryName}' not found`);
269
+ }
270
+ for (const column of normalized.columns) {
271
+ if (_.isEmpty(column.label) || _.isEmpty(column.property)) {
272
+ throw new ReportConfigServiceError(400, 'Report columns require label and property');
273
+ }
274
+ }
275
+ for (const filter of normalized.filter) {
276
+ if (filter.type === ReportConfig_1.ReportFilterType.dateRange && (!filter.database?.fromProperty || !filter.database?.toProperty)) {
277
+ throw new ReportConfigServiceError(400, 'Database date-range filters require fromProperty and toProperty');
278
+ }
279
+ }
280
+ if (!isUpdate && _.isEmpty(normalized.columns)) {
281
+ normalized.columns = [];
282
+ }
283
+ return { dto: normalized, namedQuery };
284
+ }
285
+ normalizeReportConfigDto(config) {
286
+ const source = config.reportSource ?? ReportConfig_1.ReportSource.database;
287
+ const filter = (config.filter ?? []).map((item) => ({
288
+ paramName: item.paramName ?? '',
289
+ type: item.type ?? ReportConfig_1.ReportFilterType.text,
290
+ property: item.property ?? '',
291
+ message: item.message ?? item.messsage ?? '',
292
+ database: item.database ?? null
293
+ }));
294
+ const columns = (config.columns ?? []).map((column) => ({
295
+ label: column.label ?? '',
296
+ property: column.property ?? '',
297
+ hide: column.hide ?? false,
298
+ exportTemplate: column.exportTemplate ?? '',
299
+ template: column.template ?? '',
300
+ multivalue: column.multivalue ?? false
301
+ }));
302
+ return {
303
+ name: config.name ?? '',
304
+ title: config.title ?? '',
305
+ reportSource: source,
306
+ databaseQuery: config.databaseQuery ?? null,
307
+ solrQuery: config.solrQuery ?? null,
308
+ filter,
309
+ columns,
310
+ readOnly: source !== ReportConfig_1.ReportSource.database,
311
+ readOnlyReason: source !== ReportConfig_1.ReportSource.database ? 'Solr reports are read-only in this version' : undefined,
312
+ canEdit: source === ReportConfig_1.ReportSource.database,
313
+ canDelete: source === ReportConfig_1.ReportSource.database,
314
+ canPreview: source === ReportConfig_1.ReportSource.database
315
+ };
316
+ }
119
317
  buildSolrParams(brand, req, report, start, rows, format = 'json') {
120
318
  let params = this.getQueryValue(report);
121
319
  params = this.addPaginationParams(params, start, rows);
@@ -178,14 +376,13 @@ var Services;
178
376
  }
179
377
  getTranslateDatabaseResultToReportResult(dbResult, _report) {
180
378
  const totalItems = dbResult.summary.numFound;
181
- const startIndex = dbResult.summary.start;
182
379
  const pageNumber = dbResult.summary.page;
380
+ const docs = dbResult.records;
183
381
  const response = new ReportConfig_1.ReportResult();
184
382
  response.total = totalItems;
185
383
  response.pageNum = pageNumber;
186
- response.recordPerPage = startIndex;
384
+ response.recordsPerPage = docs.length;
187
385
  const items = [];
188
- const docs = dbResult.records;
189
386
  for (let i = 0; i < docs.length; i++) {
190
387
  const doc = docs[i];
191
388
  // TODO: filter out the results so we dont have to present all the metadata in the front end
@@ -224,7 +421,7 @@ var Services;
224
421
  const response = new ReportConfig_1.ReportResult();
225
422
  response.total = totalItems;
226
423
  response.pageNum = pageNumber;
227
- response.recordPerPage = _.toNumber(noItems);
424
+ response.recordsPerPage = _.toNumber(noItems);
228
425
  const items = [];
229
426
  const docs = results.response.docs;
230
427
  for (let i = 0; i < docs.length; i++) {
@@ -475,7 +672,28 @@ var Services;
475
672
  "solr_query": "solrQuery"
476
673
  }, true);
477
674
  }
675
+ getReportConfigDto(reportModel) {
676
+ const converted = this.convertLegacyReport(reportModel);
677
+ const reportSource = converted.reportSource === ReportConfig_1.ReportSource.database ? ReportConfig_1.ReportSource.database : ReportConfig_1.ReportSource.solr;
678
+ return this.normalizeReportConfigDto({
679
+ name: converted.name,
680
+ title: converted.title,
681
+ reportSource,
682
+ databaseQuery: converted.databaseQuery,
683
+ solrQuery: converted.solrQuery,
684
+ filter: converted.filter,
685
+ columns: converted.columns
686
+ });
687
+ }
478
688
  }
479
689
  Services.Reports = Reports;
690
+ class ReportConfigServiceError extends Error {
691
+ status;
692
+ constructor(status, message) {
693
+ super(message);
694
+ this.status = status;
695
+ }
696
+ }
697
+ Services.ReportConfigServiceError = ReportConfigServiceError;
480
698
  })(Services || (exports.Services = Services = {}));
481
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0c1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVwb3J0c1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBGQUEwRjtBQUMxRixFQUFFO0FBQ0YsNkJBQTZCO0FBQzdCLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsdUVBQXVFO0FBQ3ZFLHVFQUF1RTtBQUN2RSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBQ3RDLEVBQUU7QUFDRixrRUFBa0U7QUFDbEUsaUVBQWlFO0FBQ2pFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsOERBQThEOzs7Ozs7QUFFOUQsK0JBQTREO0FBQzVELDhDQUEyRDtBQUUzRCwrREFBMEc7QUFLMUcsZ0RBQXNEO0FBRXRELHNFQUFvSDtBQUNwSCw2Q0FBK0M7QUFDL0MsNERBQW9DO0FBNkJwQyxJQUFpQixRQUFRLENBcWZ4QjtBQXJmRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxPQUFRLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUVoRCxhQUFhLENBQWlCO1FBQzlCLHFFQUFxRTtRQUM3RCxpQkFBaUIsR0FBNEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvRSwwQ0FBMEM7UUFDbEMsaUJBQWlCLEdBQVksS0FBSyxDQUFDO1FBRXhCLGdCQUFnQixHQUFhO1lBQzlDLFdBQVc7WUFDWCxRQUFRO1lBQ1Isd0JBQXdCO1lBQ3hCLEtBQUs7WUFDTCxZQUFZO1lBQ1osY0FBYztZQUNkLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsZ0NBQWdDO1lBQ2hDLGFBQWE7WUFDYixpQkFBaUI7U0FDbEIsQ0FBQztRQUVNLGNBQWM7WUFDcEIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVNLFNBQVMsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtZQUM3QyxJQUFJ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
699
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0c1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVwb3J0c1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBGQUEwRjtBQUMxRixFQUFFO0FBQ0YsNkJBQTZCO0FBQzdCLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsdUVBQXVFO0FBQ3ZFLHVFQUF1RTtBQUN2RSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBQ3RDLEVBQUU7QUFDRixrRUFBa0U7QUFDbEUsaUVBQWlFO0FBQ2pFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsOERBQThEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOUQsK0JBQWtEO0FBRWxELCtEQUEwRztBQU0xRyxnREFBc0Q7QUFFdEQsc0VBQW9IO0FBQ3BILDZDQUErQztBQUMvQyw0REFBb0M7QUFDcEMscURBQXVDO0FBQ3ZDLGdEQUFrQztBQUVsQyxNQUFNLDJCQUEyQixHQUFHLGdCQUFnQixDQUFDO0FBNkRyRCxJQUFpQixRQUFRLENBMnJCeEI7QUEzckJELFdBQWlCLFFBQVE7SUFDdkI7Ozs7O09BS0c7SUFDSCxNQUFhLE9BQVEsU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBRWhELGFBQWEsQ0FBaUI7UUFDOUIscUVBQXFFO1FBQzdELGlCQUFpQixHQUE0QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQy9FLDBDQUEwQztRQUNsQyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFeEIsZ0JBQWdCLEdBQWE7WUFDOUMsZUFBZTtZQUNmLFFBQVE7WUFDUix3QkFBd0I7WUFDeEIsS0FBSztZQUNMLFlBQVk7WUFDWixjQUFjO1lBQ2QsY0FBYztZQUNkLGFBQWE7WUFDYixXQUFXO1lBQ1gsY0FBYztZQUNkLGNBQWM7WUFDZCxjQUFjO1lBQ2QsZUFBZTtZQUNm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
@@ -21,6 +21,7 @@ import * as FormVocabularyServiceModule from './FormVocabularyService';
21
21
  import * as FormRecordConsistencyServiceModule from './FormRecordConsistencyService';
22
22
  import * as FormPayloadPrehydrateServiceModule from './FormPayloadPrehydrateService';
23
23
  import * as FormsServiceModule from './FormsService';
24
+ import * as HarvestRunServiceModule from './HarvestRunService';
24
25
  import * as IntegrationAuditServiceModule from './IntegrationAuditService';
25
26
  import * as I18nEntriesServiceModule from './I18nEntriesService';
26
27
  import * as NamedQueryServiceModule from './NamedQueryService';
@@ -69,6 +70,7 @@ export { FormVocabularyServiceModule as FormVocabularyService };
69
70
  export { FormRecordConsistencyServiceModule as FormRecordConsistencyService };
70
71
  export { FormPayloadPrehydrateServiceModule as FormPayloadPrehydrateService };
71
72
  export { FormsServiceModule as FormsService };
73
+ export { HarvestRunServiceModule as HarvestRunService };
72
74
  export { IntegrationAuditServiceModule as IntegrationAuditService };
73
75
  export { I18nEntriesServiceModule as I18nEntriesService };
74
76
  export { NamedQueryServiceModule as NamedQueryService };
@@ -119,6 +121,7 @@ export declare const ServiceExports: {
119
121
  readonly FormRecordConsistencyService: unknown;
120
122
  readonly FormPayloadPrehydrateService: unknown;
121
123
  readonly FormsService: unknown;
124
+ readonly HarvestRunService: unknown;
122
125
  readonly I18nEntriesService: unknown;
123
126
  readonly NamedQueryService: unknown;
124
127
  readonly NavigationService: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}