react 16 upgrade
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / revisions / RevisionsActionHelper.js
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 import i18n from 'nfvo-utils/i18n/i18n.js';
18 import RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
19 import { actionTypes as modalActionTypes } from 'nfvo-components/modal/GlobalModalConstants.js';
20 import { actionsEnum as vcActionsEnum } from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
21
22 import Configuration from 'sdc-app/config/Configuration.js';
23 import { modalContentMapper } from 'sdc-app/common/modal/ModalContentMapper.js';
24 import ScreensHelper from 'sdc-app/common/helpers/ScreensHelper.js';
25 import { enums, screenTypes } from 'sdc-app/onboarding/OnboardingConstants.js';
26
27 import { actionTypes } from './RevisionsConstants.js';
28
29 function baseUrl(itemId, version) {
30     const restPrefix = Configuration.get('restPrefix');
31     return `${restPrefix}/v1.0/items/${itemId}/versions/${version.id}`;
32 }
33
34 function fetchRevisions(itemId, version) {
35     let fetchUrl = `${baseUrl(itemId, version)}/revisions`;
36     return RestAPIUtil.fetch(fetchUrl);
37 }
38
39 function revertToRevision(itemId, version, revisionId) {
40     let putUrl = `${baseUrl(itemId, version)}/actions`;
41     let requestBody = {
42         action: vcActionsEnum.REVERT,
43         revisionRequest: {
44             revisionId: revisionId
45         }
46     };
47     return RestAPIUtil.put(putUrl, requestBody);
48 }
49
50 const RevisionaActionHelper = {
51     openRevisionsView(dispatch, { itemId, version, itemType }) {
52         this.fetchRevisions(dispatch, { itemId, version }).then(() => {
53             dispatch({
54                 type: modalActionTypes.GLOBAL_MODAL_SHOW,
55                 data: {
56                     modalComponentName: modalContentMapper.REVISIONS_LIST,
57                     title: i18n('Revert'),
58                     modalComponentProps: {
59                         itemId: itemId,
60                         version: version,
61                         itemType
62                     }
63                 }
64             });
65         });
66     },
67
68     closeRevisionsView(dispatch) {
69         dispatch({
70             type: modalActionTypes.GLOBAL_MODAL_CLOSE
71         });
72     },
73
74     fetchRevisions(dispatch, { itemId, version }) {
75         return fetchRevisions(itemId, version).then(response => {
76             dispatch({
77                 type: actionTypes.ITEM_REVISIONS_LOADED,
78                 response: response
79             });
80         });
81     },
82
83     revertToRevision(dispatch, { itemId, version, revisionId, itemType }) {
84         return revertToRevision(itemId, version, revisionId).then(() => {
85             this.closeRevisionsView(dispatch);
86             if (itemType === screenTypes.LICENSE_MODEL) {
87                 ScreensHelper.loadScreen(dispatch, {
88                     screen: enums.SCREEN.LICENSE_MODEL_OVERVIEW,
89                     screenType: screenTypes.LICENSE_MODEL,
90                     props: { licenseModelId: itemId, version }
91                 });
92             } else {
93                 ScreensHelper.loadScreen(dispatch, {
94                     screen: enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE,
95                     screenType: screenTypes.SOFTWARE_PRODUCT,
96                     props: { softwareProductId: itemId, version }
97                 });
98             }
99         });
100     }
101 };
102
103 export default RevisionaActionHelper;