このコミットが含まれているのは:
@@ -24,6 +24,22 @@ class CountsExportProjection
|
||||
'aliases' => ['languageCode', 'name', 'scriptCode'],
|
||||
'parents' => ['id'] }.freeze
|
||||
|
||||
def self.default_columns(resource)
|
||||
fields = { 'posts' => ['title', 'url', 'tags', 'parents', 'video_ms'],
|
||||
'tags' => ['name', 'category', 'aliases', 'parents'],
|
||||
'nico_tags' => ['name', 'linked_tags'],
|
||||
'tag_descriptions' => ['language_code', 'body', 'source_language_code'],
|
||||
'tag_groups' => ['name', 'description', 'members'],
|
||||
'materials' => ['url', 'tag_id', 'source_kind'] }.fetch(resource)
|
||||
['resource_id', 'version_no'] + fields + ['event_type', 'user', 'created_at']
|
||||
end
|
||||
|
||||
def self.default_children(resource)
|
||||
{ 'posts' => ['tags.name', 'parents.id'],
|
||||
'tags' => ['aliases.name', 'parents.id'],
|
||||
'tag_groups' => ['members.tagId'] }.fetch(resource, [])
|
||||
end
|
||||
|
||||
attr_reader :columns, :headers
|
||||
|
||||
def initialize(params, resource:, summary:, tags:)
|
||||
@@ -37,7 +53,8 @@ class CountsExportProjection
|
||||
else
|
||||
CountsQuery::COLUMNS.fetch(resource)
|
||||
end
|
||||
@columns = params.fetch('columns', allowed.join(',')).split(',')
|
||||
defaults = summary ? allowed : self.class.default_columns(resource)
|
||||
@columns = params.fetch('columns', defaults.join(',')).split(',')
|
||||
raise ArgumentError if (@columns - allowed).any? || @columns.uniq != @columns
|
||||
|
||||
@headers = JSON.parse(params.fetch('headers', JSON.generate(@columns)))
|
||||
@@ -55,7 +72,8 @@ class CountsExportProjection
|
||||
|
||||
[path, direction]
|
||||
end
|
||||
@selected = params.key?('children') ? params['children'].split(',').to_set : nil
|
||||
@selected = params.key?('children') ? params['children'].split(',').to_set :
|
||||
self.class.default_children(resource).to_set
|
||||
valid = CHILDREN.flat_map do |key, fields|
|
||||
paths(fields, key)
|
||||
end
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする