UNPKG

@des1re7/medusa-payment-tbank

Version:

T-Bank Payment Provider for Medusa Commerce

195 lines (161 loc) 6.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _express = require("express"); var _bodyParser = _interopRequireDefault(require("body-parser")); var _token = _interopRequireDefault(require("../utils/token")); var _default = function _default(rootDirectory, pluginOptions) { var router = (0, _express.Router)(); router.use(_bodyParser["default"].json()); router.post("/tinkoff/notification", /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res) { var data, password, validToken; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res.status(200).send("OK"); return _context.abrupt("return"); case 12: res.status(200).send("OK"); _context.next = 19; break; case 15: _context.prev = 15; _context.t0 = _context["catch"](2); console.error("Error processing Tinkoff notification:", _context.t0); res.status(500); case 19: case "end": return _context.stop(); } } }, _callee, null, [[2, 15]]); })); return function (_x, _x2) { return _ref.apply(this, arguments); }; }()); function updatePaymentInMedusa(_x3, _x4, _x5) { return _updatePaymentInMedusa.apply(this, arguments); } function _updatePaymentInMedusa() { _updatePaymentInMedusa = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(req, paymentId, status) { var manager, cartService, orderService, paymentSessionRepository, paymentSession; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: manager = req.scope.resolve("manager"); cartService = req.scope.resolve("cartService"); orderService = req.scope.resolve("orderService"); paymentSessionRepository = manager.getRepository("PaymentSession"); _context4.next = 6; return paymentSessionRepository.createQueryBuilder("payment_session").where("payment_session.provider_id = :providerId", { providerId: "tbank" }).andWhere("payment_session.data->>'id' = :paymentId", { paymentId: paymentId }).getOne(); case 6: paymentSession = _context4.sent; if (paymentSession) { _context4.next = 9; break; } throw new Error("Payment session not found"); case 9: console.log("paymentSession:"); console.log(paymentSession); if (!(status === "CONFIRMED")) { _context4.next = 16; break; } _context4.next = 14; return manager.transaction( /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(transactionManager) { var cart, order; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: // Обновляем статус платежной сессии на "authorized" paymentSession.status = "authorized"; _context2.next = 3; return transactionManager.save(paymentSession); case 3: _context2.next = 5; return cartService.retrieve(paymentSession.cart_id, { relations: ["payment_sessions"] }); case 5: cart = _context2.sent; _context2.next = 8; return orderService.retrieveByCartId(cart.id)["catch"](function () { return undefined; }); case 8: order = _context2.sent; console.log("\n\ncart:"); console.log(cart); console.log("\n\norder:"); console.log(order); if (!order) { orderService.capturePayment(order.id); } case 14: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x6) { return _ref2.apply(this, arguments); }; }()); case 14: _context4.next = 19; break; case 16: if (!(status === "REJECTED")) { _context4.next = 19; break; } _context4.next = 19; return manager.transaction( /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(transactionManager) { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: paymentSession.status = "canceled"; _context3.next = 3; return transactionManager.save(paymentSession); case 3: case "end": return _context3.stop(); } } }, _callee3); })); return function (_x7) { return _ref3.apply(this, arguments); }; }()); case 19: case "end": return _context4.stop(); } } }, _callee4); })); return _updatePaymentInMedusa.apply(this, arguments); } return router; }; exports["default"] = _default;