Merge "Merge from ECOMP's repository"
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / asdcService.js
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 "use strict";\r
22 \r
23 var AsdcService = function ($http, $log, PropertyService, UtilityService, VIDCONFIGURATION, COMPONENT, DataService, featureFlags) {\r
24     var shouldExcludeMacroFromAsyncInstantiationFlow = function(serviceModel){\r
25             if (!featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_ASYNC_INSTANTIATION))\r
26                 return true;\r
27                         if (DataService.getE2EService())\r
28                                 return true;\r
29             if (!_.isEmpty(serviceModel.pnfs))\r
30                 return true;\r
31             if (!_.isEmpty(serviceModel.collectionResource))\r
32                 return true;\r
33             if (!_.isEmpty(serviceModel.networks) && !featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_NETWORK_TO_ASYNC_INSTANTIATION))\r
34                 return true;\r
35             if(serviceModel.service.instantiationType === "ClientConfig")\r
36                 return true;\r
37             return false;\r
38     };\r
39 \r
40     return {\r
41         getModel: function (modelId, successCallbackFunction) {\r
42             $log.debug("AsdcService:getModel: modelId: " + modelId);\r
43             $http.get(\r
44                 "asdc/getModel/" + modelId\r
45                 + "?r=" + Math.random(),\r
46                 {\r
47                     timeout: PropertyService\r
48                         .getServerResponseTimeoutMsec()\r
49                 }).then(successCallbackFunction)["catch"]\r
50             (UtilityService.runHttpErrorHandler);\r
51         },\r
52 \r
53         shouldTakeTheDrawingBoardViewEdit: function(serviceModel) {\r
54             if (serviceModel.service.vidNotions\r
55                 && serviceModel.service.vidNotions.viewEditUI\r
56                 && serviceModel.service.vidNotions.viewEditUI !== 'legacy'\r
57             ) return true;\r
58 \r
59             return false;\r
60         },\r
61 \r
62         shouldTakeTheAsyncInstantiationFlow: function(serviceModel) {\r
63             // First of all, respect serviceModel.service.vidNotions.instantiationUI\r
64             if (serviceModel.service.vidNotions\r
65                 && serviceModel.service.vidNotions.instantiationUI\r
66                 && serviceModel.service.vidNotions.instantiationUI !== 'legacy'\r
67             ) return true;\r
68 \r
69             // If defined 'legacy' or not defined, other client-side\r
70             // logic still apply:\r
71 \r
72             if (this.isMacro(serviceModel)\r
73                 && !shouldExcludeMacroFromAsyncInstantiationFlow(serviceModel)\r
74             ) return true;\r
75 \r
76             // otherwise...\r
77             return false;\r
78         },\r
79 \r
80         isMacro: function (serviceModel) {\r
81             if (serviceModel && serviceModel.service) {\r
82                 switch (serviceModel.service.instantiationType) {\r
83                     case 'Macro':\r
84                     case 'Both':\r
85                         return true;\r
86                     case 'A-La-Carte':\r
87                         return false;\r
88                     case 'ClientConfig':\r
89                         console.debug("Looking for " + serviceModel.service.invariantUuid + " by Client Config");\r
90                         return UtilityService.arrayContains(VIDCONFIGURATION.MACRO_SERVICES, serviceModel.service.invariantUuid);\r
91                     default:\r
92                         console.debug("Unexpected serviceModel.service.instantiationType: " + serviceModel.service.instantiationType);\r
93                         return UtilityService.arrayContains(VIDCONFIGURATION.MACRO_SERVICES, serviceModel.service.invariantUuid);\r
94                 }\r
95             } else {\r
96                 $log.debug("isMscro=false, because serviceModel.service is undefined");\r
97                 return false;\r
98             }\r
99         }\r
100     };\r
101 };\r
102 \r
103 appDS2.factory("AsdcService", ["$http", "$log", "PropertyService",\r
104     "UtilityService", "VIDCONFIGURATION","COMPONENT", "DataService", "featureFlags", AsdcService]);\r