UNPKG

redux-security

Version:
157 lines (131 loc) 4.5 kB
'use strict'; 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 }; };