diff --git a/src/client/features/search/index.js b/src/client/features/search/index.js index 9478e7be..71e8615a 100644 --- a/src/client/features/search/index.js +++ b/src/client/features/search/index.js @@ -17,8 +17,6 @@ const { ErrorMessage } = require('../../common/components/error-message'); const { FeatureView } = require('./feature-view'); const { Contribute } = require('../../common/components/contribute'); -const { PC_URL } = require('../../../config'); - class Search extends React.Component { constructor(props) { @@ -67,6 +65,9 @@ class Search extends React.Component { componentDidMount() { this.getSearchResult(); + ServerAPI.getPCURL().then(PC_URL => { + this.PC_URL = PC_URL; + }); } onSearchValueChange(e) { @@ -144,22 +145,22 @@ class Search extends React.Component { return h('div.search', [ h('div.search-nav-links', [ h('a', { - href: PC_URL, + href: this.PC_URL, target: '_blank' }, 'About'), h('a', { - href: PC_URL + '#faq', + href: this.PC_URL + '#faq', target: '_blank' }, 'FAQ'), h('a', { - href: PC_URL + '#training', + href: this.PC_URL + '#training', target: '_blank' }, 'Training'), h('a', { - href: PC_URL + '#data', + href: this.PC_URL + '#data', target: '_blank' }, 'Data'), @@ -169,7 +170,7 @@ class Search extends React.Component { // }, 'Tools'), h('a', { - href: PC_URL + '#contact', + href: this.PC_URL + '#contact', target: '_blank' }, 'Contact'), diff --git a/src/client/services/server-api/index.js b/src/client/services/server-api/index.js index c23d0993..d048a887 100644 --- a/src/client/services/server-api/index.js +++ b/src/client/services/server-api/index.js @@ -1,7 +1,7 @@ const qs = require('query-string'); const _ = require('lodash'); -const { PC_URL } = require('../../../config'); +let PC_URL; const { fetch } = require('../../../util'); const defaultFetchOpts = { @@ -12,6 +12,19 @@ const defaultFetchOpts = { }; const ServerAPI = { + getPCURL(){ + if( PC_URL ){ + return Promise.resolve(PC_URL); + } else { + return fetch('/api/pc/baseURL') + .then( res => res.text() ) + .then( baseUrl => { + PC_URL = baseUrl; + return PC_URL; + }); + } + }, + // a generic method that gets pathway sbgn json from various sources // e.g. pathwaycommons, factoid, or human created layouts getAPIResource(opts){ @@ -109,7 +122,10 @@ const ServerAPI = { }, downloadFileFromPathwayCommons( uri, format ){ - return fetch(PC_URL + 'pc2/get?' + qs.stringify({ uri, format}), defaultFetchOpts); + return this.getPCURL() + .then( url => { + return fetch(url + 'pc2/get?' + qs.stringify({ uri, format}), defaultFetchOpts); + }); }, search(query){ diff --git a/src/server/routes/pathway-commons-router.js b/src/server/routes/pathway-commons-router.js index 4dfb71d4..fd97caaf 100644 --- a/src/server/routes/pathway-commons-router.js +++ b/src/server/routes/pathway-commons-router.js @@ -4,6 +4,11 @@ const pc = require('../external-services/pathway-commons'); const router = express.Router(); +const { PC_URL } = require('../../config'); + +router.get('/baseURL', function (req, res) { + res.send(PC_URL); +}); router.get('/search', function (req, res) { pc.search(req.query).then(r => res.json(r)); diff --git a/src/server/routes/search/search.js b/src/server/routes/search/search.js index 8dc01d9a..d8024f31 100644 --- a/src/server/routes/search/search.js +++ b/src/server/routes/search/search.js @@ -1,5 +1,5 @@ const _ = require('lodash'); -const logger = require('../../logger'); +// const logger = require('../../logger'); const url = require('url'); const luceneEscapeQuery = require('lucene-escape-query'); const { NS_NCBI_GENE, NS_HGNC_SYMBOL, NS_UNIPROT } = require('../../../config');