@kineticdata/react
Version:
A React library for the Kinetic Platform
143 lines (142 loc) • 4.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BridgeModelQualificationForm = void 0;
var _Form = require("../../form/Form");
var _apis = require("../../../apis");
var dataSources = function dataSources(_ref) {
var modelName = _ref.modelName,
qualificationName = _ref.qualificationName;
return {
bridgeModel: {
fn: _apis.fetchBridgeModel,
params: [{
modelName: modelName
}],
transform: function transform(result) {
return result.bridgeModel;
}
},
bridgeModelQualification: {
fn: _apis.fetchBridgeModelQualification,
params: qualificationName && [{
modelName: modelName,
qualificationName: qualificationName
}],
transform: function transform(result) {
return result.bridgeModelQualification;
}
},
bridgeModelQualificationMapping: {
fn: _apis.fetchBridgeModelQualificationMapping,
params: function params(_ref2) {
var bridgeModel = _ref2.bridgeModel;
return qualificationName && bridgeModel && [{
modelName: modelName,
mappingName: bridgeModel.get('activeMappingName'),
qualificationName: qualificationName
}];
},
transform: function transform(result) {
return result.bridgeModelQualificationMapping;
}
}
};
};
var handleSubmit = function handleSubmit(_ref3) {
var modelName = _ref3.modelName,
qualificationName = _ref3.qualificationName;
return function (values, _ref4) {
var bridgeModel = _ref4.bridgeModel;
var mappingName = bridgeModel.get('activeMappingName');
var name = values.get('name');
var resultType = values.get('resultType');
var query = values.get('query');
return (qualificationName ? _apis.updateBridgeModelQualification : _apis.createBridgeModelQualification)({
modelName: modelName,
qualificationName: qualificationName,
bridgeModelQualification: {
name: name,
resultType: resultType
}
}).then(function (result) {
return result.error ? result : (qualificationName ? _apis.updateBridgeModelQualificationMapping : _apis.createBridgeModelQualificationMapping)({
modelName: modelName,
mappingName: mappingName,
qualificationName: name,
bridgeModelQualificationMapping: {
name: name,
query: query
}
}).then(function (result) {
if (result.error && !qualificationName) {
return (0, _apis.deleteBridgeModelQualification)({
modelName: modelName,
qualificationName: name
}).then(function () {
return {
error: result.error
};
});
}
return result;
});
}).then(function (_ref5) {
var bridgeModelQualificationMapping = _ref5.bridgeModelQualificationMapping,
error = _ref5.error;
if (error) {
throw error.statusCode === 400 && error.message || 'There was an error saving the qualification';
}
return bridgeModelQualificationMapping;
});
};
};
var fields = function fields(_ref6) {
var modelName = _ref6.modelName,
qualificationName = _ref6.qualificationName;
return function (_ref7) {
var bridgeModelQualification = _ref7.bridgeModelQualification,
bridgeModelQualificationMapping = _ref7.bridgeModelQualificationMapping;
return (!qualificationName || bridgeModelQualification && bridgeModelQualificationMapping) && [{
name: 'name',
label: 'Name',
type: 'text',
required: true,
initialValue: bridgeModelQualification ? bridgeModelQualification.get('name') : ''
}, {
name: 'resultType',
label: 'Result Type',
type: 'select',
required: true,
initialValue: bridgeModelQualification ? bridgeModelQualification.get('resultType') : '',
options: [{
label: 'Single',
value: 'Single'
}, {
label: 'Multiple',
value: 'Multiple'
}]
}, {
name: 'query',
label: 'Query',
type: 'code',
language: 'text',
required: false,
initialValue: bridgeModelQualificationMapping && bridgeModelQualificationMapping.get('query') || '',
options: [{
label: 'parameters',
type: 'function',
quoteType: 'double',
detail: 'Add Parameter'
}]
}];
};
};
var BridgeModelQualificationForm = exports.BridgeModelQualificationForm = (0, _Form.generateForm)({
formOptions: ['modelName', 'qualificationName'],
dataSources: dataSources,
fields: fields,
handleSubmit: handleSubmit
});
BridgeModelQualificationForm.displayName = 'BridgeModelQualificationForm';