@golemio/parkings
Version:
Golemio Parkings Module
29 lines • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataSourceIntegrationChecker = void 0;
const SourceEnum_1 = require("../../helpers/constants/SourceEnum");
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
class DataSourceIntegrationChecker {
constructor() {
this.disallowedDataSources = new Map([
[SourceEnum_1.SourceEnum.IPR, ["parking", "locations"]],
[SourceEnum_1.SourceEnum.Korid, ["parking", "locations", "tariffs"]],
[SourceEnum_1.SourceEnum.Mr_Parkit, ["parking", "locations", "prohibitions", "tariffs"]],
[SourceEnum_1.SourceEnum.OSM, ["parking", "locations", "parking_machines"]],
[SourceEnum_1.SourceEnum.Smart4City, ["parking", "locations"]],
[SourceEnum_1.SourceEnum.TSK, ["parking", "locations", "tariffs"]],
[SourceEnum_1.SourceEnum.TSK_V2, ["parking", "locations", "tariffs", "parking_machines"]],
[SourceEnum_1.SourceEnum.Manual, ["tariffs"]],
]);
}
checkAllowedDataSources(inputData) {
const sourceName = inputData.source;
const isDataSourceNull = (disallowed) => inputData[`datasource_${disallowed}`] == null;
const disallowedFields = this.disallowedDataSources.get(sourceName);
if (disallowedFields && !disallowedFields.every(isDataSourceNull)) {
throw new golemio_errors_1.ValidationError(`Disallowed datasource for ${sourceName}!`, "DatasourceIntegrationChecker");
}
}
}
exports.DataSourceIntegrationChecker = DataSourceIntegrationChecker;
//# sourceMappingURL=DataSourceIntegrationChecker.js.map