UNPKG

@lskjs/billing

Version:

LSK.js module for adding billing in cabinet

211 lines (209 loc) 9.17 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _Model2 = _interopRequireDefault(require("@lskjs/db/Model")); var _omit = _interopRequireDefault(require("lodash/omit")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // var BillingTransactionModel = /*#__PURE__*/function (_Model) { (0, _inherits2["default"])(BillingTransactionModel, _Model); var _super = _createSuper(BillingTransactionModel); function BillingTransactionModel() { (0, _classCallCheck2["default"])(this, BillingTransactionModel); return _super.apply(this, arguments); } (0, _createClass2["default"])(BillingTransactionModel, [{ key: "changeStatus", value: function () { var _changeStatus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(newStatus, params) { var statusChanged, _yield$this$construct, balanceBefore, balanceAfter; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: this.wasStatus = this.status; this.status = newStatus; if (!this.meta) this.meta = {}; this.meta.statusInfo = _objectSpread({ wasStatus: this.wasStatus, status: this.status, updatedAt: new Date() }, params); this.markModified('meta'); this.markModified('meta.statusInfo'); statusChanged = this.wasStatus !== newStatus; if (!statusChanged) { _context.next = 14; break; } _context.next = 10; return this.constructor.updateBalance(this); case 10: _yield$this$construct = _context.sent; balanceBefore = _yield$this$construct.balanceBefore; balanceAfter = _yield$this$construct.balanceAfter; if (balanceBefore !== null && balanceAfter !== null) { this.meta.statusInfo.balanceBefore = balanceBefore; this.meta.statusInfo.balanceAfter = balanceAfter; } case 14: this.addEvent(_objectSpread({ type: 'changeStatus' }, this.meta.statusInfo)); return _context.abrupt("return", this); case 16: case "end": return _context.stop(); } }, _callee, this); })); function changeStatus(_x, _x2) { return _changeStatus.apply(this, arguments); } return changeStatus; }() }, { key: "addEvent", value: function addEvent() { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (!this["private"]) this["private"] = {}; if (!this["private"].events) this["private"].events = []; var event = _objectSpread({ createdAt: params.createdAt || new Date() }, params); this["private"].events.push(event); this.markModified('private.events'); } }], [{ key: "updateBalance", value: // Пополнение // Перевод внутри системы // Снятие function () { var _updateBalance = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", {}); case 1: case "end": return _context2.stop(); } }, _callee2); })); function updateBalance() { return _updateBalance.apply(this, arguments); } return updateBalance; }() }, { key: "createPayment", value: function () { var _createPayment = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(params) { var transaction; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: transaction = new this(_objectSpread({}, params)); return _context3.abrupt("return", transaction.save()); case 2: case "end": return _context3.stop(); } }, _callee3, this); })); function createPayment(_x3) { return _createPayment.apply(this, arguments); } return createPayment; }() }, { key: "prepareOne", value: function () { var _prepareOne = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(obj) { return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: return _context4.abrupt("return", (0, _omit["default"])(obj, ['private'])); case 1: case "end": return _context4.stop(); } }, _callee4); })); function prepareOne(_x4) { return _prepareOne.apply(this, arguments); } return prepareOne; }() }]); return BillingTransactionModel; }(_Model2["default"]); exports["default"] = BillingTransactionModel; BillingTransactionModel.schema = { // intId: { type: Number, required: true }, provider: String, // bank, g2a, etc. currency: { type: String }, // RUB, USD, BTC, LSKCOIN amount: { type: Number, required: true }, // в центах type: { type: String, required: true }, // in, out, internal status: { type: String }, // TRANSACTION_STATUS_* // null, progress, succcess, error userId: { type: _Model2["default"].Types.ObjectId, ref: 'UserModel', required: true }, companyId: { type: _Model2["default"].Types.ObjectId }, info: { type: Object }, // qiwi, usd meta: { type: Object }, // qiwi, usd "private": { // new Model.Schema({}) type: Object // Logs } }; BillingTransactionModel.options = { model: 'BillingTransactionModel', collection: 'billing_transactions' }; BillingTransactionModel.TYPE_IN = 'in'; BillingTransactionModel.TYPE_BETWEEN = 'internal'; BillingTransactionModel.TYPE_OUT = 'out'; BillingTransactionModel.STATUS_PENDING = 'pending'; BillingTransactionModel.STATUS_FAILURE = 'failure'; BillingTransactionModel.STATUS_SUCCESS = 'success'; //# sourceMappingURL=BillingTransactionModel.js.map