mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
optimistically load all docs
This commit is contained in:
parent
e10d09d040
commit
b9b0596d83
2 changed files with 44 additions and 10 deletions
|
@ -55,15 +55,26 @@ module.exports = DocManager =
|
|||
return callback(err)
|
||||
callback(err, doc)
|
||||
|
||||
getAllNonDeletedDocs: (project_id, filter, callback = (error, docs) ->) ->
|
||||
DocArchive.unArchiveAllDocs project_id, (error) ->
|
||||
if error?
|
||||
return callback(error)
|
||||
_getAllDocs: (project_id, filter, callback = (error, docs) ->) ->
|
||||
MongoManager.getProjectsDocs project_id, {include_deleted: false}, filter, (error, docs) ->
|
||||
if err?
|
||||
return callback(error)
|
||||
else if !docs?
|
||||
return callback new Errors.NotFoundError("No docs for project #{project_id}")
|
||||
else
|
||||
callback(null, docs)
|
||||
|
||||
getAllNonDeletedDocs: (project_id, filter, callback = (error, docs) ->) ->
|
||||
DocManager._getAllDocs project_id, filter, (error, docs) ->
|
||||
return callback(error) if error?
|
||||
# check if any docs have been archived
|
||||
docsInS3 = (doc for doc in docs when doc?.inS3)
|
||||
if docsInS3.length > 0
|
||||
DocArchive.unArchiveAllDocs project_id, (error) ->
|
||||
if error?
|
||||
logger.err err:error, project_id:project_id, "error unarchiving docs"
|
||||
return callback(error)
|
||||
DocManager._getAllDocs project_id, filter, callback
|
||||
else
|
||||
return callback(null, docs)
|
||||
|
||||
|
|
|
@ -215,6 +215,29 @@ describe "DocManager", ->
|
|||
.calledWith(new Errors.NotFoundError("No docs for project #{@project_id}"))
|
||||
.should.equal true
|
||||
|
||||
describe "when there are some archived docs for the project", ->
|
||||
beforeEach ->
|
||||
@stubs = [{ _id: @doc_id, project_id: @project_id, inS3:true }]
|
||||
@docs = [{ _id: @doc_id, project_id: @project_id, lines: ["mock-lines"] }]
|
||||
@MongoManager.getProjectsDocs = sinon.stub()
|
||||
.callsArgWith(3, null, @stubs) # first call
|
||||
.callsArgWith(3, null, @docs) # second call (after unarchiving)
|
||||
@DocArchiveManager.unArchiveAllDocs = sinon.stub().callsArgWith(1, null)
|
||||
@DocManager.getAllNonDeletedDocs @project_id, @filter, @callback
|
||||
|
||||
it "should get the project from the database", ->
|
||||
@MongoManager.getProjectsDocs
|
||||
.calledWith(@project_id, {include_deleted: false}, @filter)
|
||||
.should.equal true
|
||||
|
||||
it "should unarchive the documents", ->
|
||||
@DocArchiveManager.unArchiveAllDocs
|
||||
.calledWith(@project_id)
|
||||
.should.equal true
|
||||
|
||||
it "should return the docs", ->
|
||||
@callback.calledWith(null, @docs).should.equal true
|
||||
|
||||
describe "deleteDoc", ->
|
||||
describe "when the doc exists", ->
|
||||
beforeEach ->
|
||||
|
|
Loading…
Reference in a new issue