nexus site path corrected
[portal.git] / ecomp-portal-FE / client / app / services / widgets / widgets.service.js
1 /**
2  * Created by doritrieur on 12/3/15.
3  */
4 'use strict';
5
6 (function () {
7     class WidgetsService {
8         constructor($q, $log, $http, conf,uuid) {
9             this.$q = $q;
10             this.$log = $log;
11             this.$http = $http;
12             this.conf = conf;
13             this.uuid = uuid;
14         }
15
16         getUserWidgets() {
17             let deferred = this.$q.defer();
18             this.$log.info('WidgetsService::getUserWidgets');
19             this.$http({
20                 method: "GET",
21                 url: this.conf.api.widgets,
22                 cache: false,
23                 headers: {
24                     'X-Widgets-Type': 'all',
25                     'X-ECOMP-RequestID':this.uuid.generate()
26                 }
27             }).then(res => {
28                     // If response comes back as a redirected HTML page which IS NOT a success
29                     if (res == null || res.data==null) {
30                         deferred.reject("WidgetsService::getUserWidgets Failed");
31                     } else {
32                         this.$log.info('WidgetsService::getUserWidgets Succeeded');
33                         deferred.resolve(res.data);
34                     }
35                 })
36                 .catch(status => {
37                     deferred.reject(status);
38                 });
39             return deferred.promise;
40         }
41
42         getManagedWidgets() {
43             let deferred = this.$q.defer();
44             this.$log.info('WidgetsService::getManagedWidgets');
45             this.$http({
46                 method: "GET",
47                 url: this.conf.api.widgets,
48                 cache: false,
49                 headers: {
50                     'X-Widgets-Type': 'managed',
51                     'X-ECOMP-RequestID':this.uuid.generate()
52                 }
53             }).then(res => {
54                     // If response comes back as a redirected HTML page which IS NOT a success
55                     if (Object.keys(res.data).length == 0) {
56                         deferred.reject("WidgetsService::getManagedWidgets Failed");
57                     } else {
58                         this.$log.info('WidgetsService::getManagedWidgets Succeeded');
59                         deferred.resolve(res.data);
60                     }
61                 })
62                 .catch(status => {
63                     deferred.reject(status);
64                 });
65             return deferred.promise;
66         }
67
68         createWidget(widgetData) {
69             let deferred = this.$q.defer();
70             this.$log.info('WidgetsService::createWidget');
71             this.$http({
72                 method: "POST",
73                 url: this.conf.api.widgets,
74                 cache: false,
75                 data: widgetData,
76                 headers: {
77                     'X-ECOMP-RequestID':this.uuid.generate()
78                 }
79             }).then(res => {
80                     // If response comes back as a redirected HTML page which IS NOT a success
81                     if (Object.keys(res.data).length == 0) {
82                         deferred.reject("WidgetsService::createWidget Failed");
83                     } else {
84                         this.$log.info('WidgetsService::createWidget Succeeded');
85                         deferred.resolve(res.data);
86                     }
87                 })
88                 .catch(errRes => {
89                     deferred.reject(errRes);
90                 });
91             return deferred.promise;
92         }
93
94         updateWidget(widgetId, widgetData) {
95             let deferred = this.$q.defer();
96             this.$log.info('WidgetsService::updateWidget');
97             let url = this.conf.api.widgets + '/' + widgetId;
98             this.$http({
99                 method: "PUT",
100                 url: url,
101                 cache: false,
102                 data: widgetData,
103                 headers: {
104                     'X-ECOMP-RequestID':this.uuid.generate()
105                 }
106             }).then(res => {
107                     // If response comes back as a redirected HTML page which IS NOT a success
108                     if (Object.keys(res.data).length == 0) {
109                         deferred.reject("WidgetsService::updateWidget Failed");
110                     } else {
111                         this.$log.info('WidgetsService::updateWidget Succeeded');
112                         deferred.resolve(res.data);
113                     }
114                 })
115                 .catch(errRes => {
116                     deferred.reject(errRes);
117                 });
118             return deferred.promise;
119         }
120
121         deleteWidget(widgetId) {
122             let deferred = this.$q.defer();
123             this.$log.info('WidgetsService::deleteWidget');
124             let url = this.conf.api.widgets + '/' + widgetId;
125             this.$http({
126                 method: "DELETE",
127                 url: url,
128                 cache: false,
129                 headers: {
130                     'X-ECOMP-RequestID':this.uuid.generate()
131                 }
132             }).then(res => {
133                     // If response comes back as a redirected HTML page which IS NOT a success
134                     if (Object.keys(res.data).length == 0) {
135                         deferred.reject("WidgetsService::deleteWidget Failed");
136                     } else {
137                         this.$log.info('WidgetsService::deleteWidget Succeeded');
138                         deferred.resolve(res.data);
139                     }
140                 })
141                 .catch(status => {
142                     deferred.reject(status);
143                 });
144             return deferred.promise;
145         }
146
147         checkIfWidgetUrlExists(urlToValidate) {
148             let deferred = this.$q.defer();
149             this.$log.info('WidgetsService::checkIfWidgetUrlExists:' + urlToValidate);
150             let reqBody = {
151                 url: urlToValidate
152             };
153             this.$http({
154                 method: "POST",
155                 url: this.conf.api.widgetsValidation,
156                 cache: false,
157                 data: reqBody,
158                 headers: {
159                     'X-ECOMP-RequestID':this.uuid.generate()
160                 }
161             }).then(() => {
162                 //if exists return true
163                     deferred.resolve(true);
164                 })
165                 .catch(response => {
166                     if(response.data.status === 404){
167                         deferred.resolve(false);
168                     }else{
169                         deferred.reject(response.data);
170                     }
171                 });
172             return deferred.promise;
173         }
174
175     }
176     WidgetsService.$inject = ['$q', '$log', '$http', 'conf','uuid4'];
177     angular.module('ecompApp').service('widgetsService', WidgetsService)
178 })();