diff --git a/src/CONST.js b/src/CONST.js index accd263483f4..5c1b20f1f3db 100755 --- a/src/CONST.js +++ b/src/CONST.js @@ -280,6 +280,9 @@ const CONST = { CFPB_PREPAID_URL: 'https://cfpb.gov/prepaid', STAGING_NEW_EXPENSIFY_URL: 'https://staging.new.expensify.com', NEWHELP_URL: 'https://help.expensify.com', + INTERNAL_DEV_EXPENSIFY_URL: 'https://www.expensify.com.dev', + STAGING_EXPENSIFY_URL: 'https://staging.expensify.com', + EXPENSIFY_URL: 'https://www.expensify.com', // Use Environment.getEnvironmentURL to get the complete URL with port number DEV_NEW_EXPENSIFY_URL: 'http://localhost:', diff --git a/src/libs/Environment/Environment.js b/src/libs/Environment/Environment.js index a14300520bb5..bdba9f20d12d 100644 --- a/src/libs/Environment/Environment.js +++ b/src/libs/Environment/Environment.js @@ -10,6 +10,12 @@ const ENVIRONMENT_URLS = { [CONST.ENVIRONMENT.PRODUCTION]: CONST.NEW_EXPENSIFY_URL, }; +const OLDDOT_ENVIRONMENT_URLS = { + [CONST.ENVIRONMENT.DEV]: CONST.INTERNAL_DEV_EXPENSIFY_URL, + [CONST.ENVIRONMENT.STAGING]: CONST.STAGING_EXPENSIFY_URL, + [CONST.ENVIRONMENT.PRODUCTION]: CONST.EXPENSIFY_URL, +}; + /** * Are we running the app in development? * @@ -31,8 +37,19 @@ function getEnvironmentURL() { }); } +/** + * Get the corresponding oldDot URL based on the environment we are in + * + * @returns {Promise} + */ +function getOldDotEnvironmentURL() { + return getEnvironment() + .then(environment => OLDDOT_ENVIRONMENT_URLS[environment]); +} + export { getEnvironment, isDevelopment, getEnvironmentURL, + getOldDotEnvironmentURL, }; diff --git a/src/libs/actions/Link.js b/src/libs/actions/Link.js index bb978b331e20..53984be930a5 100644 --- a/src/libs/actions/Link.js +++ b/src/libs/actions/Link.js @@ -6,9 +6,10 @@ import ONYXKEYS from '../../ONYXKEYS'; import Growl from '../Growl'; import * as Localize from '../Localize'; import CONST from '../../CONST'; -import CONFIG from '../../CONFIG'; import asyncOpenURL from '../asyncOpenURL'; import * as API from '../API'; +import * as Environment from '../Environment/Environment'; +import * as Url from '../Url'; let isNetworkOffline = false; Onyx.connect({ @@ -38,7 +39,7 @@ function showGrowlIfOffline() { function openOldDotLink(url) { /** * @param {String} [shortLivedAuthToken] - * @returns {String} + * @returns {Promise} */ function buildOldDotURL(shortLivedAuthToken) { const hasHashParams = url.indexOf('#') !== -1; @@ -49,8 +50,13 @@ function openOldDotLink(url) { const params = _.compact([authTokenParam, emailParam]).join('&'); - // If the URL contains # or ?, we can assume they don't need to have the `?` token to start listing url parameters. - return `${CONFIG.EXPENSIFY.EXPENSIFY_URL}${url}${hasHashParams || hasURLParams ? '&' : '?'}${params}`; + return Environment.getOldDotEnvironmentURL() + .then((environmentURL) => { + const oldDotDomain = Url.addTrailingForwardSlash(environmentURL); + + // If the URL contains # or ?, we can assume they don't need to have the `?` token to start listing url parameters. + return `${oldDotDomain}${url}${hasHashParams || hasURLParams ? '&' : '?'}${params}`; + }); } if (isNetworkOffline) { @@ -63,9 +69,13 @@ function openOldDotLink(url) { API.makeRequestWithSideEffects( 'OpenOldDotLink', {}, {}, ).then((response) => { - Linking.openURL(buildOldDotURL(response.shortLivedAuthToken)); + buildOldDotURL(response.shortLivedAuthToken).then((oldDotUrl) => { + Linking.openURL(oldDotUrl); + }); }).catch(() => { - Linking.openURL(buildOldDotURL()); + buildOldDotURL().then((oldDotUrl) => { + Linking.openURL(oldDotUrl); + }); }); }