diff --git a/services/refineFieldResults.service.ts b/services/refineFieldResults.service.ts index d40819ab..157556c5 100644 --- a/services/refineFieldResults.service.ts +++ b/services/refineFieldResults.service.ts @@ -26,11 +26,32 @@ export class RefineFieldResultsService { .pipe(map(res => [res['meta'].total, RefineResultsUtils.parse(res['refineResults'],fields, entityName)])); } - getRefineFieldResultsByFieldName(fieldName:string, entityName:string, properties:EnvProperties):any{ - let key:string="fundinglevel"; - let link = properties.searchAPIURLLAst +this.getSearchAPIURLForEntity(entityName)+"?fields="+fieldName +(fieldName.toString().indexOf(key)!=-1?('&sf='+fieldName):'')+ "&format=json"; - return this.getField(link,fieldName, properties); + getAllRefineFieldResultsByFieldName(fieldName:string, entityName:string, properties:EnvProperties, refineQuery:string=null):any{ + // let keys:string[]=["funder", "relfunder", "fundinglevel"]; + let url = properties.searchAPIURLLAst +this.getSearchAPIURLForEntity(entityName)+"?fields="+fieldName +('&sf='+fieldName)+ "&format=json"; + if(refineQuery!= null && refineQuery != '' ) { + url += refineQuery; + } + return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url) + //.map(res => res.json()) + + .pipe(map(res => [res['meta'].total, RefineResultsUtils.parse(res['refineResults'],[fieldName], entityName)])); + } + + getRefineFieldResultsByFieldName(fieldName:string, entityName:string, properties:EnvProperties):any{ + let keys:string[]=["fundinglevel"]; + let link = properties.searchAPIURLLAst +this.getSearchAPIURLForEntity(entityName)+"?fields="+fieldName +(this.fieldIncludesAnyOfTheKeywords(fieldName, keys)?('&sf='+fieldName):'')+ "&format=json"; + return this.getField(link,fieldName, properties); + } + + fieldIncludesAnyOfTheKeywords(field: string, keywords: string[]) { + for(let keyword of keywords) { + if(field.toString().indexOf(keyword)!=-1) { + return true; + } + } + return false; } getField (link:string,fieldName:string, properties:EnvProperties):any{