UNPKG

anthtrigger

Version:

Trigger events via http service

83 lines (71 loc) 1.73 kB
Thenjs = require 'thenjs' userModel = require './UserModel' exports.model = userModel exports.addUser = (user)-> Thenjs (cont)-> user = new userModel(user) user.save (err)-> return cont(err) if err return cont(null, user) exports.findUser = (critcal)-> Thenjs (cont)-> userModel.findOne critcal, cont exports.findById = (id)-> Thenjs (cont)-> userModel.findById id, cont exports.getRecentUser = (count)-> Thenjs (cont)-> userModel.find { frozen: false }, { _id: 1 name: 1 role: 1 lastLoginAt: 1 lastLoginIp: 1 }, { sort: '-lastLoginAt' limit: count }, (err, list)-> cont(err, list) exports.editUser = (user)-> Thenjs (cont)-> id = user._id delete user._id userModel.update { _id: id }, { $set: user }, (err, na)-> user._id = id return cont(err) if err cont(null, na, user) exports.frozeUser = (id)-> Thenjs (cont)-> userModel.findById id, (err, user)-> return cont(err) if err cont(null, user) .then (cont, user)-> user.frozen = not user.frozen user.save (err)-> return cont(err) if err cont(null) exports.login = (name, pass, ip)-> Thenjs (cont)-> userModel.findOne { name: name, password: pass }, (err, doc)-> return cont(err) if err return cont('Password wrong!') if not doc return cont(null, doc) .then (cont, doc)-> # Update last login time doc.lastLoginAt = new Date() doc.lastLoginIp = ip doc.save (err)-> cont(err, doc) exports.listUser = (critcal, fields, opts={})-> Thenjs (cont)-> userModel.find critcal, fields, opts, (err, list)-> return cont(err) if err return cont(null, list or [])