angular.module('kalgudiApp.myconnects').service('profileServicedata', ['Restangular','searchRestangular','$q','$rootScope','s3Restangular', function(Restangular,searchRestangular,$q,$rootScope,s3Restangular) { this.searchResults = function(request,searchcriteria) { var businessId = $rootScope.loggedInUserCurrentBussinessInfo.businessKey; var placeId = $rootScope.loggedInUserCurrentBussinessInfo.locationTo.placeId; var locationName = $rootScope.loggedInUserCurrentBussinessInfo.locationTo.placeName; var framingUrl = ""; var deferred = $q.defer(); switch(searchcriteria) { // all kalgudi search - profile case "usersearch": framingUrl = "search/profile?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit; break; case "orgmembers": framingUrl = "search/profile/orgmembers?keyword="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit; break; case "nearByLocations": framingUrl = "search/geosearch?products="+request.productIds+"&latlong="+request.latLong+"&offset="+request.offset+"&limit="+request.limit; break; case "tradingLocations": framingUrl = "search/profiletradinglocations?products="+request.productIds+"&locations="+request.locationIds+"&offset="+request.offset+"&limit="+request.limit; break; case "mobileContacts": framingUrl = "connects/mobileContactsSearch/"+businessId; break; // all kalgudi posts - connects case "connectskeywordsearch": framingUrl = "thread/allpost"+"?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId+"&placeId="+placeId+"&locationName="+locationName+"&sortParameter="+request.sortParameter; break; case "allPostInNearBylocation": framingUrl = "thread/nearbylocations?products="+request.productIds+"&latlong="+request.latLong+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId+"&placeId="+placeId+"&locationName="+locationName; break; case "allPostInTradingLocations": framingUrl = "thread/tradinglocations?bizinterstlocations="+request.locationIds+"&products="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId+"&placeId="+placeId+"&locationName="+locationName; break; case "LastSevendaysPostMessages": framingUrl = "thread/lastsevendayspostmessages?products="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId+"&placeId="+placeId+"&locationName="+locationName; break; // all kalgudi content case "arrivals": framingUrl = "templates/contentsearch/arrivals?locations="+request.locationIds+"&products="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessKey="+businessId; break; case "prices": framingUrl = "templates/contentsearch/prices?locations="+request.locationIds+"&products="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessKey="+businessId; break; case "majorMarketPrices": framingUrl = "templates/contentsearch/majormarkets?products="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessKey="+businessId; break; case "contentkeywordsearch": framingUrl = "content/search/all?searchString="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit; break; // business & ca case "businesskeywordsearch": framingUrl = "traderapp/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "agriInputkeywordsearch": framingUrl = "agriinputapp/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "farmerkeywordsearch": framingUrl = "farmerapp/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "coAppkeywordsearch": framingUrl = "society/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "warehousekeywordsearch": framingUrl = "warehouseapp/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "transporterkeywordsearch": framingUrl = "transporterapp/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "canvasingagentkeywordsearch": framingUrl = "canapp/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "bizCommoditywiseTransaction": if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000000') { framingUrl = "traderapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId } else if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000001'){ framingUrl = "canapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId } else if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000002') { framingUrl = "farmerapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; } else if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000010') { framingUrl = "societyapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; } else if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000008'){ framingUrl = "agriinputapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId } else if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000003'){ framingUrl = "transporterapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId } else if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000006'){ framingUrl = "warehouseapp/alltranscations?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId } break; case "bizCommoditywiseTransactionInternational": if($rootScope.loggedInUserCurrentBussinessInfo.businessTypeId == 'BT000000') { framingUrl = "traderapp/internationaltransactions?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; } else { framingUrl = "canapp/internationaltransactions?product="+request.productIds+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId } break; //accounts case "accountsKeywordSearch": framingUrl = "accounts/search?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&businessId="+businessId; break; case "opportunitiesSearch" : framingUrl = "searchwrapper/opportunities?q="+encodeURIComponent(request.keyword)+"&offset="+request.offset+"&limit="+request.limit+"&sort="+request.sort+"&requirementType="+request.requirementType+"&latlong=&location=&product=&businesstype=&reqfrom=generisearch&messagecategorytype=&userName=&password=&facetfiled="; break; } if(searchcriteria == "orgmembers"){ Restangular.one(framingUrl).get().then( function(response) { if(response.code == 100 || response.code == 200 ) { deferred.resolve(response); } else { deferred.reject(error); } }, function(error) { deferred.reject(error); }); return deferred.promise; } searchRestangular.one(framingUrl).get().then(function(serviceResult) { var newResponse = {}; if (!serviceResult) { serviceResult = {}; } if(searchcriteria == "arrivals" || searchcriteria == "prices" || searchcriteria == "majorMarketPrices" || searchcriteria == "contentkeywordsearch" || searchcriteria == "connectskeywordsearch" || searchcriteria =="allPostInNearBylocation" || searchcriteria =="allPostInTradingLocations" || searchcriteria =="LastSevendaysPostMessages" || searchcriteria == "opportunitiesSearch") { if (angular.isArray(serviceResult.data)) { angular.forEach(serviceResult.data, function(value, key) { newResponse[key] = angular.copy(value); }); } } else { if (angular.isArray(serviceResult.data)) { angular.forEach(serviceResult.data, function(value, key) { newResponse[key] = angular.copy(JSON.parse(value)); }); } } if(Object.keys(newResponse).length==0) { newResponse = Object.keys(newResponse).length==0?newResponse:[newResponse]; } serviceResult.data = _.toArray(newResponse); deferred.resolve(serviceResult); }, function (err) { deferred.reject(err); }); return deferred.promise; } this.getMarketOpportunities = function (request) { var deferred = $q.defer(); var newRequest = { q : request.keyword , offset: request.offset, limit: request.limit, latlong: '', location: '', product: '', businesstype:'', reqfrom:'generisearch', messagecategorytype:'', userName:'', password:'', facetfiled:'' } s3Restangular.one('v1/searchwrapper/opportunities').get(newRequest).then( function(response) { if(response.code == 100) { deferred.resolve(response.data); } else { deferred.reject(error); } }, function(error) { deferred.reject(error); }); return deferred.promise; } this.productsSearchResults = function(request) { var deferred = $q.defer(); s3Restangular.one("profiles/products/"+encodeURIComponent(request.keyword)+"?limit="+request.limit+"&offset="+request.offset+"&groupId=").get().then(function(response) { var outputData = s3Restangular.stripRestangular(response); var newResponse = {}; if (angular.isArray(outputData.data)) { angular.forEach(outputData.data, function(value, key) { newResponse[key] = angular.copy(JSON.parse(value)); }); } if(Object.keys(newResponse).length==0) { newResponse = Object.keys(newResponse).length==0?newResponse:[newResponse]; } outputData.data = _.toArray(newResponse); deferred.resolve(outputData); }, function(err) { deferred.reject(err); }); return deferred.promise; } this.mobile_Contacts_loading = function() { var deferred =$q.defer(); var businessId = $rootScope.loggedInUserCurrentBussinessInfo.businessKey; framingUrl = "connects/mobileContactsSearch/"+businessId; var options = new ContactFindOptions(); options.filter = ""; options.multiple=true; var fields = ["displayName", "name", "phoneNumbers"]; var contactReqObj = []; var contactServiceObj = []; var newContacts = []; function onSuccess(contacts) { for(var index in contacts){ var Name = contacts[index].displayName; var phoneNumbers = contacts[index].phoneNumbers; //navigator.contacts.find(fields, onSuccess, onError, options); //Phone numbers in this plugin are array for(var j in phoneNumbers){ var newlist= phoneNumbers[j].value; var tempno = ""; phoneNumbers[j].value = phoneNumbers[j].value.split(" ").join(""); if (phoneNumbers[j].value.length == 10) { tempno = LOGGEDINUSERPROFILE.mobileNo.substring(0,3) + phoneNumbers[j].value; } else if (phoneNumbers[j].value.length == 12){ tempno = LOGGEDINUSERPROFILE.mobileNo.substring(0,1) + phoneNumbers[j].value; } else { tempno = phoneNumbers[j].value; } var contactsList = { "name":Name, "mobileNumber": tempno } //This obj is to store modified phone numbers contactServiceObj.push(contactsList); //This obj is to store orginal phone numbers contactReqObj[tempno] = newlist; } } var newContactServiceObj = { "profileKey" : LOGGEDINUSERPROFILE.profileKey, "businessKey" : LOGGEDINUSERPROFILE.defaultBusinessKey, "loginId" : LOGGEDINUSERPROFILE.mobileNo, "deviceUUID" : device.uuid, "lstOfCheckRegisteredUsers" : contactServiceObj } //Call the service to get activated contacts list checkLocalStorage("MOBILECONTACTS",newContactServiceObj); //window.localStorage["MOBILECONTACTS"] = JSON.stringify(newContactServiceObj); deferred.resolve(newContactServiceObj); } // onError: Failed to get the contacts function onError(contactError) { deferred.resolve(contactError);//alert('onError!'); } navigator.contacts.find(fields, onSuccess, onError, options); // onSuccess: Get a snapshot of the current contacts return deferred.promise; } this.mobileContactsSearchTemplate = function(request) { var deferred = $q.defer(); searchRestangular.one("profiles/referral/profilesincontacts?deviceid="+request).get().then(function(serviceResult) { var newResponse = {}; if (angular.isArray(serviceResult.data)) { angular.forEach(serviceResult.data, function(value, key) { newResponse[key] = angular.copy(JSON.parse(value)); }); } if(Object.keys(newResponse).length==0) { newResponse = Object.keys(newResponse).length==0?newResponse:[newResponse]; } serviceResult.data = _.toArray(newResponse); deferred.resolve(serviceResult); }, function (err) { deferred.reject(err); }); return deferred.promise; } this.mobileContactsKalgudiSearchTemplate = function() { var deferred = $q.defer(); var kalgudiMobileNumbers=JSON.parse(window.localStorage["MOBILE_CONTACTS_PARTOF_KALGUDI"]); var mobilenumberobj={ "lstOfFinalCheckRegisteredUsers":kalgudiMobileNumbers }; searchRestangular.one("search/contacts").customPOST(mobilenumberobj).then(function(serviceResult) { var newResponse = {}; if (angular.isArray(serviceResult.data)) { angular.forEach(serviceResult.data, function(value, key) { newResponse[key] = angular.copy(JSON.parse(value)); }); } if(Object.keys(newResponse).length==0) { newResponse = Object.keys(newResponse).length==0?newResponse:[newResponse]; } serviceResult.data = _.toArray(newResponse); deferred.resolve(serviceResult); }, function (err) { deferred.reject(err); }); return deferred.promise; } this.searchNotifications = function(keyPatternId) { var deferred = $q.defer(); searchRestangular.one("customnotify/postmessage/"+keyPatternId).get().then(function(serviceResult) { var outputData = searchRestangular.stripRestangular(serviceResult); var newResponse =[] newResponse.push(outputData); deferred.resolve(newResponse); }, function (err) { deferred.reject(err); }); return deferred.promise; } this.getGroupsSearchResults = function(request) { var deferred = $q.defer(); // var request={ // keyword:groupName // } searchRestangular.all("stream/groups/search").getList(request).then(function(data){ var outputData = searchRestangular.stripRestangular(data); deferred.resolve(outputData); },function(err) { if(err.config.data == "nonetwork") { // $rootScope.spinerisActive = false; } deferred.reject(err); }); return deferred.promise; } this.qaSearchResults = function(groupName, order) { var deferred = $q.defer(); var request={ keyword:groupName } if(order) { request.sort = order; } searchRestangular.all("stream/qa/search").getList(request).then(function(data){ var outputData = searchRestangular.stripRestangular(data); deferred.resolve(outputData); },function(err) { if(err.config.data == "nonetwork") { // $rootScope.spinerisActive = false; } deferred.reject(err); }); return deferred.promise; } this.joinInFollow =function(request,entityid){ var deferred = $q.defer(); searchRestangular.one("entities/common/follow?entityId="+entityid).customPUT(request).then(function(data){ var outputData = searchRestangular.stripRestangular(data); deferred.resolve(outputData); },function(err) { if(err.config.data == "nonetwork") { // $rootScope.spinerisActive = false; } deferred.reject(err); }); return deferred.promise; } this.pagesSearchResults = function(groupName) { var deferred = $q.defer(); // var request={ // keyword:groupName // } searchRestangular.one("entities/search?keyword=" + groupName).get().then(function(data){ var outputData = searchRestangular.stripRestangular(data); deferred.resolve(outputData); },function(err) { if(err.config.data == "nonetwork") { // $rootScope.spinerisActive = false; } deferred.reject(err); }); return deferred.promise; }; this.advanceSearchResult = function(AdvanceSearchObject,type) { var deferred = $q.defer(); var framingUrl = ""; switch(type){ case "Users" : { framingUrl = "search/users/advanced?" + AdvanceSearchObject; break; } case "Marketplace" : { framingUrl = "search/marketplace/advanced?" + AdvanceSearchObject; break; } case "Questions" : { framingUrl = "search/questions/advanced?" + AdvanceSearchObject; break; } case "Shares" : { framingUrl = "search/shares/advanced?" + AdvanceSearchObject; break; } } Restangular.one(framingUrl).get().then(function(serviceResult) { var outputData = searchRestangular.stripRestangular(serviceResult); deferred.resolve(outputData); },function(err) { if(err.config.data == "nonetwork") { // $rootScope.spinerisActive = false; } deferred.reject(err); }); return deferred.promise; }; this.autocompleteSearch = function(groupName) { var deferred = $q.defer(); var url = ""; switch(groupName.type){ case "Products" :{ url = "search/autocomplete/product";break; } case "Network" :{ url = "search/autocomplete/network";break; } case "Location" :{ url = "search/autocomplete/location";break; } case "vproductfull" :{ url = "search/autocomplete/vproductfull";break; } default : { return; } } Restangular.one(url) .get(groupName) .then( function(data){ var outputData = searchRestangular.stripRestangular(data); deferred.resolve(outputData); },function(err) { if(err) { deferred.reject(err); } } ); return deferred.promise; }; this.getSearchResultCommon = function(keyword,searchType) { var deferred = $q.defer(); var commonUrl = ''; switch(searchType){ case "vproduct" : { commonUrl = 'search/Vproduct';break; } } Restangular.one(commonUrl) .get(keyword) .then( function(data){ var outputData = searchRestangular.stripRestangular(data); deferred.resolve(outputData); },function(err) { if(err) { deferred.reject(err); } } ); return deferred.promise; }; }]);