Revert "Revert "Revert "add ensureRootDocumentIsValidForProject method"""

This reverts commit aced9579ed1f4b0ab1780be0f4f45ae8d6a405a5.

GitOrigin-RevId: 90df39b8b90197c53ee80ffbb9ee61fa3b4ba905
This commit is contained in:
Ersun Warncke 2020-02-11 09:19:47 -04:00 committed by Copybot
parent b1c904f824
commit 67e89b9d80
2 changed files with 47 additions and 49 deletions

View file

@ -204,52 +204,50 @@ module.exports = ProjectRootDocManager = {
if (callback == null) {
callback = function(error) {}
}
return ProjectGetter.getProject(
project_id,
{ rootDoc_id: 1, rootFolder: 1 },
function(error, project) {
if (error != null) {
return callback(error)
}
if (project == null) {
return callback(new Error('project not found'))
}
ProjectRootDocManager.ensureRootDocumentIsValidForProject(
project,
return ProjectGetter.getProject(project_id, { rootDoc_id: 1 }, function(
error,
project
) {
if (error != null) {
return callback(error)
}
if (project == null) {
return callback(new Error('project not found'))
}
if (project.rootDoc_id != null) {
return ProjectEntityHandler.getAllDocPathsFromProjectById(
project_id,
function(error, docPaths) {
if (error != null) {
return callback(error)
}
let rootDocValid = false
for (let doc_id in docPaths) {
const _path = docPaths[doc_id]
if (doc_id === project.rootDoc_id) {
rootDocValid = true
}
}
if (rootDocValid) {
return callback()
} else {
return ProjectEntityUpdateHandler.unsetRootDoc(project_id, () =>
ProjectRootDocManager.setRootDocAutomatically(
project_id,
callback
)
)
}
}
)
} else {
return ProjectRootDocManager.setRootDocAutomatically(
project_id,
callback
)
}
)
},
ensureRootDocumentIsValidForProject(project, callback) {
const project_id = project._id
if (project.rootDoc_id != null) {
return ProjectEntityHandler.getAllDocPathsFromProject(project, function(
error,
docPaths
) {
if (error != null) {
return callback(error)
}
let rootDocValid = false
for (let doc_id in docPaths) {
const _path = docPaths[doc_id]
if (doc_id === project.rootDoc_id) {
rootDocValid = true
}
}
if (rootDocValid) {
return callback()
} else {
return ProjectEntityUpdateHandler.unsetRootDoc(project_id, () =>
ProjectRootDocManager.setRootDocAutomatically(project_id, callback)
)
}
})
} else {
return ProjectRootDocManager.setRootDocAutomatically(project_id, callback)
}
})
},
_sortFileList(listToSort, rootDirectory, callback) {

View file

@ -575,13 +575,13 @@ describe('ProjectRootDocManager', function() {
describe('ensureRootDocumentIsValid', function() {
beforeEach(function() {
this.project = { _id: this.project_id }
this.project = {}
this.ProjectGetter.getProject = sinon
.stub()
.callsArgWith(2, null, this.project)
this.ProjectEntityUpdateHandler.setRootDoc = sinon.stub().yields()
this.ProjectEntityUpdateHandler.unsetRootDoc = sinon.stub().yields()
this.ProjectEntityHandler.getAllDocPathsFromProject = sinon
this.ProjectEntityHandler.getAllDocPathsFromProjectById = sinon
.stub()
.callsArgWith(1, null, this.docPaths)
return (this.ProjectRootDocManager.setRootDocAutomatically = sinon
@ -599,9 +599,9 @@ describe('ProjectRootDocManager', function() {
)
})
it('should find the project fetching only the rootDoc_id and rootFolder fields', function() {
it('should find the project fetching only the rootDoc_id field', function() {
return this.ProjectGetter.getProject
.calledWith(this.project_id, { rootDoc_id: 1, rootFolder: 1 })
.calledWith(this.project_id, { rootDoc_id: 1 })
.should.equal(true)
})
@ -625,9 +625,9 @@ describe('ProjectRootDocManager', function() {
)
})
it('should find the project fetching only the rootDoc_id and rootFolder fields', function() {
it('should find the project fetching only the rootDoc_id field', function() {
return this.ProjectGetter.getProject
.calledWith(this.project_id, { rootDoc_id: 1, rootFolder: 1 })
.calledWith(this.project_id, { rootDoc_id: 1 })
.should.equal(true)
})