@kineticdata/react
Version:
A React library for the Kinetic Platform
105 lines (104 loc) • 3.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BridgeModelAttributeForm = void 0;
var _Form = require("../../form/Form");
var _apis = require("../../../apis");
var dataSources = function dataSources(_ref) {
var modelName = _ref.modelName,
attributeName = _ref.attributeName;
return {
bridgeModel: {
fn: _apis.fetchBridgeModel,
params: [{
modelName: modelName
}],
transform: function transform(result) {
return result.bridgeModel;
}
},
bridgeModelAttribute: {
fn: _apis.fetchBridgeModelAttributeMapping,
params: function params(_ref2) {
var bridgeModel = _ref2.bridgeModel;
return attributeName && bridgeModel && [{
modelName: modelName,
mappingName: bridgeModel.get('activeMappingName'),
attributeName: attributeName
}];
},
transform: function transform(result) {
return result.bridgeModelAttributeMapping;
}
}
};
};
var handleSubmit = function handleSubmit(_ref3) {
var modelName = _ref3.modelName,
attributeName = _ref3.attributeName;
return function (values, _ref4) {
var bridgeModel = _ref4.bridgeModel;
var mappingName = bridgeModel.get('activeMappingName');
var name = values.get('name');
var structureField = values.get('mapping');
return (attributeName ? _apis.updateBridgeModelAttribute : _apis.createBridgeModelAttribute)({
modelName: modelName,
attributeName: attributeName,
bridgeModelAttribute: {
name: name
}
}).then(function (result) {
return result.error ? result : (attributeName ? _apis.updateBridgeModelAttributeMapping : _apis.createBridgeModelAttributeMapping)({
modelName: modelName,
mappingName: mappingName,
attributeName: name,
bridgeModelAttributeMapping: {
name: name,
structureField: structureField
}
});
}).then(function (_ref5) {
var bridgeModelAttributeMapping = _ref5.bridgeModelAttributeMapping,
error = _ref5.error;
if (error) {
throw error.statusCode === 400 && error.message || 'There was an error saving the attribute';
}
return bridgeModelAttributeMapping;
});
};
};
var fields = function fields(_ref6) {
var modelName = _ref6.modelName,
attributeName = _ref6.attributeName;
return function (_ref7) {
var bridgeModelAttribute = _ref7.bridgeModelAttribute;
return (!attributeName || bridgeModelAttribute) && [{
name: 'name',
label: 'Name',
type: 'text',
required: true,
initialValue: bridgeModelAttribute ? bridgeModelAttribute.get('name') : ''
}, {
name: 'mapping',
label: 'Mapping',
type: 'code',
language: 'js-template',
required: true,
initialValue: bridgeModelAttribute && bridgeModelAttribute.get('structureField') || '',
options: [{
label: 'fields',
type: 'function',
quoteType: 'double',
detail: 'Add Field Mapping'
}]
}];
};
};
var BridgeModelAttributeForm = exports.BridgeModelAttributeForm = (0, _Form.generateForm)({
formOptions: ['modelName', 'attributeName'],
dataSources: dataSources,
fields: fields,
handleSubmit: handleSubmit
});
BridgeModelAttributeForm.displayName = 'BridgeModelAttributeForm';