Class: Decidim::Api::AliasAnalyzer

Inherits:
GraphQL::Analysis::AST::Analyzer
  • Object
show all
Defined in:
lib/decidim/api/alias_analyzer.rb

Instance Method Summary collapse

Constructor Details

#initialize(query) ⇒ AliasAnalyzer

Returns a new instance of AliasAnalyzer.



6
7
8
9
10
# File 'lib/decidim/api/alias_analyzer.rb', line 6

def initialize(query)
  super

  @aliases = Set.new
end

Instance Method Details

#on_enter_field(node, _parent, _visitor) ⇒ Object



12
13
14
# File 'lib/decidim/api/alias_analyzer.rb', line 12

def on_enter_field(node, _parent, _visitor)
  @aliases.add(node.alias) if node.alias.present?
end

#resultObject



16
17
18
19
20
# File 'lib/decidim/api/alias_analyzer.rb', line 16

def result
  if @aliases.size > Decidim::Api.max_aliases
    Errors::TooManyAliasesError.new(I18n.t("decidim.api.errors.too_many_aliases_error", size: @aliases.size, limit: Decidim::Api.max_aliases))
  end
end