diff options
Diffstat (limited to 'api')
| -rw-r--r-- | api/_env.js | 33 | ||||
| -rw-r--r-- | api/_env.js.map | 1 | ||||
| -rw-r--r-- | api/_paypal.js | 200 | ||||
| -rw-r--r-- | api/_paypal.js.map | 1 | ||||
| -rw-r--r-- | api/createPaypalOrder.js | 86 | ||||
| -rw-r--r-- | api/createPaypalOrder.js.map | 1 |
6 files changed, 322 insertions, 0 deletions
diff --git a/api/_env.js b/api/_env.js new file mode 100644 index 0000000..409a6df --- /dev/null +++ b/api/_env.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var path_1 = __importDefault(require("path")); +var dotenv_1 = __importDefault(require("dotenv")); +// Parsing the env file. +dotenv_1.default.config({ path: path_1.default.resolve(__dirname, '../.env') }); +var ENV = { + PAYPAL_LIVE_CLIENT_ID: 1, + PAYPAL_LIVE_SECRET: 1, + PAYPAL_SANDBOX_CLIENT_ID: 1, + PAYPAL_SANDBOX_SECRET: 1, + ENVIRONMENT: 1, +}; +var env = process.env; +var sanitisedEnvEntries = Object.keys(ENV) + .map(function (key) { + var value = env[key]; + if (!value) { + throw new Error("Environment not configured correctly. ".concat(key, " was not defined.")); + } + if (key === 'ENVIRONMENT') { + if (!['dev', 'prod'].includes(value)) { + throw new Error("\n Environment not configured correctly. ".concat(key, " must be\n either 'dev' or 'prod', but '").concat(value, "' was provided.\n ")); + } + } + return [key, value]; +}); +var sanitisedEnv = Object.fromEntries(sanitisedEnvEntries); +exports.default = sanitisedEnv; +//# sourceMappingURL=_env.js.map
\ No newline at end of file diff --git a/api/_env.js.map b/api/_env.js.map new file mode 100644 index 0000000..e76fe63 --- /dev/null +++ b/api/_env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"_env.js","sourceRoot":"","sources":["../api-src/_env.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwB;AACxB,kDAA4B;AAE5B,wBAAwB;AACxB,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AAY5D,IAAM,GAAG,GAAmC;IAC1C,qBAAqB,EAAE,CAAC;IACxB,kBAAkB,EAAE,CAAC;IACrB,wBAAwB,EAAE,CAAC;IAC3B,qBAAqB,EAAE,CAAC;IACxB,WAAW,EAAE,CAAC;CACf,CAAC;AAEM,IAAA,GAAG,GAAwB,OAAO,IAA/B,CAAgC;AAE3C,IAAM,mBAAmB,GACtB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAmB;KAClC,GAAG,CAAsB,UAAA,GAAG;IAC3B,IAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,gDAAyC,GAAG,sBAAmB,CAAC,CAAC;KAClF;IAED,IAAI,GAAG,KAAK,aAAa,EAAE;QACzB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,4DAC0B,GAAG,8DACZ,KAAK,8BACrC,CAAC,CAAC;SACJ;KACF;IACD,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAQ,CAAC;AAEpE,kBAAe,YAAY,CAAC"}
\ No newline at end of file diff --git a/api/_paypal.js b/api/_paypal.js new file mode 100644 index 0000000..6b5f95a --- /dev/null +++ b/api/_paypal.js @@ -0,0 +1,200 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.paypalCaptureOrder = exports.paypalCreateOrder = void 0; +var _env_1 = __importDefault(require("./_env")); +function paypalCreateOrder(order) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, url, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, getLazyAccessToken()]; + case 1: + accessToken = _a.sent(); + url = "".concat(PAYPAL_URL, "/v2/checkout/orders"); + return [4 /*yield*/, fetch(url, { + method: 'POST', + headers: paypalCreateOrderRequestHeaders(accessToken), + body: paypalCreateOrderRequestBody(order), + })]; + case 2: + response = _a.sent(); + return [4 /*yield*/, handle(response)]; + case 3: return [2 /*return*/, _a.sent()]; + } + }); + }); +} +exports.paypalCreateOrder = paypalCreateOrder; +function paypalCaptureOrder(orderId) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, url, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, getLazyAccessToken()]; + case 1: + accessToken = _a.sent(); + url = "".concat(PAYPAL_URL, "/v2/checkout/orders/").concat(orderId, "/capture"); + return [4 /*yield*/, fetch(url, { + method: 'POST', + headers: paypalCaptureOrderRequestHeaders(accessToken), + })]; + case 2: + response = _a.sent(); + return [4 /*yield*/, handle(response)]; + case 3: return [2 /*return*/, _a.sent()]; + } + }); + }); +} +exports.paypalCaptureOrder = paypalCaptureOrder; +function handle(response) { + return __awaiter(this, void 0, void 0, function () { + var _a, _b; + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + if (!response.ok) return [3 /*break*/, 2]; + return [4 /*yield*/, response.json()]; + case 1: return [2 /*return*/, _c.sent()]; + case 2: + _a = Error.bind; + _b = 'Failed to communicate with PayPal. '; + return [4 /*yield*/, response.text()]; + case 3: throw new (_a.apply(Error, [void 0, _b + (_c.sent())]))(); + } + }); + }); +} +function paypalCreateOrderRequestBody(order) { + var body = JSON.stringify({ + intent: 'CAPTURE', + purchase_units: [ + { + description: order.productDescription, + soft_descriptor: order.shortDescription, + amount: { + currency_code: 'GBP', + value: order.totalPrice.toFixed(2), + }, + }, + ], + }); + return body; +} +function paypalCreateOrderRequestHeaders(accessToken) { + return { + 'Content-Type': 'application/json', + Authorization: "Bearer ".concat(accessToken), + }; +} +function paypalCaptureOrderRequestHeaders(accessToken) { + return { + Authorization: "Bearer ".concat(accessToken), + }; +} +var getLazyAccessToken = (function () { + var accessToken; + var timeRequested; + var timeExpires; + return function () { + return __awaiter(this, void 0, void 0, function () { + var isNearlyExpired, secondsUntilExpires, msUntilExpires; + var _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + isNearlyExpired = timeExpires - Date.now() < 10000; + if (!(!accessToken || isNearlyExpired)) return [3 /*break*/, 2]; + timeRequested = Date.now(); + secondsUntilExpires = void 0; + return [4 /*yield*/, generateAccessToken()]; + case 1: + (_a = _b.sent(), accessToken = _a.accessToken, secondsUntilExpires = _a.secondsUntilExpires); + msUntilExpires = secondsUntilExpires * 1000; + timeExpires = timeRequested + msUntilExpires; + _b.label = 2; + case 2: return [2 /*return*/, accessToken]; + } + }); + }); + }; +})(); +function generateAccessToken() { + return __awaiter(this, void 0, void 0, function () { + var auth, response, _a, access_token, expires_in; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + auth = Buffer.from(PAYPAL_CLIENT_ID + ':' + PAYPAL_SECRET).toString('base64'); + return [4 /*yield*/, fetch("".concat(PAYPAL_URL, "/v1/oauth2/token"), { + method: 'POST', + body: 'grant_type=client_credentials', + headers: { + Authorization: "Basic ".concat(auth), + }, + })]; + case 1: + response = _b.sent(); + return [4 /*yield*/, response.json()]; + case 2: + _a = _b.sent(), access_token = _a.access_token, expires_in = _a.expires_in; + if (access_token && expires_in) { + return [2 /*return*/, { + accessToken: access_token, + secondsUntilExpires: expires_in, + }]; + } + throw new Error('Could not fetch access token from PayPal.'); + } + }); + }); +} +var PAYPAL_CLIENT_ID = _env_1.default.ENVIRONMENT === 'prod' + ? _env_1.default.PAYPAL_LIVE_CLIENT_ID + : _env_1.default.PAYPAL_SANDBOX_CLIENT_ID; +var PAYPAL_SECRET = _env_1.default.ENVIRONMENT === 'prod' + ? _env_1.default.PAYPAL_LIVE_SECRET + : _env_1.default.PAYPAL_SANDBOX_SECRET; +var PAYPAL_URL = _env_1.default.ENVIRONMENT === 'prod' + ? 'https://api-m.paypal.com' + : 'https://api-m.sandbox.paypal.com'; +//# sourceMappingURL=_paypal.js.map
\ No newline at end of file diff --git a/api/_paypal.js.map b/api/_paypal.js.map new file mode 100644 index 0000000..0c69282 --- /dev/null +++ b/api/_paypal.js.map @@ -0,0 +1 @@ +{"version":3,"file":"_paypal.js","sourceRoot":"","sources":["../api-src/_paypal.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/api/createPaypalOrder.js b/api/createPaypalOrder.js new file mode 100644 index 0000000..f4814e0 --- /dev/null +++ b/api/createPaypalOrder.js @@ -0,0 +1,86 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _paypal_1 = require("./_paypal"); +function handler(request, response) { + return __awaiter(this, void 0, void 0, function () { + var _a, productDescription, shortDescription, totalPrice, paypalResponse, err_1; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = request.body, productDescription = _a.productDescription, shortDescription = _a.shortDescription, totalPrice = _a.totalPrice; + console.info('api/createPaypalOrder: Received body: '); + console.info('productDescription: ' + productDescription); + console.info('shortDescription: ' + shortDescription); + console.info('totalPrice: ' + totalPrice); + if (!!productDescription) return [3 /*break*/, 1]; + response.status(400).send('Expected body to contain productDescription, but none provided.'); + return [3 /*break*/, 6]; + case 1: + if (!!shortDescription) return [3 /*break*/, 2]; + response.status(400).send('Expected body to contain shortDescription, but none provided.'); + return [3 /*break*/, 6]; + case 2: + if (!!totalPrice) return [3 /*break*/, 3]; + response.status(400).send('Expected body to contain totalPrice, but none provided.'); + return [3 /*break*/, 6]; + case 3: + _b.trys.push([3, 5, , 6]); + return [4 /*yield*/, (0, _paypal_1.paypalCreateOrder)({ productDescription: productDescription, shortDescription: shortDescription, totalPrice: totalPrice })]; + case 4: + paypalResponse = _b.sent(); + if (paypalResponse.ok) { + response.status(200).json({ + orderId: paypalResponse.id, + }); + } + else { + throw new Error("PayPal returned ".concat(paypalResponse.statusCode, " ").concat(paypalResponse.statusMessage)); + } + return [3 /*break*/, 6]; + case 5: + err_1 = _b.sent(); + response.status(500).send("Internal server error. ".concat(err_1)); + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); +} +exports.default = handler; +//# sourceMappingURL=createPaypalOrder.js.map
\ No newline at end of file diff --git a/api/createPaypalOrder.js.map b/api/createPaypalOrder.js.map new file mode 100644 index 0000000..35c18f0 --- /dev/null +++ b/api/createPaypalOrder.js.map @@ -0,0 +1 @@ +{"version":3,"file":"createPaypalOrder.js","sourceRoot":"","sources":["../api-src/createPaypalOrder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAA8C;AAE9C,SAA8B,OAAO,CAAC,OAAsB,EAAE,QAAwB;;;;;;oBAC9E,KAAuE,OAAO,CAAC,IAAI,EAAjF,kBAAkB,wBAAA,EAAE,gBAAgB,sBAAA,EAAE,UAAU,gBAAA,CAAkC;oBAC1F,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,CAAC;oBAC1D,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC;yBAEtC,CAAC,kBAAkB,EAAnB,wBAAmB;oBACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;;;yBACpF,CAAC,gBAAgB,EAAjB,wBAAiB;oBAC1B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;;;yBAClF,CAAC,UAAU,EAAX,wBAAW;oBACpB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;;;;oBAG5D,qBAAM,IAAA,2BAAiB,EAAC,EAAE,kBAAkB,oBAAA,EAAE,gBAAgB,kBAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAA;;oBAA9F,cAAc,GAAG,SAA6E;oBAEpG,IAAI,cAAc,CAAC,EAAE,EAAE;wBACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACxB,OAAO,EAAE,cAAc,CAAC,EAAE;yBAC3B,CAAC,CAAC;qBACJ;yBAAM;wBACL,MAAM,IAAI,KAAK,CAAC,0BAAmB,cAAc,CAAC,UAAU,cAAI,cAAc,CAAC,aAAa,CAAE,CAAC,CAAC;qBACjG;;;;oBAED,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iCAA0B,KAAG,CAAE,CAAC,CAAC;;;;;;CAGhE;AA5BD,0BA4BC"}
\ No newline at end of file |
