Write docs to do collection and project collection
- docs are written to project collection then doc collection - deletes used to insert into doc collection, now its the same upsert with deleted = true - does not set delted = false for new docs as it is not needed, save space - changed delete to be seperate update on mongo
This commit is contained in:
@@ -2,6 +2,7 @@ MongoManager = require "./MongoManager"
|
||||
Errors = require "./Errors"
|
||||
logger = require "logger-sharelatex"
|
||||
_ = require "underscore"
|
||||
async = require "async"
|
||||
|
||||
module.exports = DocManager =
|
||||
getDoc: (project_id, doc_id, options, callback = (error, doc, mongoPath) ->) ->
|
||||
@@ -51,7 +52,13 @@ module.exports = DocManager =
|
||||
newDocLines: lines
|
||||
rev: doc.rev
|
||||
}, "updating doc lines"
|
||||
MongoManager.updateDoc project_id, mongoPath, lines, (error) ->
|
||||
async.series [
|
||||
(cb)->
|
||||
# project collection is still primary so that needs to be successful first
|
||||
MongoManager.updateDoc project_id, mongoPath, lines, cb
|
||||
(cb)->
|
||||
MongoManager.upsertIntoDocCollection project_id, doc_id, lines, doc.rev, cb
|
||||
], (error)->
|
||||
return callback(error) if error?
|
||||
callback null, true, doc.rev + 1 # rev will have been incremented in mongo by MongoManager.updateDoc
|
||||
|
||||
@@ -59,9 +66,10 @@ module.exports = DocManager =
|
||||
DocManager.getDoc project_id, doc_id, (error, doc) ->
|
||||
return callback(error) if error?
|
||||
return callback new Errors.NotFoundError("No such project/doc: #{project_id}/#{doc_id}") if !doc?
|
||||
MongoManager.insertDoc project_id, doc_id, { lines: doc.lines, deleted: true }, (error) ->
|
||||
return callback(error) if error?
|
||||
callback()
|
||||
MongoManager.upsertIntoDocCollection project_id, doc_id, doc.lines, doc.rev, (error) ->
|
||||
MongoManager.markDocAsDeleted doc_id, (error) ->
|
||||
return callback(error) if error?
|
||||
callback()
|
||||
|
||||
findAllDocsInProject: (project, callback = (error, docs) ->) ->
|
||||
callback null, @_findAllDocsInFolder project.rootFolder[0]
|
||||
|
||||
@@ -18,7 +18,18 @@ module.exports = MongoManager =
|
||||
|
||||
db.projects.update _id: ObjectId(project_id), update, callback
|
||||
|
||||
insertDoc: (project_id, doc_id, attributes, callback = (error) ->) ->
|
||||
attributes._id = ObjectId(doc_id)
|
||||
attributes.project_id = ObjectId(project_id)
|
||||
db.docs.insert attributes, callback
|
||||
upsertIntoDocCollection: (project_id, doc_id, lines, oldRev, callback)->
|
||||
update =
|
||||
$set:{}
|
||||
update.$set["lines"] = lines
|
||||
update.$set["project_id"] = ObjectId(project_id)
|
||||
update.$set["rev"] = oldRev + 1
|
||||
db.docs.update _id: ObjectId(doc_id), update, {upsert: true}, callback
|
||||
|
||||
|
||||
markDocAsDeleted: (doc_id, callback)->
|
||||
update =
|
||||
$set: {}
|
||||
update.$set["deleted"] = true
|
||||
db.docs.update _id: ObjectId(doc_id), update, (err)->
|
||||
callback(err)
|
||||
|
||||
Reference in New Issue
Block a user