@researchdatabox/redbox-core 0.0.1-beta.9700 → 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.
- package/dist/HarvestRunService.d.ts +49 -0
- package/dist/HarvestRunService.d.ts.map +1 -0
- package/dist/HarvestRunService.js +13 -0
- package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
- package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
- package/dist/api-routes/groups/harvest-runs.js +79 -0
- package/dist/api-routes/groups/named-query.d.ts +8 -0
- package/dist/api-routes/groups/named-query.d.ts.map +1 -0
- package/dist/api-routes/groups/named-query.js +54 -0
- package/dist/api-routes/groups/records.d.ts.map +1 -1
- package/dist/api-routes/groups/records.js +6 -2
- package/dist/api-routes/groups/reports.d.ts +6 -0
- package/dist/api-routes/groups/reports.d.ts.map +1 -1
- package/dist/api-routes/groups/reports.js +45 -2
- package/dist/api-routes/groups/users.js +3 -3
- package/dist/api-routes/index.d.ts +2 -0
- package/dist/api-routes/index.d.ts.map +1 -1
- package/dist/api-routes/index.js +3 -1
- package/dist/api-routes/openapi.d.ts +0 -1
- package/dist/api-routes/openapi.d.ts.map +1 -1
- package/dist/api-routes/openapi.js +27 -8
- package/dist/api-routes/route-registry.d.ts.map +1 -1
- package/dist/api-routes/route-registry.js +5 -1
- package/dist/api-routes/route-resolution.d.ts.map +1 -1
- package/dist/api-routes/route-resolution.js +15 -1
- package/dist/api-routes/schemas/common.d.ts +1 -2
- package/dist/api-routes/schemas/common.d.ts.map +1 -1
- package/dist/api-routes/schemas/common.js +10 -11
- package/dist/api-routes/schemas/responses.d.ts +6635 -1887
- package/dist/api-routes/schemas/responses.d.ts.map +1 -1
- package/dist/api-routes/schemas/responses.js +364 -269
- package/dist/api-routes/zod-openapi.d.ts +3 -0
- package/dist/api-routes/zod-openapi.d.ts.map +1 -0
- package/dist/api-routes/zod-openapi.js +8 -0
- package/dist/bootstrap.js +3 -3
- package/dist/config/auth.config.d.ts.map +1 -1
- package/dist/config/auth.config.js +8 -1
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +4 -2
- package/dist/config/harvestRuns.config.d.ts +9 -0
- package/dist/config/harvestRuns.config.d.ts.map +1 -0
- package/dist/config/harvestRuns.config.js +11 -0
- package/dist/config/index.d.ts +4 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -3
- package/dist/config/namedQuery.config.d.ts +16 -2
- package/dist/config/namedQuery.config.d.ts.map +1 -1
- package/dist/config/namedQuery.config.js +7 -350
- package/dist/config/report.config.d.ts +2 -11
- package/dist/config/report.config.d.ts.map +1 -1
- package/dist/config/report.config.js +3 -49
- package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
- package/dist/config/reusableContributorFormDefinitions.config.js +10 -4
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +15 -1
- package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
- package/dist/configmodels/AdminSidebarConfig.js +2 -1
- package/dist/controllers/AdminController.d.ts +1 -0
- package/dist/controllers/AdminController.d.ts.map +1 -1
- package/dist/controllers/AdminController.js +5 -1
- package/dist/controllers/NamedQueryController.d.ts +8 -0
- package/dist/controllers/NamedQueryController.d.ts.map +1 -0
- package/dist/controllers/NamedQueryController.js +17 -0
- package/dist/controllers/ReportController.d.ts +7 -0
- package/dist/controllers/ReportController.d.ts.map +1 -1
- package/dist/controllers/ReportController.js +75 -2
- package/dist/controllers/ReportsController.d.ts +1 -0
- package/dist/controllers/ReportsController.d.ts.map +1 -1
- package/dist/controllers/ReportsController.js +12 -2
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +10 -1
- package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
- package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
- package/dist/controllers/webservice/HarvestRunController.js +148 -0
- package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
- package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
- package/dist/controllers/webservice/NamedQueryController.js +127 -0
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +30 -74
- package/dist/controllers/webservice/ReportController.d.ts +7 -0
- package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ReportController.js +111 -3
- package/dist/form-config/dataRecord-1.0-draft.js +3 -3
- package/dist/form-config/default-1.0-draft.js +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/model/config/ReportConfig.d.ts +1 -1
- package/dist/model/config/ReportConfig.d.ts.map +1 -1
- package/dist/model/config/ReportConfig.js +2 -2
- package/dist/model/storage/HarvestRunModel.d.ts +140 -0
- package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
- package/dist/model/storage/HarvestRunModel.js +110 -0
- package/dist/model/storage/ReportModel.d.ts +1 -0
- package/dist/model/storage/ReportModel.d.ts.map +1 -1
- package/dist/model/storage/index.d.ts +1 -0
- package/dist/model/storage/index.d.ts.map +1 -1
- package/dist/model/storage/index.js +10 -2
- package/dist/services/HarvestRunService.d.ts +73 -0
- package/dist/services/HarvestRunService.d.ts.map +1 -0
- package/dist/services/HarvestRunService.js +1317 -0
- package/dist/services/NamedQueryService.d.ts +25 -4
- package/dist/services/NamedQueryService.d.ts.map +1 -1
- package/dist/services/NamedQueryService.js +444 -115
- package/dist/services/ReportsService.d.ts +57 -1
- package/dist/services/ReportsService.d.ts.map +1 -1
- package/dist/services/ReportsService.js +252 -34
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +7 -2
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +8 -3
- package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
- package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRecordEvent.js +107 -0
- package/dist/waterline-models/HarvestRun.d.ts +51 -0
- package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRun.js +125 -0
- package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
- package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRunChunk.js +140 -0
- package/dist/waterline-models/index.d.ts +6 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +10 -1
- package/package.json +27 -27
|
@@ -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
|
-
|
|
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":"AAmBA,OAAO,EAAE,UAAU,
|
|
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
|
-
'
|
|
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
|
-
|
|
63
|
-
|
|
103
|
+
async bootstrapData(defBrand) {
|
|
104
|
+
const bootstrapPath = this.getBootstrapDataPath();
|
|
105
|
+
let fileNames = [];
|
|
106
|
+
const fileOps = this.getBootstrapFileOps();
|
|
64
107
|
try {
|
|
65
|
-
|
|
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 (
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
85
|
-
|
|
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
|
-
}
|
|
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.
|
|
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.
|
|
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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
|
package/dist/services/index.d.ts
CHANGED
|
@@ -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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"}
|