Просмотр исходного кода

added default of empty string to user details, fixed route as well

Henry Oswald 12 лет назад
Родитель
Сommit
e099a4a100

+ 3 - 1
services/web/app/coffee/Features/User/UserInfoController.coffee

@@ -23,12 +23,14 @@ module.exports = UserController =
 
 	updatePersonalInfo: (req, res, next = (error)->) ->
 		{first_name, last_name, role, institution} = req.body
+		user_id = req.session.user._id
+		logger.log data:req.body, user_id:user_id, "getting update for user personal info"
 		update = 
 			first_name:sanitize.escape(first_name)
 			last_name:sanitize.escape(last_name)
 			role:sanitize.escape(role)
 			institution:sanitize.escape(institution)
-		UserUpdater.updatePersonalInfo req.session.user._id, update, (err)->
+		UserUpdater.updatePersonalInfo user_id, update, (err)->
 			if err?
 				res.send 500
 			else

+ 4 - 4
services/web/app/coffee/Features/User/UserUpdater.coffee

@@ -33,9 +33,9 @@ module.exports = UserUpdater =
 		self = @
 		update = 
 			$set: 
-				"first_name": info.first_name
-				"last_name":  info.last_name
-				"role":		  info.role
-				"institution": info.institution
+				"first_name": info.first_name || ""
+				"last_name":  info.last_name || ""
+				"role":		  info.role || ""
+				"institution": info.institution || ""
 		self.updateUser user_id.toString(), update, (err)->
 			callback(err)

+ 1 - 1
services/web/app/coffee/router.coffee

@@ -90,7 +90,7 @@ module.exports = class Router
 
 		app.get  '/user/auth_token', AuthenticationController.requireLogin(), AuthenticationController.getAuthToken
 		app.get  '/user/personal_info', AuthenticationController.requireLogin(allow_auth_token: true), UserInfoController.getLoggedInUsersPersonalInfo
-		app.post  '/user/personal_info', AuthenticationController.requireLogin(), UserInfoController.getPersonalInfo
+		app.post  '/user/personal_info', AuthenticationController.requireLogin(), UserInfoController.updatePersonalInfo
 		app.get  '/user/:user_id/personal_info', httpAuth, UserInfoController.getPersonalInfo
 
 		app.get  '/project', AuthenticationController.requireLogin(), ProjectController.projectListPage

+ 10 - 0
services/web/test/UnitTests/coffee/User/UserUpdaterTests.coffee

@@ -72,3 +72,13 @@ describe "UserUpdater", ->
 				should.exist(err)
 				done()
 
+		it "should default them to empty strings", (done)->
+			@UserUpdater.updateUser = sinon.stub().callsArgWith(2)
+			@UserUpdater.updatePersonalInfo @user_id, {}, (err)=>
+				args = @UserUpdater.updateUser.args[0][1]
+				args["$set"].first_name.should.equal ""
+				args["$set"].last_name.should.equal ""
+				args["$set"].role.should.equal ""
+				args["$set"].institution.should.equal ""
+				done()
+