getRequest()

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;
    }