order: { type: 'string', required: false }
}
end
+
+ def client_accepts_plain_text_stream
+ (request.headers['Accept'].split(' ') &
+ ['text/plain', '*/*']).count > 0
+ end
end
if !@object.andand.uuid
return render_not_found
end
- self.response.headers['Last-Modified'] = Time.now.ctime.to_s
- self.response_body = LogStreamer.new @object, {
- buffer_size: (params[:buffer_size] || 2**13)
- }
+ if client_accepts_plain_text_stream
+ self.response.headers['Last-Modified'] = Time.now.ctime.to_s
+ self.response_body = LogStreamer.new @object, {
+ buffer_size: (params[:buffer_size] || 2**13)
+ }
+ else
+ render json: {
+ href: url_for(uuid: @object.uuid),
+ comment: ('To retrieve the log stream as plain text, ' +
+ 'use a request header like "Accept: text/plain"')
+ }
+ end
end
def queue
if current_user.andand.is_admin
channel = params[:uuid] || channel
end
- self.response.headers['Last-Modified'] = Time.now.ctime.to_s
- self.response_body = ChannelStreamer.new(channel: channel)
+ if client_accepts_plain_text_stream
+ self.response.headers['Last-Modified'] = Time.now.ctime.to_s
+ self.response_body = ChannelStreamer.new(channel: channel)
+ else
+ render json: {
+ href: url_for(uuid: channel),
+ comment: ('To retrieve the event stream as plain text, ' +
+ 'use a request header like "Accept: text/plain"')
+ }
+ end
end
end