gift-card-server/models/merchant.js

56 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-06-19 10:46:14 -04:00
'use strict';
var mongoose = require('mongoose');
var bcrypt = require('bcrypt');
var Schema = mongoose.Schema;
var MerchantSchema = new Schema({
name: String,
password: String,
merchant_email: {
type: String,
index: { unique: true }
},
merchant_name: String,
language: String,
street: String,
street_2: String,
city: String,
province: String,
postal_code: String,
country: String,
telephone: String,
cellular: String,
telephone_other: String,
number: Number
}, {timestamps: true});
MerchantSchema.methods.comparePassword = function comparePassword(password, callback) {
bcrypt.compare(password, this.password, callback);
};
MerchantSchema.pre('save', function saveHook(next) {
let user = this;
// proceed only if password is modified or the user is new
if (!user.isModified('password')) {
return next();
}
return bcrypt.genSalt((saltError, salt) => {
if (saltError) {
return next(saltError);
}
return bcrypt.hash(user.password, salt, (hashError, hash) => {
if (hashError) {
return next(hashError);
}
// Replace password string with hash value
user.password = hash;
return next();
});
});
});
module.exports = mongoose.model('Merchant', MerchantSchema);