From 3bc538046886d39be704c56cfcd9533f9d7e1cbe Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 9 Aug 2015 17:50:15 -0300 Subject: [PATCH] handle inS3 flag --- .../app/coffee/DocArchiveManager.coffee | 8 ++++++-- services/track-changes/app/coffee/MongoAWS.coffee | 2 ++ .../track-changes/app/coffee/MongoManager.coffee | 15 ++++++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/services/track-changes/app/coffee/DocArchiveManager.coffee b/services/track-changes/app/coffee/DocArchiveManager.coffee index de769efa4f..6ab60f7b72 100644 --- a/services/track-changes/app/coffee/DocArchiveManager.coffee +++ b/services/track-changes/app/coffee/DocArchiveManager.coffee @@ -28,7 +28,9 @@ module.exports = DocArchiveManager = else MongoAWS.archiveDocHistory project_id, doc_id, (error) -> logger.log doc_id:doc_id, error: error, "mongoexport" - return callback() + MongoManager.markDocHistoryAsArchived doc_id, (error) -> + return callback(error) if error? + callback() unArchiveAllDocsChanges: (project_id, callback = (error, docs) ->) -> MongoManager.getProjectsDocs project_id, (error, docs) -> @@ -47,4 +49,6 @@ module.exports = DocArchiveManager = else MongoAWS.unArchiveDocHistory project_id, doc_id, (error) -> logger.log doc_id:doc_id, error: error, "mongoimport" - return callback() + MongoManager.markDocHistoryAsUnarchived doc_id, (error) -> + return callback(error) if error? + callback() diff --git a/services/track-changes/app/coffee/MongoAWS.coffee b/services/track-changes/app/coffee/MongoAWS.coffee index 9a63ddab4d..43dd59591b 100644 --- a/services/track-changes/app/coffee/MongoAWS.coffee +++ b/services/track-changes/app/coffee/MongoAWS.coffee @@ -11,11 +11,13 @@ module.exports = MongoAWS = archiveDocHistory: (project_id, doc_id, callback = (error) ->) -> MongoAWS.mongoExportDocHistory doc_id, (error, filepath) -> MongoAWS.s3upStream project_id, doc_id, filepath, callback + #delete temp file? unArchiveDocHistory: (project_id, doc_id, callback = (error) ->) -> MongoAWS.s3downStream project_id, doc_id, (error, filepath) -> if error == null MongoAWS.mongoImportDocHistory filepath, callback + #delete temp file? else callback diff --git a/services/track-changes/app/coffee/MongoManager.coffee b/services/track-changes/app/coffee/MongoManager.coffee index a7898b79c4..a4011c1af3 100644 --- a/services/track-changes/app/coffee/MongoManager.coffee +++ b/services/track-changes/app/coffee/MongoManager.coffee @@ -130,8 +130,17 @@ module.exports = MongoManager = getProjectsDocs: (project_id, callback)-> db.docs.find project_id: ObjectId(project_id.toString()), {}, callback - getDocChanges: (doc_id, callback)-> - db.docHistory.find doc_id: ObjectId(doc_id.toString()), {}, callback - getDocChangesCount: (doc_id, callback)-> db.docHistory.count doc_id: ObjectId(doc_id.toString()), {}, callback + + markDocHistoryAsArchived: (doc_id, callback)-> + MongoManager.getLastCompressedUpdate doc_id, (error, update) -> + db.docHistory.update { _id: update._id }, { $set : { inS3 : true } }, (error)-> + return callback(error) if error? + db.docHistory.remove { doc_id : doc_id, inS3 : { $exists : false } }, (error)-> + return callback(error) if error? + callback(error) + + markDocHistoryAsUnarchived: (doc_id, callback)-> + db.docHistory.update { doc_id: doc_id }, { $unset : { inS3 : true } }, { multi: true }, (error)-> + callback(error)