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

Return track changes entries in HTTP request

James Allen 10 лет назад
Родитель
Сommit
418405e8b9

+ 4 - 4
services/document-updater/app/coffee/DocumentManager.coffee

@@ -26,20 +26,20 @@ module.exports = DocumentManager =
 			else
 				callback null, lines, version, track_changes_entries, true
 
-	getDocAndRecentOps: (project_id, doc_id, fromVersion, _callback = (error, lines, version, recentOps) ->) ->
+	getDocAndRecentOps: (project_id, doc_id, fromVersion, _callback = (error, lines, version, recentOps, track_changes_entries) ->) ->
 		timer = new Metrics.Timer("docManager.getDocAndRecentOps")
 		callback = (args...) ->
 			timer.done()
 			_callback(args...)
 		
-		DocumentManager.getDoc project_id, doc_id, (error, lines, version) ->
+		DocumentManager.getDoc project_id, doc_id, (error, lines, version, track_changes_entries) ->
 			return callback(error) if error?
 			if fromVersion == -1
-				callback null, lines, version, []
+				callback null, lines, version, [], track_changes_entries
 			else
 				RedisManager.getPreviousDocOps doc_id, fromVersion, version, (error, ops) ->
 					return callback(error) if error?
-					callback null, lines, version, ops
+					callback null, lines, version, ops, track_changes_entries
 
 	setDoc: (project_id, doc_id, newLines, source, user_id, _callback = (error) ->) ->
 		timer = new Metrics.Timer("docManager.setDoc")

+ 2 - 1
services/document-updater/app/coffee/HttpController.coffee

@@ -18,7 +18,7 @@ module.exports = HttpController =
 		else
 			fromVersion = -1
 
-		DocumentManager.getDocAndRecentOpsWithLock project_id, doc_id, fromVersion, (error, lines, version, ops) ->
+		DocumentManager.getDocAndRecentOpsWithLock project_id, doc_id, fromVersion, (error, lines, version, ops, track_changes_entries) ->
 			timer.done()
 			return next(error) if error?
 			logger.log project_id: project_id, doc_id: doc_id, "got doc via http"
@@ -29,6 +29,7 @@ module.exports = HttpController =
 				lines: lines
 				version: version
 				ops: ops
+				track_changes_entries: track_changes_entries
 
 	_getTotalSizeOfLines: (lines) ->
 		size = 0

+ 2 - 3
services/document-updater/test/acceptance/coffee/TrackChangesTests.coffee

@@ -47,10 +47,9 @@ describe "Track changes", ->
 					setTimeout done, 200
 		
 		it "should set the updated track changes entries in redis", (done) ->
-			console.log "TODO: GET ME FROM HTTP REQUEST"
-			rclient.get "TrackChangesEntries:#{@doc.id}", (error, value) =>
+			DocUpdaterClient.getDoc @project_id, @doc.id, (error, res, data) =>
 				throw error if error?
-				entries = JSON.parse(value)
+				entries = data.track_changes_entries
 				change = entries.changes[0]
 				change.op.should.deep.equal { i: "456", p: 3 }
 				change.metadata.user_id.should.equal @user_id

+ 2 - 2
services/document-updater/test/unit/coffee/DocumentManager/DocumentManagerTests.coffee

@@ -117,7 +117,7 @@ describe "DocumentManager", ->
 					.should.equal true
 
 			it "should call the callback with the doc info", ->
-				@callback.calledWith(null, @lines, @version, @ops).should.equal true
+				@callback.calledWith(null, @lines, @version, @ops, @track_changes_entries).should.equal true
 
 			it "should time the execution", ->
 				@Metrics.Timer::done.called.should.equal true
@@ -137,7 +137,7 @@ describe "DocumentManager", ->
 				@RedisManager.getPreviousDocOps.called.should.equal false
 
 			it "should call the callback with the doc info", ->
-				@callback.calledWith(null, @lines, @version, []).should.equal true
+				@callback.calledWith(null, @lines, @version, [], @track_changes_entries).should.equal true
 
 			it "should time the execution", ->
 				@Metrics.Timer::done.called.should.equal true

+ 3 - 1
services/document-updater/test/unit/coffee/HttpController/getDocTests.coffee

@@ -22,6 +22,7 @@ describe "HttpController.getDoc", ->
 		@ops = ["mock-op-1", "mock-op-2"]
 		@version = 42
 		@fromVersion = 42
+		@track_changes_entries = { changes: "mock", comments: "mock" }
 		@res =
 			send: sinon.stub()
 		@req =
@@ -32,7 +33,7 @@ describe "HttpController.getDoc", ->
 
 	describe "when the document exists and no recent ops are requested", ->
 		beforeEach ->
-			@DocumentManager.getDocAndRecentOpsWithLock = sinon.stub().callsArgWith(3, null, @lines, @version, [])
+			@DocumentManager.getDocAndRecentOpsWithLock = sinon.stub().callsArgWith(3, null, @lines, @version, [], @track_changes_entries)
 			@HttpController.getDoc(@req, @res, @next)
 
 		it "should get the doc", ->
@@ -47,6 +48,7 @@ describe "HttpController.getDoc", ->
 					lines: @lines
 					version: @version
 					ops: []
+					track_changes_entries: @track_changes_entries
 				}))
 				.should.equal true