diff --git a/src/helpers/order/order-helper.js b/src/helpers/order/order-helper.js index 9a137e96f..cc7b9b125 100644 --- a/src/helpers/order/order-helper.js +++ b/src/helpers/order/order-helper.js @@ -23,7 +23,7 @@ export async function sendSubmitOrder({ service_parameters: { providerControlPar ...orderItem, ...parameters, service_parameters, - provider_control_parameters: providerControlParameters + provider_control_parameters: providerControlParameters || {} }; await orderApi.addToOrder(order.id, orderItem); return orderApi.submitOrder(order.id); diff --git a/src/smart-components/order/order-service-form-step-configuration.js b/src/smart-components/order/order-service-form-step-configuration.js index 94e65f96f..bd386d2ac 100644 --- a/src/smart-components/order/order-service-form-step-configuration.js +++ b/src/smart-components/order/order-service-form-step-configuration.js @@ -7,13 +7,12 @@ import { schemaParsers } from '@data-driven-forms/react-form-renderer'; import FormRenderer from '../common/form-renderer'; import { fetchServicePlans, sendSubmitOrder } from '../../redux/actions/order-actions'; -import { fetchProviderControlParameters } from '../../helpers/portfolio/portfolio-helper'; /** * TO DO * We need some explicit way of telling what kind of schema is being received */ -const createFormSchema = (servicePlanSchema, providerControlParameters) => { +const createFormSchema = (servicePlanSchema, providerControlParameters = { type: 'object', properties: {}}) => { const providerFields = schemaParsers.mozillaParser(providerControlParameters).schema.fields .map(({ name, ...rest }) => ({ name: `providerControlParameters.${name}`, ...rest })); let initialSchema = servicePlanSchema.schema; @@ -29,8 +28,7 @@ const createFormSchema = (servicePlanSchema, providerControlParameters) => { class OrderServiceFormStepConfiguration extends React.Component { state = { - selectedPlanIdx: 0, - controlParametersLoaded: false + selectedPlanIdx: 0 }; optionRow = (plan, _option, selectedId, onChange) => @@ -46,7 +44,6 @@ class OrderServiceFormStepConfiguration extends React.Component { componentDidMount() { const { id } = this.props; this.props.fetchPlans(id); - fetchProviderControlParameters(id).then(providerControlParameters => this.setState({ providerControlParameters, controlParametersLoaded: true })); } handlePlanChange = (arg, event) => { @@ -69,9 +66,8 @@ class OrderServiceFormStepConfiguration extends React.Component { }; render() { - const { controlParametersLoaded, providerControlParameters } = this.state; - if (!this.props.isLoading && controlParametersLoaded) { - const formSchema = createFormSchema(this.props.servicePlans[this.state.selectedPlanIdx].create_json_schema, providerControlParameters); + if (!this.props.isLoading && this.props.servicePlans.length > 0) { + const formSchema = createFormSchema(this.props.servicePlans[this.state.selectedPlanIdx].create_json_schema); return ( diff --git a/src/test/smart-components/order/order-service-form-step-configuration.test.js b/src/test/smart-components/order/order-service-form-step-configuration.test.js index e211673ad..4d6d14751 100644 --- a/src/test/smart-components/order/order-service-form-step-configuration.test.js +++ b/src/test/smart-components/order/order-service-form-step-configuration.test.js @@ -123,6 +123,7 @@ describe('', () => { ENABLE_OAUTH: 'true', MEMORY_LIMIT: '512Mi' }, + provider_control_parameters: {}, portfolio_item_id: '1' }); return res.status(200); }));