diff --git a/src/main/java/org/sunbird/searchby/controller/SearchByController.java b/src/main/java/org/sunbird/searchby/controller/SearchByController.java index 396e610f2..530b42a4e 100644 --- a/src/main/java/org/sunbird/searchby/controller/SearchByController.java +++ b/src/main/java/org/sunbird/searchby/controller/SearchByController.java @@ -1,16 +1,11 @@ package org.sunbird.searchby.controller; -import javax.validation.Valid; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; -import org.sunbird.searchby.model.SearchByFilter; import org.sunbird.searchby.service.SearchByService; @RestController @@ -19,23 +14,13 @@ public class SearchByController { @Autowired private SearchByService searchByService; + //v1/readCompetency @GetMapping("/v1/browseByCompetency") public ResponseEntity browseByCompetency(@RequestHeader("x-authenticated-user-token") String authUserToken) throws Exception { return new ResponseEntity<>(searchByService.getCompetencyDetails(authUserToken), HttpStatus.OK); } - @PostMapping("/v1/browseByCompetency") - public ResponseEntity browseByCompetencyByFilter( - @RequestHeader("x-authenticated-user-token") String authUserToken, - @Valid @RequestBody SearchByFilter filter) throws Exception { - if (filter == null) { - throw new Exception("Invalid Request"); - } - return new ResponseEntity<>(searchByService.getCompetencyDetailsByFilter(authUserToken, filter), - HttpStatus.OK); - } - @GetMapping("/v1/browseByProvider") public ResponseEntity browseByProvider(@RequestHeader("x-authenticated-user-token") String authUserToken) throws Exception { diff --git a/src/main/java/org/sunbird/searchby/model/SearchByFilter.java b/src/main/java/org/sunbird/searchby/model/SearchByFilter.java deleted file mode 100644 index a9853e161..000000000 --- a/src/main/java/org/sunbird/searchby/model/SearchByFilter.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.sunbird.searchby.model; - -import java.util.List; - -import org.apache.commons.collections.CollectionUtils; - -public class SearchByFilter { - List competencyName; - List competencyType; - List competencyArea; - - public List getCompetencyName() { - return competencyName; - } - - public void setCompetencyName(List competencyName) { - this.competencyName = competencyName; - } - - public List getCompetencyType() { - return competencyType; - } - - public void setCompetencyType(List competencyType) { - this.competencyType = competencyType; - } - - public List getCompetencyArea() { - return competencyArea; - } - - public void setCompetencyArea(List competencyArea) { - this.competencyArea = competencyArea; - } - - @Override - public String toString() { - return "SearchByFilter{" + "competencyName=" + competencyName + ", competencyType=" + competencyType - + ", competencyArea=" + competencyArea + '}'; - } - - public boolean isEmptyFilter() { - return (CollectionUtils.isEmpty(competencyName) || CollectionUtils.isEmpty(competencyType) - || CollectionUtils.isEmpty(competencyArea)); - } -} diff --git a/src/main/java/org/sunbird/searchby/service/SearchByService.java b/src/main/java/org/sunbird/searchby/service/SearchByService.java index 4c20a2651..fe5725c4f 100644 --- a/src/main/java/org/sunbird/searchby/service/SearchByService.java +++ b/src/main/java/org/sunbird/searchby/service/SearchByService.java @@ -6,7 +6,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,7 +17,6 @@ import org.sunbird.core.logger.CbExtLogger; import org.sunbird.searchby.model.CompetencyInfo; import org.sunbird.searchby.model.ProviderInfo; -import org.sunbird.searchby.model.SearchByFilter; import com.fasterxml.jackson.databind.ObjectMapper; @@ -48,68 +46,15 @@ public Collection getCompetencyDetails(String authUserToken) thr .getCache(Constants.COMPETENCY_CACHE_NAME); return competencyMap.values(); } - - public Collection getCompetencyDetailsByFilter(String authUserToken, SearchByFilter filter) - throws Exception { - - if (filter.isEmptyFilter()) { - return getCompetencyDetails(authUserToken); - } - - Map objectNameCache = (Map) redisCacheMgr - .getCache(Constants.COMPETENCY_CACHE_NAME); - Object objectAreaCache = redisCacheMgr.getCache(Constants.COMPETENCY_CACHE_NAME_BY_AREA); - Object objectTypeCache = redisCacheMgr.getCache(Constants.COMPETENCY_CACHE_NAME_BY_TYPE); - if (CollectionUtils.isEmpty(objectNameCache) || objectAreaCache == null || objectTypeCache == null) { - logger.info("Initializing/Refreshing the Cache Value."); - updateCompetencyDetails(authUserToken); - } - objectNameCache = (Map) redisCacheMgr.getCache(Constants.COMPETENCY_CACHE_NAME); - objectAreaCache = redisCacheMgr.getCache(Constants.COMPETENCY_CACHE_NAME_BY_AREA); - objectTypeCache = redisCacheMgr.getCache(Constants.COMPETENCY_CACHE_NAME_BY_TYPE); - - // Apply Name filter - Map afterFilter = new HashMap<>(); - if (!CollectionUtils.isEmpty(filter.getCompetencyName())) { - List lowerCaseNameFilter = listToLowerCase(filter.getCompetencyName()); - for (CompetencyInfo eachInfo : objectNameCache.values()) { - if (lowerCaseNameFilter.contains(eachInfo.getName().toLowerCase().trim())) { - afterFilter.put(eachInfo.getId(), eachInfo); - } - } - } - - if (!CollectionUtils.isEmpty(filter.getCompetencyType())) { - List lowerCaseTypeFilter = listToLowerCase(filter.getCompetencyType()); - Map> typeCache = (Map>) objectTypeCache; - for (Map.Entry> eachInfo : typeCache.entrySet()) { - if (lowerCaseTypeFilter.contains(eachInfo.getKey().toLowerCase().trim())) { - for (CompetencyInfo competencyInfo : eachInfo.getValue()) - afterFilter.put(competencyInfo.getId(), competencyInfo); - } - } - } - - if (!CollectionUtils.isEmpty(filter.getCompetencyArea())) { - List lowerCaseAreaFilter = listToLowerCase(filter.getCompetencyArea()); - Map> areaCache = (Map>) objectAreaCache; - for (Map.Entry> eachInfo : areaCache.entrySet()) { - if (lowerCaseAreaFilter.contains(eachInfo.getKey().toLowerCase().trim())) { - for (CompetencyInfo competencyInfo : eachInfo.getValue()) - afterFilter.put(competencyInfo.getId(), competencyInfo); - } - } - } - return afterFilter.values(); - } - + public Collection getProviderDetails(String authUserToken) throws Exception { Object object = redisCacheMgr.getCache(Constants.PROVIDER_CACHE_NAME); if (object == null) { logger.info(""); updateProviderDetails(authUserToken); } - return (Collection) redisCacheMgr.getCache(Constants.PROVIDER_CACHE_NAME); + Map providerMap = (Map) redisCacheMgr.getCache(Constants.PROVIDER_CACHE_NAME); + return providerMap.values(); } private void updateCompetencyDetails(String authUserToken) throws Exception { @@ -147,6 +92,7 @@ private void updateCompetencyDetails(String authUserToken) throws Exception { if (!CollectionUtils.isEmpty(facetValueList)) { for (Map facetValueObj : facetValueList) { CompetencyInfo compInfo = new CompetencyInfo(); + //TODO - Make sure which competency field is unique compInfo.setContentCount((int) facetValueObj.get("count")); competencyMap.put((String) facetValueObj.get("name"), compInfo); } @@ -331,10 +277,6 @@ private void updateProviderDetails(String authUserToken) throws Exception { throw err; } - redisCacheMgr.putCache(Constants.PROVIDER_CACHE_NAME, providerMap.values()); - } - - private List listToLowerCase(List convertString) { - return convertString.stream().map(String::toLowerCase).map(String::trim).collect(Collectors.toList()); + redisCacheMgr.putCache(Constants.PROVIDER_CACHE_NAME, providerMap); } } \ No newline at end of file