version ProjectEntityHandler.copyFileFromExistingProjectWithProject

This commit is contained in:
Hayden Faulds
2017-12-04 09:42:09 +00:00
parent 60ee78704a
commit 088ce33cbc
2 changed files with 33 additions and 13 deletions
@@ -255,25 +255,31 @@ module.exports = ProjectEntityHandler =
copyFileFromExistingProjectWithProject: (project, folder_id, originalProject_id, origonalFileRef, callback = (error, fileRef, folder_id) ->)-> copyFileFromExistingProjectWithProject: (project, folder_id, originalProject_id, origonalFileRef, callback = (error, fileRef, folder_id) ->)->
project_id = project._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? return callback(err) if err?
confirmFolder project, folder_id, (folder_id)=> confirmFolder project, folder_id, (folder_id)=>
if !origonalFileRef? 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() return callback()
fileRef = new File name : origonalFileRef.name 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? 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) return callback(err)
ProjectEntityHandler._putElement project, folder_id, fileRef, "file", (err, result)=> ProjectEntityHandler._putElement project, folder_id, fileRef, "file", (err, result)=>
if err? 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) 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? 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" logger.err { err, project_id, folder_id, originalProject_id, origonalFileRef }, "error sending file to tpds worker"
callback(null, fileRef, folder_id) 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)->)-> mkdirp: (project_id, path, callback = (err, newlyCreatedFolders, lastFolderInPath)->)->
self = @ self = @
@@ -20,7 +20,7 @@ describe 'ProjectEntityHandler', ->
@fileUrl = 'filestore.example.com/file' @fileUrl = 'filestore.example.com/file'
@FileStoreHandler = @FileStoreHandler =
uploadFileFromDisk: sinon.stub().callsArgWith(3, null, @fileUrl) uploadFileFromDisk: sinon.stub().callsArgWith(3, null, @fileUrl)
copyFile: sinon.stub().callsArgWith(4, null) copyFile: sinon.stub().callsArgWith(4, null, @fileUrl)
@tpdsUpdateSender = @tpdsUpdateSender =
addDoc:sinon.stub().callsArg(1) addDoc:sinon.stub().callsArg(1)
addFile: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)-> @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) -> it "should should send the change in project structure to the doc updater", (done) ->
@documentUpdaterHandler.updateProjectStructure = (project_id, user_id, oldDocs, newDocs, oldFiles, newFiles) => @documentUpdaterHandler.updateProjectStructure = (passed_project_id, passed_user_id, oldDocs, newDocs, oldFiles, newFiles) =>
project_id.should.equal project_id passed_project_id.should.equal project_id
user_id.should.equal user_id passed_user_id.should.equal userId
newFiles.length.should.equal 1 newFiles.length.should.equal 1
newFile = newFiles[0] newFile = newFiles[0]
newFile.file.name.should.equal fileName newFile.file.name.should.equal fileName
@@ -989,7 +989,8 @@ describe 'ProjectEntityHandler', ->
oldFileRef = {name:fileName, _id:"oldFileRef"} oldFileRef = {name:fileName, _id:"oldFileRef"}
beforeEach -> 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)-> it 'should copy the file in FileStoreHandler', (done)->
@ProjectEntityHandler._putElement = sinon.stub().callsArgWith(4, null, {path:{fileSystem:"somehintg"}}) @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)-> @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", -> describe "renameEntity", ->
beforeEach -> beforeEach ->
@entity_id = "4eecaffcbffa66588e000009" @entity_id = "4eecaffcbffa66588e000009"