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

Fix argument signature of mergeUpdate and deleteUpdate

James Allen 12 лет назад
Родитель
Сommit
f3a1ba93a4

+ 8 - 6
services/web/app/coffee/Features/ThirdPartyDataStore/TpdsController.coffee

@@ -8,8 +8,9 @@ module.exports =
 	mergeUpdate: (req, res)->
 		metrics.inc("tpds.merge-update")
 		{filePath, user_id, projectName} = parseParams(req)
-		logger.log user_id:user_id, filePath:filePath, fullPath:req.params[0], projectName:projectName, "reciving update request from tpds"
-		tpdsUpdateHandler.newUpdate user_id, projectName, filePath, req, (err)->
+		source = req.headers["x-sl-update-source"] or "unknown"
+		logger.log user_id:user_id, filePath:filePath, fullPath:req.params[0], projectName:projectName, source: source, "reciving update request from tpds"
+		tpdsUpdateHandler.newUpdate user_id, projectName, filePath, req, source, (err)->
 			logger.log user_id:user_id, filePath:filePath, fullPath:req.params[0], "sending response that tpdsUpdate has been completed"
 			if err?
 				logger.err err:err, user_id:user_id, filePath:filePath, "error reciving update from tpds"
@@ -23,8 +24,9 @@ module.exports =
 	deleteUpdate: (req, res)->
 		metrics.inc("tpds.delete-update")
 		{filePath, user_id, projectName} = parseParams(req)
-		logger.log user_id:user_id, filePath:filePath, projectName:projectName, fullPath:req.params[0], "reciving delete request from tpds"
-		tpdsUpdateHandler.deleteUpdate user_id, projectName, filePath, (err)->
+		source = req.headers["x-sl-update-source"] or "unknown"
+		logger.log user_id:user_id, filePath:filePath, projectName:projectName, fullPath:req.params[0], source: source, "reciving delete request from tpds"
+		tpdsUpdateHandler.deleteUpdate user_id, projectName, filePath, source, (err)->
 			if err?
 				logger.err err:err, user_id:user_id, filePath:filePath, "error reciving update from tpds"
 				res.send(500)
@@ -36,7 +38,7 @@ module.exports =
 	updateProjectContents: (req, res, next = (error) ->) ->
 		{project_id} = req.params
 		path = "/" + req.params[0] # UpdateMerger expects leading slash
-		source = req.headers["x-sl-update-source"]
+		source = req.headers["x-sl-update-source"] or "unknown"
 		logger.log project_id: project_id, path: path, source: source, "received project contents update"
 		UpdateMerger.mergeUpdate project_id, path, req, source, (error) ->
 			return next(error) if error?
@@ -46,7 +48,7 @@ module.exports =
 	deleteProjectContents: (req, res, next = (error) ->) ->
 		{project_id} = req.params
 		path = "/" + req.params[0] # UpdateMerger expects leading slash
-		source = req.headers["x-sl-update-source"]
+		source = req.headers["x-sl-update-source"] or "unknown"
 		logger.log project_id: project_id, path: path, source: source, "received project contents delete request"
 		UpdateMerger.deleteUpdate project_id, path, source, (error) ->
 			return next(error) if error?

+ 4 - 4
services/web/app/coffee/Features/ThirdPartyDataStore/TpdsUpdateHandler.coffee

@@ -9,7 +9,7 @@ commitMessage = "Before update from Dropbox"
 
 module.exports =
 
-	newUpdate: (user_id, projectName, path, updateRequest, callback)->
+	newUpdate: (user_id, projectName, path, updateRequest, source, callback)->
 		getOrCreateProject = (cb)=>
 			projectLocator.findUsersProjectByName user_id, projectName, (err, project)=>
 				logger.log user_id:user_id, filePath:path, projectName:projectName, "handling new update from tpds"
@@ -22,11 +22,11 @@ module.exports =
 				else
 					cb err, project
 		getOrCreateProject (err, project)->
-			updateMerger.mergeUpdate project._id, path, updateRequest, (err)->
+			updateMerger.mergeUpdate project._id, path, updateRequest, source, (err)->
 				callback(err)
 
 
-	deleteUpdate: (user_id, projectName, path, callback)->	
+	deleteUpdate: (user_id, projectName, path, source, callback)->	
 		logger.log user_id:user_id, filePath:path, "handling delete update from tpds"
 		projectLocator.findUsersProjectByName user_id, projectName, (err, project)->
 			if !project?
@@ -36,7 +36,7 @@ module.exports =
 				logger.log user_id:user_id, filePath:path, projectName:projectName, project_id:project._id, "project found for delete update, path is root so marking project as deleted"
 				return projectDeleter.markAsDeletedByExternalSource project._id, callback
 			else
-				updateMerger.deleteUpdate project._id, path, (err)->
+				updateMerger.deleteUpdate project._id, path, source, (err)->
 					callback(err)
 
 

+ 8 - 4
services/web/test/UnitTests/coffee/ThirdPartyDataStore/TpdsControllerTests.coffee

