From 3edd0db12322aa60b6c872cd754b6aacdd4c3dfc Mon Sep 17 00:00:00 2001 From: "Hartung, Michael" <michael.hartung@uni-hamburg.de> Date: Fri, 4 Nov 2022 23:07:54 +0100 Subject: [PATCH] variable backend URL --- .../analysis-panel.component.ts | 4 +-- .../components/network/network.component.ts | 1 - .../privacy-banner.component.ts | 1 - src/app/config.ts | 2 ++ .../add-expressed-proteins.component.ts | 5 +-- src/app/services/analysis/analysis.service.ts | 4 +-- .../netex-controller.service.ts | 32 ++++++++++++------- src/index.html | 2 +- 8 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/app/components/analysis-panel/analysis-panel.component.ts b/src/app/components/analysis-panel/analysis-panel.component.ts index be1a6a75..e74a5f04 100644 --- a/src/app/components/analysis-panel/analysis-panel.component.ts +++ b/src/app/components/analysis-panel/analysis-panel.component.ts @@ -357,7 +357,7 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit } private async getTask(token: string): Promise<any> { - return await this.http.get(`${environment.backend}task/?token=${token}`).toPromise(); + return await this.http.get(`${this.netex.getBackend()}task/?token=${token}`).toPromise(); } close() { @@ -410,7 +410,7 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit } public downloadLink(view: string): string { - return `${environment.backend}task_result/?token=${this.token}&view=${view}&fmt=csv`; + return `${this.netex.getBackend()}task_result/?token=${this.token}&view=${view}&fmt=csv`; } /** diff --git a/src/app/components/network/network.component.ts b/src/app/components/network/network.component.ts index 5487e379..d2cde1f3 100644 --- a/src/app/components/network/network.component.ts +++ b/src/app/components/network/network.component.ts @@ -532,7 +532,6 @@ export class NetworkComponent implements OnInit { if (!node) { continue; } - console.log(node); const pos = this.networkHandler.activeNetwork.networkInternal.getPositions([node.id]); node.x = pos[node.id].x; node.y = pos[node.id].y; diff --git a/src/app/components/privacy-banner/privacy-banner.component.ts b/src/app/components/privacy-banner/privacy-banner.component.ts index 57534396..9fd49fea 100644 --- a/src/app/components/privacy-banner/privacy-banner.component.ts +++ b/src/app/components/privacy-banner/privacy-banner.component.ts @@ -10,7 +10,6 @@ export class PrivacyBannerComponent implements OnInit { constructor() { } ngOnInit(): void { - console.log(localStorage.getItem(this.privacyBannerCookieKey) ) if (localStorage.getItem(this.privacyBannerCookieKey) === 'true') { this.disable(); }; diff --git a/src/app/config.ts b/src/app/config.ts index 9fd9175a..6ec2ddea 100644 --- a/src/app/config.ts +++ b/src/app/config.ts @@ -40,6 +40,7 @@ export type InteractionDatabase = 'omnipath'; export interface IConfig { title: string; + backendUrl: string; legendUrl: string; legendClass: string; legendPos: 'left' | 'right'; @@ -135,6 +136,7 @@ connectorNodeGroup.groupName = 'Connector Nodes'; */ export const defaultConfig: IConfig = { title: 'Drugst.One', + backendUrl: '', legendUrl: '', legendClass: 'legend', legendPos: 'left', diff --git a/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts b/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts index e5f74c2e..730bb1a9 100644 --- a/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts +++ b/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts @@ -3,6 +3,7 @@ import {AnalysisService} from '../../services/analysis/analysis.service'; import {getWrapperFromNode, Node, Tissue, NodeAttributeMap} from '../../interfaces'; import {environment} from '../../../environments/environment'; import {HttpClient} from '@angular/common/http'; +import { NetexControllerService } from 'src/app/services/netex-controller/netex-controller.service'; @Component({ selector: 'app-add-expressed-proteins', @@ -29,7 +30,7 @@ export class AddExpressedProteinsComponent implements OnChanges { public addedCount: number | null = null; public loading = false; - constructor(private http: HttpClient, private analysis: AnalysisService) { + constructor(private http: HttpClient, private analysis: AnalysisService, private netex: NetexControllerService) { } ngOnChanges(changes: SimpleChanges): void { @@ -38,7 +39,7 @@ export class AddExpressedProteinsComponent implements OnChanges { public async addProteins() { this.loading = true; - const result = await this.http.post<any>(`${environment.backend}query_tissue_proteins/`, + const result = await this.http.post<any>(`${this.netex.getBackend()}query_tissue_proteins/`, {tissueId: this.selectedTissue.drugstoneId, threshold: this.threshold}).toPromise(); const items = []; for (const detail of result) { diff --git a/src/app/services/analysis/analysis.service.ts b/src/app/services/analysis/analysis.service.ts index 9304b038..38ff9a90 100644 --- a/src/app/services/analysis/analysis.service.ts +++ b/src/app/services/analysis/analysis.service.ts @@ -282,7 +282,7 @@ export class AnalysisService { }; - const resp = await this.http.post<any>(`${environment.backend}task/`, { + const resp = await this.http.post<any>(`${this.netex.getBackend()}task/`, { algorithm: algorithm, target: target, parameters: parameters, @@ -307,7 +307,7 @@ export class AnalysisService { }); return ''; } - const resp = await this.http.post<any>(`${environment.backend}task/`, { + const resp = await this.http.post<any>(`${this.netex.getBackend()}task/`, { algorithm, target, parameters, diff --git a/src/app/services/netex-controller/netex-controller.service.ts b/src/app/services/netex-controller/netex-controller.service.ts index 2701e463..e48c865c 100644 --- a/src/app/services/netex-controller/netex-controller.service.ts +++ b/src/app/services/netex-controller/netex-controller.service.ts @@ -4,27 +4,35 @@ import {HttpClient, HttpParams} from '@angular/common/http'; import {Observable} from 'rxjs'; import {Tissue, Node, EdgeType, QuickAlgorithmType, AlgorithmType} from 'src/app/interfaces'; import {InteractionDrugProteinDB, InteractionProteinProteinDB} from 'src/app/config'; +import { DrugstoneConfigService } from '../drugstone-config/drugstone-config.service'; @Injectable({ providedIn: 'root' }) export class NetexControllerService { - constructor(private http: HttpClient) { + + constructor(private http: HttpClient, private drugstoneConfig: DrugstoneConfigService) { + } + + public getBackend() { + return this.drugstoneConfig.config.backendUrl || environment.backend; } public async getTasks(tokens): Promise<any> { + console.log(this.drugstoneConfig.config.backendUrl) + console.log(this.getBackend()) /** * returns promise of tasks status */ - return this.http.post<any>(`${environment.backend}tasks/`, {tokens: JSON.stringify(tokens)}).toPromise(); + return this.http.post<any>(`${this.getBackend()}tasks/`, {tokens: JSON.stringify(tokens)}).toPromise(); } public getTaskResult(token) { /** * returns promise of task result of COMPLETED task */ - return this.http.get<any>(`${environment.backend}task_result/?token=${token}`).toPromise(); + return this.http.get<any>(`${this.getBackend()}task_result/?token=${token}`).toPromise(); } public async mapNodes(nodes, identifier): Promise<any> { @@ -33,14 +41,14 @@ export class NetexControllerService { * Returns list of mapped nodes if node was found, otherwise original node to not lose information */ const payload = {nodes: nodes, identifier: identifier}; - return this.http.post(`${environment.backend}map_nodes/`, payload).toPromise(); + return this.http.post(`${this.getBackend()}map_nodes/`, payload).toPromise(); } public tissues(): Observable<any> { /** * Lists all available tissues with id and name */ - return this.http.get<Tissue[]>(`${environment.backend}tissues/`); + return this.http.get<Tissue[]>(`${this.getBackend()}tissues/`); } public digest_request(payload): Promise<any> { @@ -50,7 +58,7 @@ export class NetexControllerService { public maxTissueExpression(tissue: Tissue): Promise<any> { const params = new HttpParams() .set('tissue', tissue.drugstoneId); - return this.http.get(environment.backend + 'tissue_max_expression/', {params}).toPromise(); + return this.http.get(this.getBackend() + 'tissue_max_expression/', {params}).toPromise(); } @@ -64,7 +72,7 @@ export class NetexControllerService { tissue: tissue.drugstoneId, proteins: JSON.stringify(genesBackendIds) } - return this.http.post(`${environment.backend}tissue_expression/`, payload); + return this.http.post(`${this.getBackend()}tissue_expression/`, payload); } public adjacentDisorders(nodes: Node[], nodeType: string, dataset: string, licenced: boolean): Observable<any> { @@ -74,7 +82,7 @@ export class NetexControllerService { } else if (nodeType === 'drugs') { params['drugs'] = nodes.map((node: Node) => node.drugId && node.drugstoneType === 'drug' ? node.drugstoneId.slice(2) : undefined).filter(id => id != null); } - return this.http.post<any>(`${environment.backend}adjacent_disorders/`, params); + return this.http.post<any>(`${this.getBackend()}adjacent_disorders/`, params); } public adjacentDrugs(pdiDataset: InteractionDrugProteinDB, licenced: boolean, nodes: Node[]): Observable<any> { @@ -88,7 +96,7 @@ export class NetexControllerService { proteins: genesBackendIds, licenced: licenced }; - return this.http.post<any>(`${environment.backend}adjacent_drugs/`, params); + return this.http.post<any>(`${this.getBackend()}adjacent_drugs/`, params); } public graphExport(graph_data: { edges: EdgeType[], nodes: Node[] }) { @@ -96,7 +104,7 @@ export class NetexControllerService { * Sends complete graph data to backend where it is written to graphml or json File. * The file is returned as download for the user. */ - return this.http.post(`${environment.backend}graph_export/`, graph_data, {responseType: 'text'}); + return this.http.post(`${this.getBackend()}graph_export/`, graph_data, {responseType: 'text'}); } public async fetchEdges(nodes: Node[], dataset: InteractionProteinProteinDB, licenced: boolean): Promise<any> { @@ -105,7 +113,7 @@ export class NetexControllerService { * Returns list of mapped nodes if node was found, otherwise original node to not lose information */ const payload = {nodes: nodes, dataset: dataset, licenced: licenced}; - return this.http.post(`${environment.backend}fetch_edges/`, payload).toPromise(); + return this.http.post(`${this.getBackend()}fetch_edges/`, payload).toPromise(); } @@ -113,6 +121,6 @@ export class NetexControllerService { /** * returns promise of task status */ - return this.http.get(`${environment.backend}get_license`).toPromise(); + return this.http.get(`${this.getBackend()}get_license`).toPromise(); } } diff --git a/src/index.html b/src/index.html index fa27760b..52ec8c03 100644 --- a/src/index.html +++ b/src/index.html @@ -112,7 +112,7 @@ Export As Graphml Button<br> <drugst-one id="tatata" groups='{ "nodeGroups" : { "selectedNode": { "borderWidth": 3,"borderWidthSelected": 4,"color": { "border": "#ff1818","highlight": {"border": "#ff1818"}},"font": { "color": "#F8981","size": 14 }},"Protein":{"shape":"circle","groupName":"Protein","type":"Protein","color":"#172b4d","font":{"color":"#ffffff"}}}}' - config='{ "identifier":"symbol","title":"ROBUST output network", "taskDrugName": "Drug Search", "showLegendNodes": true, "showLegendEdges": true, "showSidebar": "left", "showOverview": true, "legendPos": "left", "legendClass": "legend", "showQuery": true, "showItemSelector": true,"showSimpleAnalysis": false,"showAdvAnalysis": true,"showSelection": true,"showTasks": true,"showNetworkMenu": "right","showLegend": true,"showNetworkMenuButtonExpression": true, "showNetworkMenuButtonScreenshot": true,"showNetworkMenuButtonExportGraphml": true,"showNetworkMenuButtonAdjacentDrugs": true,"showNetworkMenuButtonCenter": true,"showConnectGenes": false,"networkMenuButtonAdjacentDrugsLabel": "Drugs","showNetworkMenuButtonAdjacentDisordersProteins": true,"networkMenuButtonAdjacentDisordersProteinsLabel": "Disorders (protein)","showNetworkMenuButtonAdjacentDisordersDrugs": true,"networkMenuButtonAdjacentDisordersDrugsLabel": "Disorders (drug)","showNetworkMenuButtonAnimation": true,"networkMenuButtonAnimationLabel": "Animation", "autofillEdges": true, "physicsOn": false,"useNedrexLicenced": true,"selfReferences": false, "interactionDrugProtein": "NeDRex", "indicationDrugDisorder": "NeDRex","nodeShadow": true,"edgeShadow": true, "algorithms": {"drug": ["trustrank", "closeness", "degree", "proximity"], "drug-target": ["trustrank", "multisteiner", "keypathwayminer", "degree", "closeness", "betweenness"]}, "associatedProteinDisorder": "NeDRex", "expandNetworkMenu": true}' + config='{"identifier":"symbol","title":"ROBUST output network", "taskDrugName": "Drug Search", "showLegendNodes": true, "showLegendEdges": true, "showSidebar": "left", "showOverview": true, "legendPos": "left", "legendClass": "legend", "showQuery": true, "showItemSelector": true,"showSimpleAnalysis": false,"showAdvAnalysis": true,"showSelection": true,"showTasks": true,"showNetworkMenu": "right","showLegend": true,"showNetworkMenuButtonExpression": true, "showNetworkMenuButtonScreenshot": true,"showNetworkMenuButtonExportGraphml": true,"showNetworkMenuButtonAdjacentDrugs": true,"showNetworkMenuButtonCenter": true,"showConnectGenes": false,"networkMenuButtonAdjacentDrugsLabel": "Drugs","showNetworkMenuButtonAdjacentDisordersProteins": true,"networkMenuButtonAdjacentDisordersProteinsLabel": "Disorders (protein)","showNetworkMenuButtonAdjacentDisordersDrugs": true,"networkMenuButtonAdjacentDisordersDrugsLabel": "Disorders (drug)","showNetworkMenuButtonAnimation": true,"networkMenuButtonAnimationLabel": "Animation", "autofillEdges": true, "physicsOn": false,"useNedrexLicenced": true,"selfReferences": false, "interactionDrugProtein": "NeDRex", "indicationDrugDisorder": "NeDRex","nodeShadow": true,"edgeShadow": true, "algorithms": {"drug": ["trustrank", "closeness", "degree", "proximity"], "drug-target": ["trustrank", "multisteiner", "keypathwayminer", "degree", "closeness", "betweenness"]}, "associatedProteinDisorder": "NeDRex", "expandNetworkMenu": true}' network='{"nodes": [{"id":"PSEN1","group":"Protein","label":"PSEN1"},{"id":"PSEN2","group":"Protein","label":"PSEN2"},{"id":"APP","group":"Protein","label":"APP"},{"id":"APOE","group":"Protein","label":"APOE"},{"id":"RNF32","group":"Protein","label":"RNF32"},{"id":"STX5","group":"Protein","label":"STX5"},{"id":"TRAF3IP1","group":"Protein","label":"TRAF3IP1"},{"id":"PHB1","group":"Protein","label":"PHB1"},{"id":"MAPT","group":"Protein","label":"MAPT"},{"id":"ESR1","group":"Protein","label":"ESR1"},{"id":"IRF3","group":"Protein","label":"IRF3"},{"id":"DYNC1H1","group":"Protein","label":"DYNC1H1"},{"id":"CUL3","group":"Protein","label":"CUL3"},{"id":"HMGB1","group":"Protein","label":"HMGB1"},{"id":"DNAJC7","group":"Protein","label":"DNAJC7"},{"id":"NEFM","group":"Protein","label":"NEFM"},{"id":"DISC1","group":"Protein","label":"DISC1"},{"id":"PPP5C","group":"Protein","label":"PPP5C"},{"id":"CTNNB1","group":"Protein","label":"CTNNB1"},{"id":"KRAS","group":"Protein","label":"KRAS"}]}' ></drugst-one> -- GitLab