UserUpdater.coffee 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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:"User with that email already 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()
  26. updatePersonalInfo: (user_id, info, callback)->
  27. self = @
  28. update =
  29. $set:
  30. "first_name": info.first_name || ""
  31. "last_name": info.last_name || ""
  32. "role": info.role || ""
  33. "institution": info.institution || ""
  34. self.updateUser user_id.toString(), update, (err)->
  35. callback(err)