mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-22 02:04:31 +00:00
type-check ProjectGetter.getProject and getProjectWithoutLock arguments
This commit is contained in:
parent
693c8e8c60
commit
dd582d1b2e
4 changed files with 26 additions and 12 deletions
|
@ -37,7 +37,7 @@ module.exports = ProjectEntityMongoUpdateHandler = self =
|
|||
self._putElement project, folder_id, doc, "doc", callback
|
||||
|
||||
addFile: wrapWithLock (project_id, folder_id, fileRef, callback = (error, result, project) ->)->
|
||||
ProjectGetter.getProjectWithoutLock project_id, {rootFolder:true, name:true}, (err, project) ->
|
||||
ProjectGetter.getProjectWithoutLock project_id, {rootFolder:true, name:true}, (err, project) ->
|
||||
if err?
|
||||
logger.err project_id:project_id, err:err, "error getting project for add file"
|
||||
return callback(err)
|
||||
|
|
|
@ -23,11 +23,18 @@ module.exports = ProjectGetter =
|
|||
excludes["rootFolder#{Array(i).join(".folders")}.fileRefs"] = 0
|
||||
ProjectGetter.getProject project_id, excludes, callback
|
||||
|
||||
getProject: (project_id, projection, callback = (error, project) ->) ->
|
||||
getProject: (project_id, projection, callback) ->
|
||||
if !project_id?
|
||||
return callback("no project_id provided")
|
||||
return callback(new Error("no project_id provided"))
|
||||
|
||||
if projection?.rootFolder
|
||||
if typeof(projection) == "function" && !callback?
|
||||
callback = projection
|
||||
projection = {}
|
||||
|
||||
if typeof(projection) != "object"
|
||||
return callback(new Error("projection is not an object"))
|
||||
|
||||
if projection?.rootFolder || Object.keys(projection).length == 0
|
||||
ProjectEntityMongoUpdateHandler = require './ProjectEntityMongoUpdateHandler'
|
||||
lockKey = ProjectEntityMongoUpdateHandler.getProjectMongoLockKey project_id
|
||||
LockManager.runWithLock lockKey,
|
||||
|
@ -36,9 +43,16 @@ module.exports = ProjectGetter =
|
|||
else
|
||||
ProjectGetter.getProjectWithoutLock project_id, projection, callback
|
||||
|
||||
getProjectWithoutLock: (project_id, projection, callback = (error, project) ->) ->
|
||||
if typeof(projection) == "function"
|
||||
getProjectWithoutLock: (project_id, projection, callback) ->
|
||||
if !project_id?
|
||||
return callback(new Error("no project_id provided"))
|
||||
|
||||
if typeof(projection) == "function" && !callback?
|
||||
callback = projection
|
||||
projection = {}
|
||||
|
||||
if typeof(projection) != "object"
|
||||
return callback(new Error("projection is not an object"))
|
||||
|
||||
if typeof project_id == "string"
|
||||
query = _id: ObjectId(project_id)
|
||||
|
|
|
@ -80,13 +80,13 @@ describe "ProjectStructureChanges", ->
|
|||
before (done) ->
|
||||
MockDocUpdaterApi.clearProjectStructureUpdates()
|
||||
|
||||
ProjectGetter.getProject @example_project_id, (error, projects) =>
|
||||
ProjectGetter.getProject @example_project_id, (error, project) =>
|
||||
throw error if error?
|
||||
@owner.request.post {
|
||||
uri: "project/#{@example_project_id}/doc",
|
||||
json:
|
||||
name: 'new.tex'
|
||||
parent_folder_id: projects[0].rootFolder[0]._id
|
||||
parent_folder_id: project.rootFolder[0]._id
|
||||
}, (error, res, body) =>
|
||||
throw error if error?
|
||||
if res.statusCode < 200 || res.statusCode >= 300
|
||||
|
@ -137,9 +137,9 @@ describe "ProjectStructureChanges", ->
|
|||
|
||||
describe "uploading a file", ->
|
||||
before (done) ->
|
||||
ProjectGetter.getProject @example_project_id, (error, projects) =>
|
||||
ProjectGetter.getProject @example_project_id, (error, project) =>
|
||||
throw error if error?
|
||||
@root_folder_id = projects[0].rootFolder[0]._id.toString()
|
||||
@root_folder_id = project.rootFolder[0]._id.toString()
|
||||
done()
|
||||
|
||||
beforeEach () ->
|
||||
|
|
|
@ -28,10 +28,10 @@ describe "TpdsUpdateTests", ->
|
|||
done()
|
||||
|
||||
it "should have deleted the file", (done) ->
|
||||
ProjectGetter.getProject @project_id, (error, [project]) ->
|
||||
ProjectGetter.getProject @project_id, (error, project) ->
|
||||
throw error if error?
|
||||
projectFolder = project.rootFolder[0]
|
||||
for doc in projectFolder.docs
|
||||
if doc.name == "main.tex"
|
||||
throw new Error("expected main.tex to have been deleted")
|
||||
done()
|
||||
done()
|
||||
|
|
Loading…
Reference in a new issue