Files
grecia/lib/graph_ql/association_resolver.rb
Alberto Miedes Garcés 3c73f35416 Removed useless code
2017-01-07 22:20:28 +01:00

31 lines
873 B
Ruby

module GraphQL
class AssociationResolver
attr_reader :field_name, :target_model, :allowed_elements
def initialize(field_name, target_model)
@field_name = field_name
@target_model = target_model
@allowed_elements = target_public_elements
end
def call(object, arguments, context)
requested_elements = object.send(field_name)
filter_forbidden_elements(requested_elements)
end
private
def target_public_elements
target_model.respond_to?(:public_for_api) ? target_model.public_for_api : target_model.all
end
def filter_forbidden_elements(requested_elements)
if requested_elements.respond_to?(:each)
requested_elements.all & allowed_elements.all
else
allowed_elements.include?(requested_elements) ? requested_elements : nil
end
end
end
end