22 行
755 B
Ruby
22 行
755 B
Ruby
module CountsListing
|
|
extend ActiveSupport::Concern
|
|
|
|
def index
|
|
locale = resolve_locale!
|
|
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,
|
|
at: request.query_parameters['at'].presence || Time.current.utc.iso8601(6) }
|
|
if query.mode == 'summary'
|
|
result.merge!(query.summary)
|
|
else
|
|
result[:versions] = CountsVersionRepr.many(
|
|
query.details, resource:, language_code: locale.language_code)
|
|
end
|
|
render json: result
|
|
rescue ArgumentError, TypeError
|
|
head :bad_request
|
|
end
|
|
end
|