1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = void 0;
|
9 |
|
10 | var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11 |
|
12 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
13 |
|
14 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
15 |
|
16 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
17 |
|
18 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
19 |
|
20 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
21 |
|
22 | var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
23 |
|
24 | var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
25 |
|
26 | var _Model2 = _interopRequireDefault(require("@lskjs/db/Model"));
|
27 |
|
28 | var _omit = _interopRequireDefault(require("lodash/omit"));
|
29 |
|
30 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
31 |
|
32 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
33 |
|
34 | 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); }; }
|
35 |
|
36 | 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; } }
|
37 |
|
38 |
|
39 | var BillingTransactionModel = function (_Model) {
|
40 | (0, _inherits2["default"])(BillingTransactionModel, _Model);
|
41 |
|
42 | var _super = _createSuper(BillingTransactionModel);
|
43 |
|
44 | function BillingTransactionModel() {
|
45 | (0, _classCallCheck2["default"])(this, BillingTransactionModel);
|
46 | return _super.apply(this, arguments);
|
47 | }
|
48 |
|
49 | (0, _createClass2["default"])(BillingTransactionModel, [{
|
50 | key: "changeStatus",
|
51 | value: function () {
|
52 | var _changeStatus = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee(newStatus, params) {
|
53 | var statusChanged, _yield$this$construct, balanceBefore, balanceAfter;
|
54 |
|
55 | return _regenerator["default"].wrap(function _callee$(_context) {
|
56 | while (1) {
|
57 | switch (_context.prev = _context.next) {
|
58 | case 0:
|
59 | this.wasStatus = this.status;
|
60 | this.status = newStatus;
|
61 | if (!this.meta) this.meta = {};
|
62 | this.meta.statusInfo = _objectSpread({
|
63 | wasStatus: this.wasStatus,
|
64 | status: this.status,
|
65 | updatedAt: new Date()
|
66 | }, params);
|
67 | this.markModified('meta');
|
68 | this.markModified('meta.statusInfo');
|
69 | statusChanged = this.wasStatus !== newStatus;
|
70 |
|
71 | if (!statusChanged) {
|
72 | _context.next = 14;
|
73 | break;
|
74 | }
|
75 |
|
76 | _context.next = 10;
|
77 | return this.constructor.updateBalance(this);
|
78 |
|
79 | case 10:
|
80 | _yield$this$construct = _context.sent;
|
81 | balanceBefore = _yield$this$construct.balanceBefore;
|
82 | balanceAfter = _yield$this$construct.balanceAfter;
|
83 |
|
84 | if (balanceBefore !== null && balanceAfter !== null) {
|
85 | this.meta.statusInfo.balanceBefore = balanceBefore;
|
86 | this.meta.statusInfo.balanceAfter = balanceAfter;
|
87 | }
|
88 |
|
89 | case 14:
|
90 | this.addEvent(_objectSpread({
|
91 | type: 'changeStatus'
|
92 | }, this.meta.statusInfo));
|
93 | return _context.abrupt("return", this);
|
94 |
|
95 | case 16:
|
96 | case "end":
|
97 | return _context.stop();
|
98 | }
|
99 | }
|
100 | }, _callee, this);
|
101 | }));
|
102 |
|
103 | function changeStatus(_x, _x2) {
|
104 | return _changeStatus.apply(this, arguments);
|
105 | }
|
106 |
|
107 | return changeStatus;
|
108 | }()
|
109 | }, {
|
110 | key: "addEvent",
|
111 | value: function addEvent() {
|
112 | var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
113 | if (!this["private"]) this["private"] = {};
|
114 | if (!this["private"].events) this["private"].events = [];
|
115 |
|
116 | var event = _objectSpread({
|
117 | createdAt: params.createdAt || new Date()
|
118 | }, params);
|
119 |
|
120 | this["private"].events.push(event);
|
121 | this.markModified('private.events');
|
122 | }
|
123 | }], [{
|
124 | key: "updateBalance",
|
125 | value:
|
126 |
|
127 |
|
128 | function () {
|
129 | var _updateBalance = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee2() {
|
130 | return _regenerator["default"].wrap(function _callee2$(_context2) {
|
131 | while (1) {
|
132 | switch (_context2.prev = _context2.next) {
|
133 | case 0:
|
134 | return _context2.abrupt("return", {});
|
135 |
|
136 | case 1:
|
137 | case "end":
|
138 | return _context2.stop();
|
139 | }
|
140 | }
|
141 | }, _callee2);
|
142 | }));
|
143 |
|
144 | function updateBalance() {
|
145 | return _updateBalance.apply(this, arguments);
|
146 | }
|
147 |
|
148 | return updateBalance;
|
149 | }()
|
150 | }, {
|
151 | key: "createPayment",
|
152 | value: function () {
|
153 | var _createPayment = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee3(params) {
|
154 | var transaction;
|
155 | return _regenerator["default"].wrap(function _callee3$(_context3) {
|
156 | while (1) {
|
157 | switch (_context3.prev = _context3.next) {
|
158 | case 0:
|
159 | transaction = new this(_objectSpread({}, params));
|
160 | return _context3.abrupt("return", transaction.save());
|
161 |
|
162 | case 2:
|
163 | case "end":
|
164 | return _context3.stop();
|
165 | }
|
166 | }
|
167 | }, _callee3, this);
|
168 | }));
|
169 |
|
170 | function createPayment(_x3) {
|
171 | return _createPayment.apply(this, arguments);
|
172 | }
|
173 |
|
174 | return createPayment;
|
175 | }()
|
176 | }, {
|
177 | key: "prepareOne",
|
178 | value: function () {
|
179 | var _prepareOne = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee4(obj) {
|
180 | return _regenerator["default"].wrap(function _callee4$(_context4) {
|
181 | while (1) {
|
182 | switch (_context4.prev = _context4.next) {
|
183 | case 0:
|
184 | return _context4.abrupt("return", (0, _omit["default"])(obj, ['private']));
|
185 |
|
186 | case 1:
|
187 | case "end":
|
188 | return _context4.stop();
|
189 | }
|
190 | }
|
191 | }, _callee4);
|
192 | }));
|
193 |
|
194 | function prepareOne(_x4) {
|
195 | return _prepareOne.apply(this, arguments);
|
196 | }
|
197 |
|
198 | return prepareOne;
|
199 | }()
|
200 | }]);
|
201 | return BillingTransactionModel;
|
202 | }(_Model2["default"]);
|
203 |
|
204 | exports["default"] = BillingTransactionModel;
|
205 | BillingTransactionModel.schema = {
|
206 |
|
207 | provider: String,
|
208 |
|
209 | currency: {
|
210 | type: String
|
211 | },
|
212 |
|
213 | amount: {
|
214 | type: Number,
|
215 | required: true
|
216 | },
|
217 |
|
218 | type: {
|
219 | type: String,
|
220 | required: true
|
221 | },
|
222 |
|
223 | status: {
|
224 | type: String
|
225 | },
|
226 |
|
227 | userId: {
|
228 | type: _Model2["default"].Types.ObjectId,
|
229 | ref: 'UserModel',
|
230 | required: true
|
231 | },
|
232 | companyId: {
|
233 | type: _Model2["default"].Types.ObjectId
|
234 | },
|
235 | info: {
|
236 | type: Object
|
237 | },
|
238 |
|
239 | meta: {
|
240 | type: Object
|
241 | },
|
242 |
|
243 | "private": {
|
244 |
|
245 | type: Object
|
246 |
|
247 | }
|
248 | };
|
249 | BillingTransactionModel.options = {
|
250 | model: 'BillingTransactionModel',
|
251 | collection: 'billing_transactions'
|
252 | };
|
253 | BillingTransactionModel.TYPE_IN = 'in';
|
254 | BillingTransactionModel.TYPE_BETWEEN = 'internal';
|
255 | BillingTransactionModel.TYPE_OUT = 'out';
|
256 | BillingTransactionModel.STATUS_PENDING = 'pending';
|
257 | BillingTransactionModel.STATUS_FAILURE = 'failure';
|
258 | BillingTransactionModel.STATUS_SUCCESS = 'success';
|
259 |
|
\ | No newline at end of file |