@natlibfi/melinda-record-match-validator
Version:
Validates if two records matched by melinda-record-matching can be merged and sets merge priority
67 lines (66 loc) • 2.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validatePriority = validatePriority;
var _debug = _interopRequireDefault(require("debug"));
var _validateUtils = require("./validateUtils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const debug = (0, _debug.default)('@natlibfi/melinda-record-match-validator:validateRecordCompareResults:validatePriority');
function validatePriority(comparedRecordValues) {
const wantedValues = ['A', 'B'];
const prioOrder = [{
name: 'recordCompletionLevel',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['000'].recordCompletionLevel, wantedValues)
}, {
name: 'isMelindaId',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['001'].isMelindaId, wantedValues)
}, {
name: 'isViolaOrFikka',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['042'], wantedValues)
}, {
name: 'commonIdentifiers',
value: (0, _validateUtils.isValidValue)(comparedRecordValues.commonIdentifiers.standardIdentifiers, wantedValues)
}, {
name: 'LOW',
value: (0, _validateUtils.isValidValue)(comparedRecordValues.LOW, wantedValues)
}, {
name: 'SID',
value: (0, _validateUtils.isValidValue)(comparedRecordValues.SID, wantedValues)
}, {
name: 'CAT',
value: (0, _validateUtils.isValidValue)(comparedRecordValues.CAT, wantedValues)
}, {
name: 'recordControlNumbers',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['773'].recordControlNumbers, wantedValues)
}, {
name: 'contentTypes',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['336'], wantedValues)
}, {
name: 'mediaTypes',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['337'], wantedValues)
}, {
name: 'carrierTypes',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['338'], wantedValues)
}, {
name: 'enumerationAndFirstPage',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['773'].enumerationAndFirstPage, wantedValues)
}, {
name: 'relatedParts',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['773'].relatedParts, wantedValues)
}, {
name: 'recentlyModified',
value: (0, _validateUtils.isValidValue)(comparedRecordValues['005'], wantedValues)
}, {
name: 'default',
value: true
}].filter(field => {
if (field.value) {
debug('Prio value: %o, index: %o', field.value, field.name);
return true;
}
return false;
});
return prioOrder[0];
}
//# sourceMappingURL=validatePriority.js.map