From cbb25e83779914d9dca00d573d8557b1ed05090e Mon Sep 17 00:00:00 2001 From: Sam Macbeth Date: Thu, 29 Oct 2020 16:51:18 +0100 Subject: [PATCH] Switch to staging endpoints by running `setStagingEnabled(true)` in console. --- src/background.js | 1 + src/config.js | 30 ++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/background.js b/src/background.js index 9168140..b37ba9c 100644 --- a/src/background.js +++ b/src/background.js @@ -69,6 +69,7 @@ const lookForAccessToken = async () => { } async function start() { + await setupEndpoints; lookForAccessToken(); browser.webRequest.onBeforeSendHeaders.addListener(async (details) => { diff --git a/src/config.js b/src/config.js index 0cf63b2..c012ecc 100644 --- a/src/config.js +++ b/src/config.js @@ -1,4 +1,30 @@ let DEBUG = false; -let API_BASE_URL = DEBUG ? 'http://localhost:5000' : 'https://ghosterysearch.com'; -let SERP_BASE_URL = DEBUG ? 'http://localhost' : 'https://ghosterysearch.com'; +const STAGING_BASE_URL = 'https://staging.ghosterysearch.com'; +const PROD_BASE_URL = 'https://ghosterysearch.com'; +let API_BASE_URL = DEBUG ? 'http://localhost:5000' : PROD_BASE_URL; +let SERP_BASE_URL = DEBUG ? 'http://localhost' : PROD_BASE_URL; let AUTH_BASE_URL = 'https://consumerapi.ghostery.com/api/v2'; + +const setupEndpoints = (async function() { + const USE_STAGING = (await browser.storage.local.get('USE_STAGING'))['USE_STAGING']; + if (USE_STAGING) { + AUTH_BASE_URL = AUTH_BASE_URL.replace('.ghostery.com', '.ghosterystage.com'); + console.log(`USING_STAGING: AUTH_BASE_URL=${AUTH_BASE_URL}`) + // only switch to staging search if DEBUG is disabled + if (!DEBUG) { + API_BASE_URL = STAGING_BASE_URL; + SERP_BASE_URL = STAGING_BASE_URL; + console.log(`USING_STAGING: Redirecting ghosterysearch.com to staging.ghosterysearch.com`) + browser.webRequest.onBeforeRequest.addListener(async (details) => { + return { + redirectUrl: details.url.replace(PROD_BASE_URL, STAGING_BASE_URL), + } + }, { urls: [`${PROD_BASE_URL}/*`]}, ["blocking"]); + } + } +})(); + +window.setStagingEnabled = async (shouldUseStaging) => { + await browser.storage.local.set({ USE_STAGING: shouldUseStaging }); + document.location.reload(); +}