このコミットが含まれているのは:
@@ -6,7 +6,8 @@ module CountsListing
|
||||
resource = is_a?(CountsPostsController) ? 'posts' : 'tags'
|
||||
query = CountsQuery.new(version_scope, resource, request.query_parameters.except('locale')
|
||||
.merge('locale' => locale.code))
|
||||
result = { count: query.count, page: query.page, limit: query.limit }
|
||||
result = { count: query.count, page: query.page, limit: query.limit,
|
||||
at: request.query_parameters['at'].presence || Time.current.utc.iso8601(6) }
|
||||
if query.mode == 'summary'
|
||||
result.merge!(query.summary)
|
||||
else
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
class CountsExportsController < ApplicationController
|
||||
wrap_parameters false
|
||||
|
||||
def index
|
||||
locale = resolve_locale!
|
||||
exporter = CountsExporter.new(request.request_parameters.merge(request.query_parameters),
|
||||
language_code: locale.language_code)
|
||||
response.headers['Content-Type'] = exporter.format == 'json' ?
|
||||
'application/json; charset=utf-8' : 'text/csv; charset=utf-8'
|
||||
response.headers['Content-Disposition'] =
|
||||
"attachment; filename=\"counts-#{ exporter.resource }.#{ exporter.format }\""
|
||||
response.headers['Cache-Control'] = 'private, no-store'
|
||||
response.headers['X-Accel-Buffering'] = 'no'
|
||||
# Rack::ETag otherwise materialises the response to calculate a digest.
|
||||
response.headers['Last-Modified'] = Time.current.httpdate
|
||||
self.response_body = exporter.body
|
||||
rescue ArgumentError, TypeError, JSON::ParserError
|
||||
head :bad_request
|
||||
end
|
||||
end
|
||||
@@ -38,13 +38,7 @@ class PostVersionsController < ApplicationController
|
||||
private
|
||||
|
||||
def version_scope
|
||||
PostVersion.joins(<<~SQL.squish)
|
||||
LEFT JOIN
|
||||
post_versions prev
|
||||
ON
|
||||
prev.post_id = post_versions.post_id
|
||||
AND prev.version_no = post_versions.version_no - 1
|
||||
SQL
|
||||
PostVersion.with_previous_version
|
||||
.select('post_versions.*',
|
||||
'prev.title AS prev_title',
|
||||
'prev.url AS prev_url',
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする