Class: Types::Packages::PackageDependencyLinkType

Inherits:
BaseObject
  • Object
show all
Defined in:
app/graphql/types/packages/package_dependency_link_type.rb

Instance Method Summary collapse

Methods inherited from BaseObject

accepts, assignable?, authorization, authorize, authorized?, #current_user, #id

Methods included from Gitlab::Graphql::Present

#present, #unpresented

Instance Method Details

#dependencyObject



35
36
37
# File 'app/graphql/types/packages/package_dependency_link_type.rb', line 35

def dependency
  ::Gitlab::Graphql::Loaders::BatchModelLoader.new(::Packages::Dependency, object.dependency_id).find
end

#metadataObject

NOTE: This method must be kept in sync with the union type: ‘Types::Packages::DependencyLinkMetadata`.

‘Types::Packages::DependencyLinkMetadata.resolve_type(metadata, ctx)` must never raise.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/graphql/types/packages/package_dependency_link_type.rb', line 19

def 
  model_class = case object.package.package_type
                when 'nuget'
                  ::Packages::Nuget::DependencyLinkMetadatum
                end

  return unless model_class

  # rubocop: disable CodeReuse/ActiveRecord
  BatchLoader::GraphQL.for(object.id).batch do |ids, loader|
    results = model_class.where(dependency_link_id: ids)
    results.each { |record| loader.call(record.dependency_link_id, record) }
  end
  # rubocop: enable CodeReuse/ActiveRecord
end