in client/client/app/components/ngbTargetPanel/ngbIdentificationsTab/ngbDiseasesPanel/ngbDiseasesTable/ngbDiseasesTable.service.js [227:295]
getRequest() {
const request = {
page: this.currentPage,
pageSize: this.pageSize,
geneIds: this.geneIds,
};
if (this.sourceModel === SourceOptions.TTD) {
if (this._filterInfo && this._filterInfo.target && this._filterInfo.target.length) {
const geneIds = this._filterInfo.target
.map(t => {
const chip = this.ngbTargetPanelService.getGeneIdByChip(t);
return chip ? chip : '';
})
.filter(v => v);
if (geneIds && geneIds.length) {
request.geneIds = geneIds;
}
}
}
if (this.targetId) {
request.targetId = this.targetId;
}
if (this.sortInfo && this.sortInfo.length) {
request.orderInfos = this.sortInfo.map(i => ({
orderBy: this.fields[this.sourceModel][i.field],
reverse: !i.ascending
}))
}
if (this._filterInfo) {
const filters = Object.entries(this._filterInfo)
.filter(([key, values]) => {
if (this.sourceModel === SourceOptions.TTD) {
if (key === 'target') {
return;
}
}
if (!this.fields[this.sourceModel][key]) return;
return values.length
})
.map(([key, values]) => {
const filter = {
field: this.fields[this.sourceModel][key]
};
switch (key) {
case 'target':
filter.terms = values.map(v => {
const chip = this.ngbTargetPanelService.getGeneIdByChip(v);
return chip ? chip : '';
});
return filter;
case 'disease':
case 'clinical status':
case 'TTD target':
filter.terms = Array.isArray(values) ? values.map(v => v) : [values];
return filter;
default:
filter.range = {
from: Number(values),
to: '1.0'
}
return filter;
}
});
if (filters && filters.length) {
request.filters = filters;
}
}
return request;
}