| 123456789101112131415161718192021222324252627282930313233 |
- logger = require("logger-sharelatex")
- mongojs = require("../../infrastructure/mongojs")
- metrics = require("metrics-sharelatex")
- db = mongojs.db
- ObjectId = mongojs.ObjectId
- UserLocator = require("./UserLocator")
- module.exports = UserUpdater =
- updateUser: (query, update, callback = (error) ->) ->
- if typeof query == "string"
- query = _id: ObjectId(query)
- else if query instanceof ObjectId
- query = _id: query
- db.users.update query, update, callback
- changeEmailAddress: (user_id, newEmail, callback)->
- self = @
- logger.log user_id:user_id, newEmail:newEmail, "updaing email address of user"
- UserLocator.findByEmail newEmail, (error, user) ->
- if user?
- return callback({message:"alread_exists"})
- self.updateUser user_id.toString(), {
- $set: { "email": newEmail},
- }, (err) ->
- if err?
- logger.err err:err, "problem updating users email"
- return callback(err)
- callback()
- metrics.timeAsyncMethod UserUpdater, 'updateUser', 'mongo.UserUpdater', logger
|