[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / components / network / SoftwareProductComponentsNetworkActionHelper.js
index bc06146..a3cfe65 100644 (file)
  */
 import RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
 import Configuration from 'sdc-app/config/Configuration.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
 
 import {actionTypes} from './SoftwareProductComponentsNetworkConstants.js';
+import {actionTypes as GlobalModalActions} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {modalContentMapper as modalPagesMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
 import {NIC_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js';
 
@@ -26,6 +29,14 @@ function baseUrl(softwareProductId, version, componentId) {
        return `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/components/${componentId}/nics`;
 }
 
+function createNIC({nic, vspId, componentId, version}) {
+       return RestAPIUtil.post(baseUrl(vspId, version, componentId), {
+               name: nic.name,
+               description: nic.description,
+               networkDescription: nic.networkDescription,
+               networkType: nic.networkType
+       });
+}
 
 function fetchNICQuestionnaire({softwareProductId, version, componentId, nicId}) {
        return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}/${nicId}/questionnaire`);
@@ -39,11 +50,16 @@ function fetchNICsList({softwareProductId, version, componentId}) {
        return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}`);
 }
 
-function saveNIC({softwareProductId, version, componentId, nic: {id, name, description, networkId}}) {
+function deleteNIC({softwareProductId, componentId, nicId, version}) {
+       return RestAPIUtil.destroy(`${baseUrl(softwareProductId, version, componentId)}/${nicId}`);
+}
+function saveNIC({softwareProductId, version, componentId, nic: {id, name, description, networkId, networkType, networkDescription}}) {
        return RestAPIUtil.put(`${baseUrl(softwareProductId, version, componentId)}/${id}`,{
                name,
                description,
-               networkId
+               networkId,
+               networkDescription,
+               networkType
        });
 }
 
@@ -62,23 +78,45 @@ const SoftwareProductComponentNetworkActionHelper = {
                });
        },
 
-       openNICEditor(dispatch, {nic = {}, data = {}}) {
+       openNICEditor(dispatch, {nic = {}, data = {}, softwareProductId, componentId, isReadOnlyMode, modalClassName}) {
                dispatch({
-                       type: actionTypes.NICEditor.OPEN,
+                       type: actionTypes.NICEditor.FILL_DATA,
                        nic: {...data, id: nic.id}
                });
+               dispatch({
+                       type: GlobalModalActions.GLOBAL_MODAL_SHOW,
+                       data: {
+                               modalClassName,
+                               modalComponentProps: {softwareProductId, componentId, isReadOnlyMode},
+                               modalComponentName: modalPagesMapper.NIC_EDITOR,
+                               title: i18n('Edit NIC')
+                       }
+               });
        },
 
        closeNICEditor(dispatch) {
                dispatch({
-                       type: actionTypes.NICEditor.CLOSE
+                       type: GlobalModalActions.GLOBAL_MODAL_CLOSE
+               });
+               dispatch({
+                       type: actionTypes.NICEditor.CLEAR_DATA
                });
        },
 
+       createNIC(dispatch, {nic, softwareProductId, componentId, version}){
+               return createNIC({nic, vspId: softwareProductId, componentId, version}).then(() => {
+                       return SoftwareProductComponentNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
+               });
+       },
        loadNICData({softwareProductId, version, componentId, nicId}) {
                return fetchNIC({softwareProductId, version, componentId, nicId});
        },
 
+       deleteNIC(dispatch, {softwareProductId, componentId, nicId, version}) {
+               return deleteNIC({softwareProductId, componentId, nicId, version}).then(() => {
+                       return SoftwareProductComponentNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
+               });
+       },
        loadNICQuestionnaire(dispatch, {softwareProductId, version, componentId, nicId}) {
                return fetchNICQuestionnaire({softwareProductId, version, componentId, nicId}).then((response) => {
                        ValidationHelper.qDataLoaded(dispatch, {qName: NIC_QUESTIONNAIRE ,response: {