dbl-coins-invest
Version:
Sharade DBL package over other coins invest services
110 lines (82 loc) • 4.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _rxjs = require('rxjs');
var _rxjs2 = _interopRequireDefault(_rxjs);
var _models = require('./models');
var _dbl = require('./dbl');
var _dbl2 = _interopRequireDefault(_dbl);
var _sequelize = require('sequelize');
var Sequelize = _interopRequireWildcard(_sequelize);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Op = Sequelize.Op;
var AccountService = function (_DBL) {
_inherits(AccountService, _DBL);
function AccountService(userSub) {
_classCallCheck(this, AccountService);
if (!userSub) throw new Error('userSub have to be provided!!!!');
var _this = _possibleConstructorReturn(this, (AccountService.__proto__ || Object.getPrototypeOf(AccountService)).call(this));
_this.userSub = userSub;
_this.model = _models.Account;
return _this;
}
_createClass(AccountService, [{
key: 'getOrCreate',
value: function getOrCreate(account, user) {
var _this2 = this;
return this.getUserAccount().flatMap(function (existsAccount) {
if (!!existsAccount) return _rxjs2.default.Observable.of(existsAccount);
return _this2.create(account, user);
});
}
}, {
key: 'create',
value: function create(account) {
return _rxjs2.default.Observable.fromPromise(this.model.create(account));
}
}, {
key: 'assignPortfolio',
value: function assignPortfolio(account, portfolio) {
return _rxjs2.default.Observable.fromPromise(account.addPortfolios(portfolio));
}
}, {
key: 'updateAccount',
value: function updateAccount(user) {
var _this3 = this;
return this.getUserAccount().flatMap(function (accountModel) {
accountModel.firstName = user.firstName;
accountModel.lastName = user.lastName;
return _rxjs2.default.Observable.fromPromise(accountModel.save()).flatMap(function (resp) {
return _this3.getUserAccount();
});
});
}
}, {
key: 'getUserAccount',
value: function getUserAccount() {
return _rxjs2.default.Observable.fromPromise(this.model.findOne({
where: {
userSub: _defineProperty({}, Op.eq, this.userSub)
}
}));
}
}, {
key: 'getBySub',
value: function getBySub(sub) {
return _rxjs2.default.Observable.fromPromise(this.model.findOne({
where: {
userSub: _defineProperty({}, Op.eq, this.userSub)
}
}));
}
}]);
return AccountService;
}(_dbl2.default);
exports.default = AccountService;