3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/collab/channel.rb', line 3
def subscribed
reject_unauthorized_connection unless @document = find_document
starting_version = params[:startingVersion]&.to_i
raise "missing startingVersion" if starting_version.nil?
raise "invalid version" unless @document.possibly_saved_version? starting_version
stream_for @document
commits = @document.commits
.where("document_version > ?", starting_version)
.order(document_version: :asc)
.load
unless commits.empty?
raise "invalid version" unless commits.first.document_version == (starting_version + 1)
commits.lazy.map(&:as_json).each(method(:transmit))
end
end
|