Fix argument signature of mergeUpdate and deleteUpdate

This commit is contained in:
James Allen 2014-10-16 11:43:54 +01:00
parent 46ecaf9f6c
commit f3a1ba93a4
4 changed files with 30 additions and 24 deletions

View file

@ -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?

View file

@ -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)

View file

@ -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

View file

@ -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()