@@ -25,9 +25,11 @@ describe 'TpdsController', ->
 				params:{0:path, "user_id":@user_id}
 				session:
 					destroy:->
-			@TpdsUpdateHandler.newUpdate = sinon.stub().callsArg(4)
+				headers:
+					"x-sl-update-source": @source = "dropbox"
+			@TpdsUpdateHandler.newUpdate = sinon.stub().callsArg(5)
 			res =  send: => 
-				@TpdsUpdateHandler.newUpdate.calledWith(@user_id, "projectName","/here.txt", req).should.equal true
+				@TpdsUpdateHandler.newUpdate.calledWith(@user_id, "projectName","/here.txt", req, @source).should.equal true
 				done()
 			@TpdsController.mergeUpdate req, res
 
@@ -38,9 +40,11 @@ describe 'TpdsController', ->
 				params:{0:path, "user_id":@user_id}
 				session:
 					destroy:->
-			@TpdsUpdateHandler.deleteUpdate = sinon.stub().callsArg(3)
+				headers:
+					"x-sl-update-source": @source = "dropbox"
+			@TpdsUpdateHandler.deleteUpdate = sinon.stub().callsArg(4)
 			res = send: => 
-				@TpdsUpdateHandler.deleteUpdate.calledWith(@user_id, "projectName", "/here.txt").should.equal true
+				@TpdsUpdateHandler.deleteUpdate.calledWith(@user_id, "projectName", "/here.txt", @source).should.equal true
 				done()
 			@TpdsController.deleteUpdate req, res
 

+ 10 - 10
services/web/test/UnitTests/coffee/ThirdPartyDataStore/TpdsUpdateHandlerTests.coffee

@@ -7,8 +7,8 @@ describe 'TpdsUpdateHandler', ->
 	beforeEach ->
 		@requestQueuer = {}
 		@updateMerger = 
-			deleteUpdate: (user_id, path, cb)->cb()
-			mergeUpdate:(user_id, path, update, cb)->cb()
+			deleteUpdate: (user_id, path, source, cb)->cb()
+			mergeUpdate:(user_id, path, update, source, cb)->cb()
 		@editorController = {}
 		@project_id = "dsjajilknaksdn"
 		@project = {_id:@project_id, name:"projectNameHere"}
@@ -33,15 +33,15 @@ describe 'TpdsUpdateHandler', ->
 			path = "/path/here"
 			update = {}
 			@updateMerger.mergeUpdate = sinon.stub()
-			@updateMerger.mergeUpdate.withArgs(@project_id, path, update).callsArg(3)
-			@handler.newUpdate @user_id, @project.name, path, update, =>
+			@updateMerger.mergeUpdate.withArgs(@project_id, path, update, @source).callsArg(4)
+			@handler.newUpdate @user_id, @project.name, path, update, @source, =>
 				@projectCreationHandler.createBlankProject.called.should.equal false
 				done()
 
 		it 'should create a new project if one does not already exit', (done)->
 			@projectLocator.findUsersProjectByName = sinon.stub().callsArgWith(2)
 			path = "/"
-			@handler.newUpdate @user_id, @project.name, path, {}, =>
+			@handler.newUpdate @user_id, @project.name, path, {}, @source, =>
 				@projectCreationHandler.createBlankProject.calledWith(@user_id, @project.name).should.equal true
 				done()
 
@@ -49,7 +49,7 @@ describe 'TpdsUpdateHandler', ->
 			@projectLocator.findUsersProjectByName = sinon.stub().callsArgWith(2)
 			@handler._rootDocTimeoutLength = 0
 			path = "/"
-			@handler.newUpdate @user_id, @project.name, path, {}, =>
+			@handler.newUpdate @user_id, @project.name, path, {}, @source, =>
 				setTimeout (=>
 					@rootDocManager.setRootDocAutomatically.calledWith(@project._id).should.equal true
 					done()
@@ -61,16 +61,16 @@ describe 'TpdsUpdateHandler', ->
 		it 'should call deleteEntity in the collaberation manager', (done)->
 			path = "/delete/this"
 			update = {}
-			@updateMerger.deleteUpdate = sinon.stub().callsArg(2)
+			@updateMerger.deleteUpdate = sinon.stub().callsArg(3)
 
-			@handler.deleteUpdate @user_id, @project.name, path, =>
+			@handler.deleteUpdate @user_id, @project.name, path, @source, =>
 				@projectDeleter.markAsDeletedByExternalSource.calledWith(@project._id).should.equal false
-				@updateMerger.deleteUpdate.calledWith(@project_id, path).should.equal true
+				@updateMerger.deleteUpdate.calledWith(@project_id, path, @source).should.equal true
 				done()
 
 		it 'should mark the project as deleted by external source if path is a single slash', (done)->
 			path = "/"
-			@handler.deleteUpdate @user_id, @project.name, path, =>
+			@handler.deleteUpdate @user_id, @project.name, path, @source, =>
 				@projectDeleter.markAsDeletedByExternalSource.calledWith(@project._id).should.equal true
 				done()