Просмотр исходного кода

remove unarchived docs from s3

Henrique Dias 11 лет назад
Родитель
Сommit
42f2afc4dd

+ 6 - 1
services/docstore/app/coffee/DocArchiveManager.coffee

@@ -60,7 +60,12 @@ module.exports = DocArchive =
 				return callback new Errors.NotFoundError("Error in S3 request")
 				return callback new Errors.NotFoundError("Error in S3 request")
 			MongoManager.upsertIntoDocCollection project_id, doc_id.toString(), lines, (error) ->
 			MongoManager.upsertIntoDocCollection project_id, doc_id.toString(), lines, (error) ->
 				return callback(error) if error?
 				return callback(error) if error?
-				callback()
+				logger.log project_id: project_id, doc_id: doc_id, "deleting doc from s3"
+				request.del options, (err, res, body)->
+					if err? || res.statusCode != 204
+						logger.err err:err, res:res, "something went wrong deleting doc from aws"
+						return callback new Errors.NotFoundError("Error in S3 request")
+					callback()
 
 
 	buildS3Options: (content, key)->
 	buildS3Options: (content, key)->
 		return {
 		return {

+ 3 - 1
services/docstore/test/unit/coffee/DocArchiveManager.coffee

@@ -25,6 +25,7 @@ describe "DocArchiveManager", ->
 		@request = 
 		@request = 
 			put: {}
 			put: {}
 			get: {}
 			get: {}
+			del: {}
 
 
 		@docs = [{
 		@docs = [{
 			_id: ObjectId()
 			_id: ObjectId()
@@ -98,7 +99,8 @@ describe "DocArchiveManager", ->
 	describe "unarchiveDoc", ->
 	describe "unarchiveDoc", ->
 
 
 		it "should use correct options", (done)->
 		it "should use correct options", (done)->
-			@request.get = sinon.stub().callsArgWith(1,  null, statusCode:200, @docs[0].lines)
+			@request.get = sinon.stub().callsArgWith(1, null, statusCode:200, @docs[0].lines)
+			@request.del = sinon.stub().callsArgWith(1, null, statusCode:204, {})
 			@requires["request"] = @request
 			@requires["request"] = @request
 			@DocArchiveManager = SandboxedModule.require modulePath, requires: @requires
 			@DocArchiveManager = SandboxedModule.require modulePath, requires: @requires