Advertisement
Guest User

Untitled

a guest
Mar 30th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. DB = require("../db").DB
  2. bcrypt = require "bcrypt"
  3. module.exports = (app, log, dbase, config, error, system, crypto, _, uuid, fs, email, random, async, redis, geoip, moment, ua, url, humanize, jobs) ->
  4.     db = new DB dbase, "merchant"
  5.     dbUser = new DB dbase, "user"
  6.  
  7.     findMail = (dt, cb) ->
  8.         param = { email: { $regex: dt, $options: 'i' }}
  9.         async.parallel
  10.             merchant: (d) ->
  11.                 db.findOne param, (err, findMerch) ->
  12.                     if err or findMerch
  13.                         return d null, 'user-is-exist'
  14.                     d err, true
  15.             user: (usr) ->
  16.                 dbUser.findOne param, (err, findUser) ->
  17.                     if err or findUser
  18.                         return usr null, 'user-is-exist'
  19.                     usr err, true
  20.         , (err, params) ->
  21.             if err
  22.                 return cb err, false
  23.             if params.merchant is true and params.user is true
  24.                 cb err, true
  25.             else
  26.                 cb err, 'user-is-exist'
  27.  
  28.     genPassword = (password, cb) ->
  29.         bcrypt.genSalt 10, (err, salt) ->
  30.             bcrypt.hash password, salt, (err, hash) ->
  31.                 cb err, hash
  32.  
  33.     verifyPassword = (password, hash, cb) ->
  34.         bcrypt.compare password, hash, (err, res) ->
  35.             cb err, res
  36.  
  37.     exports.get = (id, cb) ->
  38.         try
  39.             id = dbase.bson_serializer.ObjectID.createFromHexString id
  40.         db.findOne { _id: id }, cb
  41.  
  42.     exports.list = (cb) ->
  43.         db.findAll cb
  44.  
  45.     exports.find = (param, cb) ->
  46.         db.find param, { sort: [[ '_id', -1]] }, cb
  47.  
  48.     exports.findMail = (data, cb) ->
  49.         db.findOne { email: data.email }, cb
  50.  
  51.     exports.findOne = (id, cb) ->
  52.         try
  53.             id = dbase.bson_serializer.ObjectID.createFromHexString id
  54.         db.findOne { _id: id }, cb
  55.  
  56.     exports.findAndCount = (param, cb) ->
  57.         try
  58.             param._id = dbase.bson_serializer.ObjectID.createFromHexString param._id
  59.         db.findAndCount param, cb
  60.  
  61.     exports.authentication = (param, cb) ->
  62.         db.findOne { email: param.email }, (err, found) ->
  63.             if found
  64.                 verifyPassword param.password, found.password, (err, res) ->
  65.                     if res
  66.                         cb err, found
  67.                     else
  68.                         cb err, false
  69.             else
  70.                 cb err, false
  71.  
  72.     exports.insert = (data, cb) ->
  73.         try
  74.             id = dbase.bson_serializer.ObjectID.createFromHexString id
  75.  
  76.         if data.logo
  77.             _.extend data,
  78.                 logo: data.logo
  79.  
  80.         if data.backgroundImg
  81.             _.extend data,
  82.                 backgroundImg: data.backgroundImg
  83.  
  84.         data.followers = 0
  85.         data.email = data.email.toLowerCase().trim()
  86.         data.created_at = new Date()
  87.         data.status = system.user.status.active
  88.         if data.password
  89.             genPassword data.password, (err, res) ->
  90.                 data.password = res
  91.                 findMail data.email, (err, email) ->
  92.                     if email isnt true
  93.                         return cb null, 'user-is-exist'
  94.                     db.insert data, (err, result) ->
  95.                         if err
  96.                             log.error err
  97.                             return cb err, false
  98.                         cb err, result
  99.  
  100.     exports.update = (id, data, cb) ->
  101.         try
  102.             id = dbase.bson_serializer.ObjectID.createFromHexString id
  103.         if data.email
  104.             data.email = data.email.toLowerCase()
  105.  
  106.         if data.logo
  107.             _.extend data,
  108.                 logo: data.logo
  109.  
  110.         if data.backgroundImg
  111.             _.extend data,
  112.                 backgroundImg: data.backgroundImg
  113.  
  114.         if data.password
  115.             genPassword data.password, (err, res) ->
  116.                 data.password = res
  117.  
  118.                 data.updated_at = new Date()
  119.                 db.updateWithOption { _id: id }, { $set: data }, { upsert: false }, (err, updated) ->
  120.                     cb err, updated
  121.         else
  122.             data.updated_at = new Date()
  123.             db.updateWithOption { _id: id }, { $set: data }, { upsert: false }, (err, updated) ->
  124.                 cb err, updated
  125.  
  126.     exports.remove = (id, cb) ->
  127.         try
  128.             id = dbase.bson_serializer.ObjectID.createFromHexString id
  129.         db.remove { _id: id }, cb
  130.  
  131.     exports
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement