UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

233 lines (212 loc) 8.96 kB
'use strict'; 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 _user = require('./../models/user'); var _user2 = _interopRequireDefault(_user); var _baseManager = require('./../managers/baseManager'); var _baseManager2 = _interopRequireDefault(_baseManager); var _appUtils = require('./../utils/appUtils'); var _appUtils2 = _interopRequireDefault(_appUtils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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; } /** * @file userManager.js * @author Zishan Iqbal * @description This file includes the CURD operations for the user Model. */ var UserManager = function (_BaseManager) { _inherits(UserManager, _BaseManager); function UserManager() { _classCallCheck(this, UserManager); return _possibleConstructorReturn(this, (UserManager.__proto__ || Object.getPrototypeOf(UserManager)).apply(this, arguments)); } _createClass(UserManager, [{ key: 'getEntity', value: function getEntity() { return _user2.default; } }, { key: 'addUser', value: function addUser(userData) { return _user2.default.create(userData); } /** * @desc - finds the user based on the users email * @param email - String * @return JSON - returns a JSON object of the user with the email */ }, { key: 'findByEmail', value: function findByEmail(email) { return _user2.default.find({ where: { email: email } }); } }, { key: 'updateUserByToken', value: function updateUserByToken(userAccessToken, data) { return _user2.default.update(data, { where: { userAccessToken: userAccessToken } }); } }, { key: 'updateUserById', value: function updateUserById(userId, data) { return _user2.default.update(data, { where: { id: userId } }); } }, { key: 'updateUserByEmail', value: function updateUserByEmail(email, data) { return _user2.default.update(data, { where: { email: email } }); } }, { key: 'validateUser', value: function validateUser(email, password) { return _user2.default.find({ where: { email: email, password: password } }); } }, { key: 'isTempPassword', value: function isTempPassword(email, password) { return _user2.default.find({ where: { email: email, tempPassword: password } }); } }, { key: 'validateUserByEmail', value: function validateUserByEmail(email) { return _user2.default.find({ where: { email: email } }); } /** * @desc - finds the user based on the users token * @param token - String * @return JSON - returns a JSON object of the user with the token */ }, { key: 'findByToken', value: function findByToken(token) { return _user2.default.find({ where: { userAccessToken: token } }); } }, { key: 'deleteByUserId', value: function deleteByUserId(userId) { return _user2.default.destroy({ where: { id: userId } }); } }, { key: 'list', value: function list() { this.find().then(function (users) { if (users && users.length > 0) { console.log('Email Address | First Name | Last Name'); for (var i = 0; i < users.length; i++) { console.log(users[i].email + '|' + users[i].firstName + '|' + users[i].lastName); } } else { console.log('No users found'); } }); } }, { key: 'createUser', value: function createUser(email, firstName, lastName, password) { if (email && password) { this.findByEmail(email).then(function (user) { if (!user) { if (_appUtils2.default.isValidEmail(email)) { if (password.length >= 8) { _user2.default.create({ firstName: firstName, lastName: lastName, email: email, password: password, userAccessToken: _appUtils2.default.generateAccessToken() }).then(function (user) { console.log('\nUser created successfully: ' + email); console.log('userAccessToken: ' + user.userAccessToken); }); } else { console.log('\nError: Password length should be at least 8 characters.'); } } else { console.log('\nError: Invalid Email address provided'); } } else { console.log('\nError: User already exists with this email. Please Try again with different Email.'); } }); } else { console.log('\nPlease provide values in following order:\n fog-controller user -add <email> <firstName> <lastName> <password>'); } } }, { key: 'removeUser', value: function removeUser(email) { if (email) { this.findByEmail(email).then(function (user) { if (user) { user.destroy(); console.log('User deleted'); } else { console.log('Can not find user having "' + email + '" as email address'); } }); } else { console.log('Email address is required'); } } }, { key: 'generateToken', value: function generateToken(email) { if (email) { this.findByEmail(email).then(function (user) { if (user) { user.userAccessToken = _appUtils2.default.generateAccessToken(); console.log('userAccessToken: ' + user.userAccessToken); user.save(); } else { console.log('Can not find user having "' + email + '" as email address'); } }); } else { console.log('Email address is required'); } } }]); return UserManager; }(_baseManager2.default); var instance = new UserManager(); exports.default = instance;