Przeglądaj źródła

version ProjectEntityHandler.copyFileFromExistingProjectWithProject

Hayden Faulds 9 lat temu
rodzic
commit
088ce33cbc

+ 14 - 8
services/web/app/coffee/Features/Project/ProjectEntityHandler.coffee

@@ -255,25 +255,31 @@ module.exports = ProjectEntityHandler =
 
 	copyFileFromExistingProjectWithProject: (project, folder_id, originalProject_id, origonalFileRef, callback = (error, fileRef, folder_id) ->)->
 		project_id = project._id
-		logger.log project_id:project_id, folder_id:folder_id, originalProject_id:originalProject_id, origonalFileRef:origonalFileRef, "copying file in s3 with project"
+		logger.log { project_id, folder_id, originalProject_id, origonalFileRef }, "copying file in s3 with project"
 		return callback(err) if err?
 		confirmFolder project, folder_id, (folder_id)=>
 			if !origonalFileRef?
-				logger.err project_id:project._id, folder_id:folder_id, originalProject_id:originalProject_id, origonalFileRef:origonalFileRef, "file trying to copy is null"
+				logger.err { project_id, folder_id, originalProject_id, origonalFileRef }, "file trying to copy is null"
 				return callback()
 			fileRef = new File name : origonalFileRef.name
-			FileStoreHandler.copyFile originalProject_id, origonalFileRef._id, project._id, fileRef._id, (err)->
+			FileStoreHandler.copyFile originalProject_id, origonalFileRef._id, project._id, fileRef._id, (err, fileStoreUrl)->
 				if err?
-					logger.err err:err, project_id:project._id, folder_id:folder_id, originalProject_id:originalProject_id, origonalFileRef:origonalFileRef, "error coping file in s3"
+					logger.err { err, project_id, folder_id, originalProject_id, origonalFileRef }, "error coping file in s3"
 					return callback(err)
 				ProjectEntityHandler._putElement project, folder_id, fileRef, "file", (err, result)=>
 					if err?
-						logger.err err:err, project_id:project._id, folder_id:folder_id, "error putting element as part of copy"
+						logger.err { err, project_id, folder_id }, "error putting element as part of copy"
 						return callback(err)
-					tpdsUpdateSender.addFile {project_id:project._id, file_id:fileRef._id, path:result?.path?.fileSystem, rev:fileRef.rev, project_name:project.name}, (err) ->
+					tpdsUpdateSender.addFile { project_id, file_id:fileRef._id, path:result?.path?.fileSystem, rev:fileRef.rev, project_name:project.name}, (err) ->
 						if err?
-							logger.err err:err,  project_id:project._id, folder_id:folder_id, originalProject_id:originalProject_id, origonalFileRef:origonalFileRef, "error sending file to tpds worker"
-						callback(null, fileRef, folder_id)
+							logger.err { err, project_id, folder_id, originalProject_id, origonalFileRef }, "error sending file to tpds worker"
+						newFile =
+							file: fileRef
+							path: result?.path?.fileSystem
+							url: fileStoreUrl
+						DocumentUpdaterHandler.updateProjectStructure project_id, null, [], [], [], [newFile], (error) ->
+							return callback(error) if error?
+							callback null, fileRef, folder_id
 
 	mkdirp: (project_id, path, callback = (err, newlyCreatedFolders, lastFolderInPath)->)->
 		self = @

+ 19 - 5
services/web/test/unit/coffee/Project/ProjectEntityHandlerTests.coffee

@@ -20,7 +20,7 @@ describe 'ProjectEntityHandler', ->
 		@fileUrl = 'filestore.example.com/file'
 		@FileStoreHandler =
 			uploadFileFromDisk: sinon.stub().callsArgWith(3, null, @fileUrl)
-			copyFile: sinon.stub().callsArgWith(4, null)
+			copyFile: sinon.stub().callsArgWith(4, null, @fileUrl)
 		@tpdsUpdateSender =
 			addDoc:sinon.stub().callsArg(1)
 			addFile:sinon.stub().callsArg(1)
@@ -570,9 +570,9 @@ describe 'ProjectEntityHandler', ->
 			@ProjectEntityHandler.addFile project_id, folder_id, fileName, {}, userId, (err, fileRef, parentFolder)->
 
 		it "should should send the change in project structure to the doc updater", (done) ->
-			@documentUpdaterHandler.updateProjectStructure = (project_id, user_id, oldDocs, newDocs, oldFiles, newFiles) =>
-				project_id.should.equal project_id
-				user_id.should.equal user_id
+			@documentUpdaterHandler.updateProjectStructure = (passed_project_id, passed_user_id, oldDocs, newDocs, oldFiles, newFiles) =>
+				passed_project_id.should.equal project_id
+				passed_user_id.should.equal userId
 				newFiles.length.should.equal 1
 				newFile = newFiles[0]
 				newFile.file.name.should.equal fileName
@@ -989,7 +989,8 @@ describe 'ProjectEntityHandler', ->
 		oldFileRef = {name:fileName, _id:"oldFileRef"}
 
 		beforeEach ->
-			@ProjectEntityHandler._putElement = sinon.stub().callsArgWith(4, null, {path:{fileSystem:"somehintg"}})
+			@fileSystemPath = "somehintg"
+			@ProjectEntityHandler._putElement = sinon.stub().callsArgWith(4, null, {path:{fileSystem: @fileSystemPath}})
 
 		it 'should copy the file in FileStoreHandler', (done)->
 			@ProjectEntityHandler._putElement = sinon.stub().callsArgWith(4, null, {path:{fileSystem:"somehintg"}})
@@ -1030,6 +1031,19 @@ describe 'ProjectEntityHandler', ->
 
 			@ProjectEntityHandler.copyFileFromExistingProjectWithProject @project, folder_id, oldProject_id, oldFileRef, (err, fileRef, parentFolder)->
 
+		it "should should send the change in project structure to the doc updater", (done) ->
+			@documentUpdaterHandler.updateProjectStructure = (passed_project_id, passed_user_id, oldDocs, newDocs, oldFiles, newFiles) =>
+				passed_project_id.should.equal project_id
+				#passed_user_id.should.equal userId
+				newFiles.length.should.equal 1
+				newFile = newFiles[0]
+				newFile.file.name.should.equal fileName
+				newFile.path.should.equal @fileSystemPath
+				newFile.url.should.equal @fileUrl
+				done()
+
+			@ProjectEntityHandler.copyFileFromExistingProjectWithProject @project, folder_id, oldProject_id, oldFileRef, (err, fileRef, parentFolder)->
+
 	describe "renameEntity", ->
 		beforeEach ->
 			@entity_id = "4eecaffcbffa66588e000009"