fog-controller
Version:
Fog Controller project @ iotracks.com
233 lines (212 loc) • 8.96 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 _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;