Add collaboration feature
[sdc.git] / openecomp-ui / src / nfvo-utils / getValue.js
1 /*!
2  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
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
13  * or implied. See the License for the specific language governing
14  * permissions and limitations under the License.
15  */
16 import {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
17
18 function getValueFromObject(element) {
19         return element.choices && element.choices.length > 0 && element.choices[0] !== '' && element.choices[0] !== optionInputOther.OTHER ||
20                         element.other && element.choices[0] === optionInputOther.OTHER ?
21                         element : undefined;
22 }
23
24 function getValueFromVariable(variable) {
25         return variable ? variable : undefined;
26 }
27
28 function getArrayData(variable) {
29         return variable.length ? variable : undefined;
30 }
31
32  let getValue = element => {
33         return typeof element === 'object' ?
34                 element instanceof Array ? getArrayData(element) : getValueFromObject(element) :
35                 getValueFromVariable(element);
36  };
37
38 export function getStrValue(choiceObject) {
39         if (!choiceObject) {
40                 return undefined;
41         }
42         if (choiceObject.choice && choiceObject.choice !== '' && choiceObject.choice !== optionInputOther.OTHER) {
43                 return choiceObject.choice;
44         }
45         else if (choiceObject.other && choiceObject.choice === optionInputOther.OTHER) {
46                 return choiceObject.other;
47         }
48 }
49
50  export default getValue;