[develop | DONE | CHANGED]: refineFieldResults.service.ts: Added method "getAllRefineFieldResultsByFieldName()" to get all values of a specific refine field (not just first 100) | In method "getRefineFieldResultsByFieldName()" changed key:string to keys:string[] to be able to define multiple fields to query for all their values - creted helper method "fieldIncludesAnyOfTheKeywords()".
This commit is contained in:
parent
1f872d2beb
commit
ff34511a9c
|
@ -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 => <any> 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{
|
||||
|
|
Loading…
Reference in New Issue