UserUpdater.coffee 878 B

123456789101112131415161718192021222324252627282930
  1. logger = require("logger-sharelatex")
  2. mongojs = require("../../infrastructure/mongojs")
  3. db = mongojs.db
  4. ObjectId = mongojs.ObjectId
  5. UserLocator = require("./UserLocator")
  6. module.exports = UserUpdater =
  7. updateUser: (query, update, callback = (error) ->) ->
  8. if typeof query == "string"
  9. query = _id: ObjectId(query)
  10. else if query instanceof ObjectId
  11. query = _id: query
  12. db.users.update query, update, callback
  13. changeEmailAddress: (user_id, newEmail, callback)->
  14. self = @
  15. logger.log user_id:user_id, newEmail:newEmail, "updaing email address of user"
  16. UserLocator.findByEmail newEmail, (error, user) ->
  17. if user?
  18. return callback({message:"alread_exists"})
  19. self.updateUser user_id.toString(), {
  20. $set: { "email": newEmail},
  21. }, (err) ->
  22. if err?
  23. logger.err err:err, "problem updating users email"
  24. return callback(err)
  25. callback()