diff --git a/packages/server/api/details.js b/packages/server/api/details.js index 18dd9da331..706712aca6 100644 --- a/packages/server/api/details.js +++ b/packages/server/api/details.js @@ -1,10 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('/payments/details', { merchantAccount, ...request }); - - post(params, (err, response, body) => handleCallback({ err, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('/payments/details', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/donation.js b/packages/server/api/donation.js index d69e68e3d3..c5548baa14 100644 --- a/packages/server/api/donation.js +++ b/packages/server/api/donation.js @@ -1,9 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('donations', { merchantAccount, shopperInteraction: 'ContAuth', ...request }); - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('donations', { merchantAccount, shopperInteraction: 'ContAuth', ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/donationCampaign.js b/packages/server/api/donationCampaign.js index 08a040dc59..8ae9e635e5 100644 --- a/packages/server/api/donationCampaign.js +++ b/packages/server/api/donationCampaign.js @@ -1,9 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('donationCampaigns', { merchantAccount, ...request }); - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('donationCampaigns', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/mock/addressSearch.js b/packages/server/api/mock/addressSearch.js index 143e3b4039..320d6f2d20 100644 --- a/packages/server/api/mock/addressSearch.js +++ b/packages/server/api/mock/addressSearch.js @@ -1,7 +1,3 @@ -const { post } = require('request'); -const handleCallback = require('../../utils/handleCallback'); -const { MERCHANT_ACCOUNT: merchantAccount } = require('../../utils/config'); - module.exports = (res, request) => { const MOCK_ADDRESS_ARRAY = [ { diff --git a/packages/server/api/orders.js b/packages/server/api/orders.js index f3a365363b..75518f5b89 100644 --- a/packages/server/api/orders.js +++ b/packages/server/api/orders.js @@ -1,10 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('orders', { merchantAccount, ...request }); - - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('orders', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/ordersCancel.js b/packages/server/api/ordersCancel.js index 189201e612..b303af47b7 100644 --- a/packages/server/api/ordersCancel.js +++ b/packages/server/api/ordersCancel.js @@ -1,10 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('orders/cancel', { merchantAccount, ...request }); - - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('orders/cancel', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/originKeys.js b/packages/server/api/originKeys.js deleted file mode 100644 index 7856e6f9fb..0000000000 --- a/packages/server/api/originKeys.js +++ /dev/null @@ -1,10 +0,0 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); -const handleCallback = require('../utils/handleCallback'); - -module.exports = (res, request) => { - const originDomains = [`${request.protocol}://${request.headers.host}`]; - const params = getPostParameters('originKeys', { originDomains }); - - post(params, (err, response, body) => handleCallback({ err, response, body }, res)); -}; diff --git a/packages/server/api/paymentMethods.js b/packages/server/api/paymentMethods.js index 21babac252..1ea6518c69 100644 --- a/packages/server/api/paymentMethods.js +++ b/packages/server/api/paymentMethods.js @@ -1,9 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('paymentMethods', { merchantAccount, ...request }); - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('paymentMethods', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/paymentMethodsBalance.js b/packages/server/api/paymentMethodsBalance.js index f888860f7f..e49862234a 100644 --- a/packages/server/api/paymentMethodsBalance.js +++ b/packages/server/api/paymentMethodsBalance.js @@ -1,10 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('/paymentMethods/balance', { merchantAccount, ...request }); - - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('/paymentMethods/balance', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/payments.js b/packages/server/api/payments.js index c5de8170de..00ade16955 100644 --- a/packages/server/api/payments.js +++ b/packages/server/api/payments.js @@ -1,9 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('/payments', { merchantAccount, ...request }); - post(params, (err, response, body) => handleCallback({ err, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('/payments', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/paypalUpdateOrder.js b/packages/server/api/paypalUpdateOrder.js index a0e5f2ac0f..fc46c6564d 100644 --- a/packages/server/api/paypalUpdateOrder.js +++ b/packages/server/api/paypalUpdateOrder.js @@ -1,9 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('paypal/updateOrder', { ...request }); - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('paypal/updateOrder', { ...request }); + handleCallback(response, res); }; diff --git a/packages/server/api/sessions.js b/packages/server/api/sessions.js index 5a163220a3..83394d66aa 100644 --- a/packages/server/api/sessions.js +++ b/packages/server/api/sessions.js @@ -1,9 +1,8 @@ -const { post } = require('request'); -const getPostParameters = require('../utils/getPostParameters'); +const makePostRequest = require('../utils/makePostRequest'); const handleCallback = require('../utils/handleCallback'); const { MERCHANT_ACCOUNT: merchantAccount } = require('../utils/config'); -module.exports = (res, request) => { - const params = getPostParameters('sessions', { merchantAccount, ...request }); - post(params, (error, response, body) => handleCallback({ error, response, body }, res)); +module.exports = async (res, request) => { + const response = await makePostRequest('sessions', { merchantAccount, ...request }); + handleCallback(response, res); }; diff --git a/packages/server/index.js b/packages/server/index.js index 8e7326b188..1cf9152b04 100644 --- a/packages/server/index.js +++ b/packages/server/index.js @@ -3,7 +3,6 @@ const express = require('express'); require('dotenv').config({ path: path.resolve('../../', '.env') }); const getPaymentMethods = require('./api/paymentMethods'); const getPaymentMethodsBalance = require('./api/paymentMethodsBalance'); -const getOriginKeys = require('./api/originKeys'); const makePayment = require('./api/payments'); const postDetails = require('./api/details'); const createOrder = require('./api/orders'); @@ -25,8 +24,6 @@ module.exports = (app = express(), options = {}) => { next(); }); - app.all('/originKeys', (req, res) => getOriginKeys(res, req)); - app.all('/paypal/updateOrder', (req, res) => paypalUpdateOrder(res, req.body)); app.all('/paymentMethods', (req, res) => getPaymentMethods(res, req.body)); diff --git a/packages/server/package.json b/packages/server/package.json index 11c2c6787e..4503b228d0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -23,8 +23,7 @@ "devDependencies": { "cross-env": "^7.0.3", "dotenv": "16.4.4", - "express": "^4.20.0", - "request": "^2.81.0" + "express": "^4.20.0" }, "dependencies": {} } diff --git a/packages/server/utils/handleCallback.js b/packages/server/utils/handleCallback.js index ce057b660c..f68be5f20b 100644 --- a/packages/server/utils/handleCallback.js +++ b/packages/server/utils/handleCallback.js @@ -1,12 +1,17 @@ -module.exports = ({ error, response = {}, body }, res) => { - if (error) { - console.error(error); - return res.send(error); - } +module.exports = async (response, res) => { + try { + if (!response.ok) { + console.error(`Request to ${res.req.url} ended with status ${response.status} - ${response.statusText}`); + return res.status(response.status).send({ + status: response.status, + message: response.statusText + }); + } - if (response.statusCode && response.statusMessage) { - console.log(`Request to ${res.req.url} ended with status ${response.statusCode} - ${response.statusMessage}`); + const body = await response.json(); + res.send(body); + } catch (error) { + console.error(error); + res.status(500).send({ error: 'Internal Server Error' }); } - - res.send(body); }; diff --git a/packages/server/utils/getPostParameters.js b/packages/server/utils/makePostRequest.js similarity index 50% rename from packages/server/utils/getPostParameters.js rename to packages/server/utils/makePostRequest.js index f1500bd764..8b8c92fb33 100644 --- a/packages/server/utils/getPostParameters.js +++ b/packages/server/utils/makePostRequest.js @@ -3,14 +3,13 @@ const { CHECKOUT_API_KEY, CHECKOUT_URL } = require('./config'); module.exports = (endpoint, request) => { const body = JSON.stringify(request); - return { + return fetch(`${CHECKOUT_URL}/${endpoint}`, { + method: 'POST', body, - url: `${CHECKOUT_URL}/${endpoint}`, headers: { - 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json', - 'Content-Length': Buffer.byteLength(body, 'utf8'), - 'X-Api-Key': CHECKOUT_API_KEY + 'Content-Length': Buffer.byteLength(body, 'utf8'), // Content length in bytes + 'X-Api-Key': CHECKOUT_API_KEY // API key added to headers } - }; + }); };