[PORTAL-16 PORTAL-18] Widget ms; staging
[portal.git] / ecomp-portal-FE-common / client / app / services / users / users.service.js
index 894aac0..808a663 100644 (file)
-/*-\r
- * ================================================================================\r
- * ECOMP Portal\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- *      http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ================================================================================\r
- */\r
-/**\r
- * Created by doritrieur on 12/8/15.\r
- */\r
-'use strict';\r
-\r
-(function () {\r
-    class UsersService {\r
-        constructor($q, $log, $http, conf, uuid, utilsService) {\r
-            this.$q = $q;\r
-            this.$log = $log;\r
-            this.$http = $http;\r
-            this.conf = conf;\r
-            this.uuid = uuid;\r
-            this.utilsService = utilsService;\r
-        }\r
-\r
-\r
-        searchUsers(queryString) {\r
-            let canceller = this.$q.defer();\r
-            let isActive = false;\r
-\r
-            let cancel = () => {\r
-                if(isActive){\r
-                    this.$log.debug('UsersService::searchUsers: canceling the request');\r
-                    canceller.resolve();\r
-                }\r
-            };\r
-\r
-            let promise = () => {\r
-                let deferred = this.$q.defer();\r
-                if(!queryString){\r
-                    return deferred.reject(new Error('query string is mandatory'));\r
-                }\r
-                isActive = true;\r
-                this.$http({\r
-                    method: 'GET',\r
-                    url: this.conf.api.queryUsers,\r
-                    params: {search: queryString},\r
-                    cache: false,\r
-                    timeout: canceller.promise,\r
-                    headers: {\r
-                        'X-ECOMP-RequestID':this.uuid.generate()\r
-                    }\r
-                }).then( res => {\r
-                    // If response comes back as a redirected HTML page which IS NOT a success\r
-                    if (this.utilsService.isValidJSON(res)== false) {\r
-                        deferred.reject('UsersService::queryUsers Failed');\r
-                    } else {\r
-                        //this.$log.info('UsersService::queryUsers Succeeded');\r
-                        isActive = false;\r
-                        deferred.resolve(res.data);\r
-                    }\r
-                }).catch( status => {\r
-                    isActive = false;\r
-                    deferred.reject('UsersService::searchUsers:: API Failed with status: ' + status);\r
-                });\r
-                return deferred.promise;\r
-            };\r
-\r
-            return {\r
-                cancel: cancel,\r
-                promise: promise\r
-            };\r
-\r
-        }\r
-\r
-        getAccountUsers(appId) {\r
-            let deferred = this.$q.defer();\r
-            let log = this.$log;\r
-            // this.$log.debug('UsersService::getAccountUsers for appId: ' + appId);\r
-\r
-            let url = this.conf.api.accountUsers.replace(':appId', appId);\r
-            this.$http({\r
-                method: 'GET',\r
-                url: url,\r
-                cache: false,\r
-                headers: {\r
-                    'X-ECOMP-RequestID':this.uuid.generate()\r
-                }\r
-            }).then( res => {\r
-                    // If response comes back as a redirected HTML page which IS NOT a success\r
-                if (this.utilsService.isValidJSON(res)== false) {\r
-                        deferred.reject('UsersService::getAccountUsers for appId Failed');\r
-                    } else {\r
-                        // log.info('UsersService::getAccountUsers(appId) Succeeded');\r
-                        deferred.resolve(res.data);\r
-                    }\r
-                })\r
-                .catch( status => {\r
-                    log.error('getAccountUsers(appId) $http error = ', status);\r
-                    deferred.reject(status);\r
-                });\r
-\r
-            return deferred.promise;\r
-        }\r
-\r
-        getUserAppRoles(appid, orgUserId){\r
-//            let deferred = this.$q.defer();\r
-               let canceller = this.$q.defer();\r
-            let isActive = false;\r
-\r
-            let cancel = () => {\r
-                if(isActive){\r
-                    this.$log.debug('UsersService::getUserAppRoles: canceling the request');\r
-                    canceller.resolve();\r
-                }\r
-            };\r
-\r
-            // this.$log.info('UsersService::getUserAppRoles');\r
-\r
-            let promise = () => {\r
-                let deferred = this.$q.defer();\r
-                isActive = false;\r
-            this.$http({\r
-                method: 'GET',\r
-                url: this.conf.api.userAppRoles,\r
-                params: {user: orgUserId, app: appid},\r
-                cache: false,\r
-                headers: {\r
-                    'X-ECOMP-RequestID':this.uuid.generate()\r
-                }\r
-            }).then( res => {\r
-                    //this.$log.debug('getUserAppRoles response: ', JSON.stringify(res))\r
-                    // If response comes back as a redirected HTML page which IS NOT a success\r
-                    if (this.utilsService.isValidJSON(res)== false) {\r
-                        deferred.reject('UsersService::getUserAppRoles: Failed');\r
-                    } else {\r
-                       isActive = false;\r
-                        //this.$log.info('UsersService::getUserAppRoles: Succeeded');\r
-                        deferred.resolve(res.data);\r
-                    }\r
-                })\r
-                .catch( status => {\r
-                       isActive = false;\r
-                    deferred.reject(status);\r
-                });\r
-\r
-            return deferred.promise;\r
-            };\r
-            \r
-            return {\r
-                cancel: cancel,\r
-                promise: promise\r
-            };\r
-        }\r
-\r
-        updateUserAppRoles(newUserAppRoles) {\r
-//            let deferred = this.$q.defer();\r
-            let canceller = this.$q.defer();\r
-            let isActive = false;\r
-\r
-            let cancel = () => {\r
-                if(isActive){\r
-                    this.$log.debug('UsersService::updateUserAppRoles: canceling the request');\r
-                    canceller.resolve();\r
-                }\r
-            };\r
-\r
-            // this.$log.info('UsersService::updateUserAppRoles');\r
-            let promise = () => {\r
-                let deferred = this.$q.defer();\r
-            this.$http({\r
-                method: 'PUT',\r
-                url: this.conf.api.userAppRoles,\r
-                data: newUserAppRoles,\r
-                headers: {\r
-                    'X-ECOMP-RequestID':this.uuid.generate()\r
-                }\r
-            }).then( res => {\r
-                // this.$log.debug('getUserAppRoles response: ', JSON.stringify(res))\r
-                // If response comes back as a redirected HTML page which IS NOT a success\r
-                if (this.utilsService.isValidJSON(res)== false) {\r
-                    deferred.reject('UsersService::updateUserAppRoles: Failed');\r
-                } else {\r
-                    // this.$log.info('UsersService::updateUserAppRoles: Succeeded');\r
-                    deferred.resolve(res.data);\r
-                }\r
-            })\r
-            .catch( status => {\r
-                deferred.reject(status);\r
-            });\r
-\r
-            return deferred.promise;\r
-            };\r
-            \r
-            return {\r
-                cancel: cancel,\r
-                promise: promise\r
-            };\r
-\r
-        }\r
-\r
-    }\r
-    UsersService.$inject = ['$q', '$log', '$http', 'conf','uuid4', 'utilsService'];\r
-    angular.module('ecompApp').service('usersService', UsersService)\r
-})();\r
+/*-
+ * ================================================================================
+ * ECOMP Portal
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ================================================================================
+ */
+/**
+ * Created by doritrieur on 12/8/15.
+ */
+'use strict';
+
+(function () {
+    class UsersService {
+        constructor($q, $log, $http, conf, uuid, utilsService) {
+            this.$q = $q;
+            this.$log = $log;
+            this.$http = $http;
+            this.conf = conf;
+            this.uuid = uuid;
+            this.utilsService = utilsService;
+        }
+
+
+        searchUsers(queryString) {
+            let canceller = this.$q.defer();
+            let isActive = false;
+
+            let cancel = () => {
+                if(isActive){
+                    this.$log.debug('UsersService::searchUsers: canceling the request');
+                    canceller.resolve();
+                }
+            };
+
+            let promise = () => {
+                let deferred = this.$q.defer();
+                if(!queryString){
+                    return deferred.reject(new Error('query string is mandatory'));
+                }
+                isActive = true;
+                this.$http({
+                    method: 'GET',
+                    url: this.conf.api.queryUsers,
+                    params: {search: queryString},
+                    cache: false,
+                    timeout: canceller.promise,
+                    headers: {
+                        'X-ECOMP-RequestID':this.uuid.generate()
+                    }
+                }).then( res => {
+                    // If response comes back as a redirected HTML page which IS NOT a success
+                    if (this.utilsService.isValidJSON(res)== false) {
+                        deferred.reject('UsersService::queryUsers Failed');
+                    } else {
+                        //this.$log.info('UsersService::queryUsers Succeeded');
+                        isActive = false;
+                        deferred.resolve(res.data);
+                    }
+                }).catch( status => {
+                    isActive = false;
+                    deferred.reject('UsersService::searchUsers:: API Failed with status: ' + status);
+                });
+                return deferred.promise;
+            };
+
+            return {
+                cancel: cancel,
+                promise: promise
+            };
+
+        }
+
+        getAccountUsers(appId) {
+            let deferred = this.$q.defer();
+            let log = this.$log;
+            // this.$log.debug('UsersService::getAccountUsers for appId: ' + appId);
+
+            let url = this.conf.api.accountUsers.replace(':appId', appId);
+            this.$http({
+                method: 'GET',
+                url: url,
+                cache: false,
+                headers: {
+                    'X-ECOMP-RequestID':this.uuid.generate()
+                }
+            }).then( res => {
+                    // If response comes back as a redirected HTML page which IS NOT a success
+                if (this.utilsService.isValidJSON(res)== false) {
+                        deferred.reject('UsersService::getAccountUsers for appId Failed');
+                    } else {
+                        // log.info('UsersService::getAccountUsers(appId) Succeeded');
+                        deferred.resolve(res.data);
+                    }
+                })
+                .catch( status => {
+                    log.error('getAccountUsers(appId) $http error = ', status);
+                    deferred.reject(status);
+                });
+
+            return deferred.promise;
+        }
+
+        getUserAppRoles(appid, orgUserId, extRequestValue){
+               let canceller = this.$q.defer();
+            let isActive = false;
+
+            let cancel = () => {
+                if(isActive){
+                    this.$log.debug('UsersService::getUserAppRoles: canceling the request');
+                    canceller.resolve();
+                }
+            };
+
+            let promise = () => {
+                let deferred = this.$q.defer();
+                isActive = false;
+            this.$http({
+                method: 'GET',
+                url: this.conf.api.userAppRoles,
+                params: {user: orgUserId, app: appid, externalRequest: extRequestValue},
+                cache: false,
+                headers: {
+                    'X-ECOMP-RequestID':this.uuid.generate()
+                }
+            }).then( res => {
+                    if (!this.utilsService.isValidJSON(res.data)) {
+                        deferred.reject('UsersService::getUserAppRoles: Failed');
+                    } else {
+                       isActive = false;
+                        deferred.resolve(res.data);
+                    }
+                })
+                .catch( status => {
+                       isActive = false;
+                    deferred.reject(status);
+                });
+
+            return deferred.promise;
+            };
+            
+            return {
+                cancel: cancel,
+                promise: promise
+            };
+        }
+
+        updateUserAppRoles(newUserAppRoles) {
+//            let deferred = this.$q.defer();
+            let canceller = this.$q.defer();
+            let isActive = false;
+
+            let cancel = () => {
+                if(isActive){
+                    this.$log.debug('UsersService::updateUserAppRoles: canceling the request');
+                    canceller.resolve();
+                }
+            };
+
+            // this.$log.info('UsersService::updateUserAppRoles');
+            let promise = () => {
+                let deferred = this.$q.defer();
+            this.$http({
+                method: 'PUT',
+                url: this.conf.api.userAppRoles,
+                data: newUserAppRoles,
+                headers: {
+                    'X-ECOMP-RequestID':this.uuid.generate()
+                }
+            }).then( res => {
+                // this.$log.debug('getUserAppRoles response: ', JSON.stringify(res))
+                // If response comes back as a redirected HTML page which IS NOT a success
+                if (this.utilsService.isValidJSON(res)== false) {
+                    deferred.reject('UsersService::updateUserAppRoles: Failed');
+                } else {
+                    // this.$log.info('UsersService::updateUserAppRoles: Succeeded');
+                    deferred.resolve(res.data);
+                }
+            })
+            .catch( status => {
+                deferred.reject(status);
+            });
+
+            return deferred.promise;
+            };
+            
+            return {
+                cancel: cancel,
+                promise: promise
+            };
+
+        }
+        
+        getLoggedInUser () {
+               let deferred = this.$q.defer();
+               this.$http({
+                       method: 'GET',
+                       url: this.conf.api.loggedinUser,
+                       cache: false,
+                       headers: {
+                               'X-ECOMP-RequestID':this.uuid.generate(),
+                               'Content-Type': 'application/json'
+                },
+                data: ''
+               }).then( res => {
+                       if (res.data==null || !this.utilsService.isValidJSON(res.data)) {                       
+                               deferred.reject('MenusService::getLoggedInUser rest call failed');
+                       } else {
+                               if(res.data.status!='OK' && res.data.message!=null)
+                               deferred.reject('MenusService::getLoggedInUser rest call failed ' + res.data.message);
+                               else
+                                       deferred.resolve(res.data);
+                       }
+               })
+               .catch( status => {
+                       this.$log.error('MenusService::getLoggedInUser rejection:' + status);
+                       deferred.reject(status);
+               });
+
+               return deferred.promise;
+        }
+        
+        modifyLoggedInUser (profileDetail) {
+               let deferred = this.$q.defer();
+               this.$http({
+                       method: 'PUT',
+                       url: this.conf.api.modifyLoggedinUser,
+                       cache: false,
+                       headers: {
+                               'X-ECOMP-RequestID':this.uuid.generate(),
+                               'Content-Type': 'application/json'
+                },
+                data: profileDetail
+               }).then( res => {
+                       if (res.data==null || !this.utilsService.isValidJSON(res.data)) {                       
+                               deferred.reject('MenusService::getLoggedInUser rest call failed');
+                       } else {
+                               if(res.data.status!='OK' && res.data.message!=null)
+                               deferred.reject('MenusService::getLoggedInUser rest call failed ' + res.data.message);
+                               else
+                                       deferred.resolve(res.data);
+                       }
+               })
+               .catch( status => {
+                       console.log(status);
+                       this.$log.error('MenusService::getLoggedInUser rejection:' + status);
+                       deferred.reject(status);
+               });
+
+               return deferred.promise;
+        }
+
+    }
+    UsersService.$inject = ['$q', '$log', '$http', 'conf','uuid4', 'utilsService'];
+    angular.module('ecompApp').service('usersService', UsersService)
+})();