Я работаю с приложением для фильтрации данных, в данном случае через запрос findAsset.
Мне нужно отправить массив фильтров, с помощью которого findAsset ответит отфильтрованными данными, однако,отправляемый массив не соответствует графу Query.
Я приложил и текущий, и правильный сценарии.
Это массив
constructor(private filterService: FilterService, private route: ActivatedRoute, private fb: FormBuilder, private houseService: HousesServices) {
this.testForm = this.fb.group ({
budget : this.fb.group({
gte: '',
lte: ''
}),
area : this.fb.group({
gte: '',
lte: ''
})
});
this.testForm.valueChanges.subscribe( e => {
this.filterCriteriaChanged.emit(this.filtersParam(e));
console.log(e);
});
}
private filtersParam (args): any {
const FILTER_MAP = {
area: 'basic.parcelFiscalArea',
budget: 'pricing.price'
}
console.log();
let resultO = [];
let params = args;
for (let key in params ) {
const currentFilter = FILTER_MAP[key];
for (let key2 in params[key]) {
// console.log(params[key][key2]);
if (params[key][key2]) {
let res: any = {};
res.name = currentFilter;
res.op = `${key2}`;
res.value = params[key][key2];
resultO.push(res);
}
}
}
console.log(resultO);
return JSON.stringify(resultO);
}
В настоящее время:
{
findAssets(
bounds: [
[2.383443042596838, 48.88251557008428]
[2.310486957387212, 48.83525071179383]
]
filter: [
{ "name": "basic.parcelFiscalArea", "op": "gte", "value": 100 }
{ "name": "basic.parcelFiscalArea", "op": "lte", "value": 1000 }
]
) {
list {
address {
number
street
zipCode
}
memberOf {
city
}
info {
name
value
}
media {
type
caption
path
}
}
}
}
Правильный запрос
{
findAssets(
bounds: [
[2.383443042596838, 48.88251557008428]
[2.310486957387212, 48.83525071179383]
]
filter: [
{ name: "basic.parcelFiscalArea", op: "gte", value: 100 }
{ name: "basic.parcelFiscalArea", op: "lte", value: 1000 }
]
) {
list {
address {
number
street
zipCode
}
memberOf {
city
}
info {
name
value
}
media {
type
caption
path
}
}
}
}
Как правильно отправить массив?
Я столкнулся с JSONtoGraphQlQuery , но не смог получить желаемый результат.