diff --git a/functions/network.js b/functions/network.js index 7ed233cf8..a2c885be5 100644 --- a/functions/network.js +++ b/functions/network.js @@ -1,5 +1,4 @@ import AxiosStrategy from "./strategies/AxiosStrategy"; -import ProxyStrategy from "./strategies/ProxyStrategy"; import FirefoxStrategy from "./strategies/FirefoxStrategy"; @@ -10,10 +9,6 @@ const runAppropriateStrategy = (req, store) => { return FirefoxStrategy(req, store); } - if (store.state.postwoman.settings.PROXY_ENABLED) { - return ProxyStrategy(req, store); - } - return AxiosStrategy(req, store); } diff --git a/functions/strategies/AxiosStrategy.js b/functions/strategies/AxiosStrategy.js index 9bef30aef..10ab56a2f 100644 --- a/functions/strategies/AxiosStrategy.js +++ b/functions/strategies/AxiosStrategy.js @@ -1,8 +1,24 @@ import axios from "axios"; -const axiosStrategy = async (req, _store) => { +const axiosWithProxy = async (req, store) => { + const { data } = await axios.post( + store.state.postwoman.settings.PROXY_URL || + "https://postwoman.apollotv.xyz/", + req + ); + return data; +} + +const axiosWithoutProxy = async (req, _store) => { const res = await axios(req); return res; }; +const axiosStrategy = (req, store) => { + if (store.state.postwoman.settings.PROXY_ENABLED) { + return axiosWithProxy(req, store); + } + return axiosWithoutProxy(req, store); +} + export default axiosStrategy; diff --git a/functions/strategies/FirefoxStrategy.js b/functions/strategies/FirefoxStrategy.js index 77b15f453..10d5a09ec 100644 --- a/functions/strategies/FirefoxStrategy.js +++ b/functions/strategies/FirefoxStrategy.js @@ -1,10 +1,33 @@ -const firefoxStrategy = (req, _store) => new Promise((resolve, reject) => { +const firefoxWithProxy = (req, store) => new Promise((resolve, reject) => { + const eventListener = (event) => { + window.removeEventListener("firefoxExtSendRequestComplete", event); + + if (event.detail.error) { + reject(JSON.parse(event.detail.error)); + } else { + resolve(JSON.parse(event.detail.response)); + } + }; + + window.addEventListener("firefoxExtSendRequestComplete", eventListener); + + window.firefoxExtSendRequest({ + method: "post", + url: store.state.postwoman.settings.PROXY_URL || "https://postwoman.apollotv.xyz/", + data: req + }); +}); + +const firefoxWithoutProxy = (req, _store) => new Promise((resolve, reject) => { const eventListener = (event) => { window.removeEventListener("firefoxExtSendRequestComplete", eventListener); - if (event.detail.error) reject(JSON.parse(event.detail.error)); - else resolve(JSON.parse(event.detail.response)); + if (event.detail.error) { + reject(JSON.parse(event.detail.error)); + } else { + resolve(JSON.parse(event.detail.response)); + } }; window.addEventListener("firefoxExtSendRequestComplete", eventListener); @@ -12,4 +35,11 @@ const firefoxStrategy = (req, _store) => new Promise((resolve, reject) => { window.firefoxExtSendRequest(req); }); +const firefoxStrategy = (req, store) => { + if (store.state.postwoman.settings.PROXY_ENABLED) { + return firefoxWithProxy(req, store); + } + return firefoxWithoutProxy(req, store); +} + export default firefoxStrategy; diff --git a/functions/strategies/ProxyStrategy.js b/functions/strategies/ProxyStrategy.js deleted file mode 100644 index 0b6f50b0f..000000000 --- a/functions/strategies/ProxyStrategy.js +++ /dev/null @@ -1,12 +0,0 @@ -import axios from "axios"; - -const proxyStrategy = async (req, store) => { - const { data } = await axios.post( - store.state.postwoman.settings.PROXY_URL || - "https://postwoman.apollotv.xyz/", - req - ); - return data; -}; - -export default proxyStrategy;