Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DB = require("../db").DB
- bcrypt = require "bcrypt"
- module.exports = (app, log, dbase, config, error, system, crypto, _, uuid, fs, email, random, async, redis, geoip, moment, ua, url, humanize, jobs) ->
- db = new DB dbase, "merchant"
- dbUser = new DB dbase, "user"
- findMail = (dt, cb) ->
- param = { email: { $regex: dt, $options: 'i' }}
- async.parallel
- merchant: (d) ->
- db.findOne param, (err, findMerch) ->
- if err or findMerch
- return d null, 'user-is-exist'
- d err, true
- user: (usr) ->
- dbUser.findOne param, (err, findUser) ->
- if err or findUser
- return usr null, 'user-is-exist'
- usr err, true
- , (err, params) ->
- if err
- return cb err, false
- if params.merchant is true and params.user is true
- cb err, true
- else
- cb err, 'user-is-exist'
- genPassword = (password, cb) ->
- bcrypt.genSalt 10, (err, salt) ->
- bcrypt.hash password, salt, (err, hash) ->
- cb err, hash
- verifyPassword = (password, hash, cb) ->
- bcrypt.compare password, hash, (err, res) ->
- cb err, res
- exports.get = (id, cb) ->
- try
- id = dbase.bson_serializer.ObjectID.createFromHexString id
- db.findOne { _id: id }, cb
- exports.list = (cb) ->
- db.findAll cb
- exports.find = (param, cb) ->
- db.find param, { sort: [[ '_id', -1]] }, cb
- exports.findMail = (data, cb) ->
- db.findOne { email: data.email }, cb
- exports.findOne = (id, cb) ->
- try
- id = dbase.bson_serializer.ObjectID.createFromHexString id
- db.findOne { _id: id }, cb
- exports.findAndCount = (param, cb) ->
- try
- param._id = dbase.bson_serializer.ObjectID.createFromHexString param._id
- db.findAndCount param, cb
- exports.authentication = (param, cb) ->
- db.findOne { email: param.email }, (err, found) ->
- if found
- verifyPassword param.password, found.password, (err, res) ->
- if res
- cb err, found
- else
- cb err, false
- else
- cb err, false
- exports.insert = (data, cb) ->
- try
- id = dbase.bson_serializer.ObjectID.createFromHexString id
- if data.logo
- _.extend data,
- logo: data.logo
- if data.backgroundImg
- _.extend data,
- backgroundImg: data.backgroundImg
- data.followers = 0
- data.email = data.email.toLowerCase().trim()
- data.created_at = new Date()
- data.status = system.user.status.active
- if data.password
- genPassword data.password, (err, res) ->
- data.password = res
- findMail data.email, (err, email) ->
- if email isnt true
- return cb null, 'user-is-exist'
- db.insert data, (err, result) ->
- if err
- log.error err
- return cb err, false
- cb err, result
- exports.update = (id, data, cb) ->
- try
- id = dbase.bson_serializer.ObjectID.createFromHexString id
- if data.email
- data.email = data.email.toLowerCase()
- if data.logo
- _.extend data,
- logo: data.logo
- if data.backgroundImg
- _.extend data,
- backgroundImg: data.backgroundImg
- if data.password
- genPassword data.password, (err, res) ->
- data.password = res
- data.updated_at = new Date()
- db.updateWithOption { _id: id }, { $set: data }, { upsert: false }, (err, updated) ->
- cb err, updated
- else
- data.updated_at = new Date()
- db.updateWithOption { _id: id }, { $set: data }, { upsert: false }, (err, updated) ->
- cb err, updated
- exports.remove = (id, cb) ->
- try
- id = dbase.bson_serializer.ObjectID.createFromHexString id
- db.remove { _id: id }, cb
- exports
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement