redux-security
Version:
157 lines (131 loc) • 4.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.configAPILocal = undefined;
var _bluebird = require('bluebird');
var _bluebird2 = _interopRequireDefault(_bluebird);
var _cuid = require('cuid');
var _cuid2 = _interopRequireDefault(_cuid);
var _reduxJournal = require('redux-journal');
var _reduxManager = require('redux-manager');
var _actions = require('../actions');
var _config = require('../config');
var _select = require('../select');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var tags = _config.TAGS + '.api.local';
var configAPILocal = exports.configAPILocal = function configAPILocal() {
var _ref = arguments.length <= 0 || arguments[0] === undefined ? { serviceName: _config.SERVICE } : arguments[0];
var _ref$serviceName = _ref.serviceName;
var serviceName = _ref$serviceName === undefined ? _config.SERVICE : _ref$serviceName;
var state = function state() {
return _reduxManager.manager.getStore().getState()[serviceName];
};
var check = function check(_ref2) {
var username = _ref2.username;
var password = _ref2.password;
return _bluebird2.default.try(function () {
(0, _reduxJournal.write)('({ username = \'' + username + '\', password = \'' + password + '\' })', tags + '.check');
var users = (0, _select.select)(state());
var docs = users.docs.all();
var user = docs.find(function (doc) {
return doc.username == username && doc.password == password;
});
(0, _reduxJournal.write)('user = ' + JSON.stringify(user), tags + '.check.found');
if (user) return { userID: user._id };
throw new Error('User not found');
});
};
var codeGenerate = function codeGenerate(_ref3) {
var userID = _ref3.userID;
return _bluebird2.default.try(function () {
var code = (0, _cuid2.default)();
update({ _id: userID, code: code });
return { code: code };
});
};
var confirmEmail = function confirmEmail(_ref4) {
var userID = _ref4.userID;
return _bluebird2.default.try(function () {
update({ _id: userID, code: undefined, confirmed: true });
});
};
var create = function create(_ref5) {
var username = _ref5.username;
var password = _ref5.password;
var email = _ref5.email;
return _bluebird2.default.try(function () {
var userID = (0, _cuid2.default)();
insert({ _id: userID, username: username, password: password, email: email });
return { userID: userID };
});
};
var get = function get(_ref6) {
var userID = _ref6.userID;
return _bluebird2.default.try(function () {
var users = (0, _select.select)(state());
var docs = users.docs.all();
var user = docs.find(function (doc) {
return doc._id == userID;
});
if (user) {
return user;
}
throw new Error('User not found');
});
};
var getByCode = function getByCode(_ref7) {
var code = _ref7.code;
return _bluebird2.default.try(function () {
var users = (0, _select.select)(state());
var docs = users.docs.all();
var user = docs.find(function (doc) {
return doc.code = code;
});
if (user) {
return user;
}
throw new Error('User not found');
});
};
var getByName = function getByName(_ref8) {
var name = _ref8.name;
return _bluebird2.default.try(function () {
var docs = selectDocs(state());
var user = docs.find(function (doc) {
return doc.name = name;
});
if (user) {
return user;
}
throw new Error('User not found');
});
};
var insert = function insert(payload) {
return _bluebird2.default.try(function () {
_reduxManager.manager.dispatch(_actions.actions.insert(payload), serviceName);
});
};
var remove = function remove(payload) {
return _bluebird2.default.try(function () {
_reduxManager.manager.dispatch(_actions.actions.remove(payload), serviceName);
});
};
var update = function update(payload) {
return _bluebird2.default.try(function () {
_reduxManager.manager.dispatch(_actions.actions.update(payload), serviceName);
});
};
return {
check: check,
codeGenerate: codeGenerate,
confirmEmail: confirmEmail,
create: create,
get: get,
getByCode: getByCode,
getByName: getByName,
insert: insert,
remove: remove,
update: update
};
};