| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const _ = require('lodash')
- const Sequelize = require('sequelize')
- const sequelize = require('./sequelize')
- const config = require('../../config')
- const bcrypt = require('bcryptjs')
- const User = sequelize.define('user', {
- id: {
- type: Sequelize.UUID,
- defaultValue: Sequelize.UUIDV1,
- primaryKey: true
- },
- email: {
- type: Sequelize.STRING,
- unique: true,
- validate: {
- isEmail: true
- }
- },
- name: Sequelize.STRING,
- password: Sequelize.STRING,
- resetToken: Sequelize.STRING
- }, {
- paranoid: true,
- indexes: [
- {
- unique: true,
- fields: ['email']
- }
- ],
- setterMethods: {
- password(value) {
- this.setDataValue('password', bcrypt.hashSync(value, config.auth.saltRounds))
- }
- }
- })
- User.prototype.sanitize = function() {
- return _.omit(this.dataValues, 'password', 'resetToken')
- }
- module.exports = User
|