45 lines
997 B
Ruby
45 lines
997 B
Ruby
class Travis::Api::App
|
|
module Responders
|
|
class Json < Base
|
|
include Helpers::Accept
|
|
|
|
def apply?
|
|
super && !resource.is_a?(String) && !resource.nil? && accepts_log?
|
|
end
|
|
|
|
def apply
|
|
halt result.to_json
|
|
end
|
|
|
|
private
|
|
|
|
def accepts_log?
|
|
return true unless resource.is_a?(Log)
|
|
|
|
chunked = accept_params[:chunked]
|
|
chunked ? !resource.aggregated_at : true
|
|
end
|
|
|
|
def result
|
|
builder ? builder.new(resource, params).data : resource
|
|
end
|
|
|
|
def builder
|
|
@builder ||= Travis::Api.builder(resource, { :version => version }.merge(options))
|
|
end
|
|
|
|
def accept_params
|
|
(options[:accept].params || {}).symbolize_keys
|
|
end
|
|
|
|
def version
|
|
options[:accept].version || Travis::Api::App::Helpers::Accept::DEFAULT_VERSION
|
|
end
|
|
|
|
def params
|
|
(request.params || {}).merge(accept_params)
|
|
end
|
|
end
|
|
end
|
|
end
|