Class: Packages::Composer::PackagesPresenter

Inherits:
Object
  • Object
show all
Includes:
API::Helpers::RelatedResourcesHelpers
Defined in:
app/presenters/packages/composer/packages_presenter.rb

Instance Method Summary collapse

Methods included from API::Helpers::RelatedResourcesHelpers

#expose_path, #expose_url, #issues_available?, #mrs_available?, #project_feature_string_access_level

Constructor Details

#initialize(group, packages, is_v2 = false) ⇒ PackagesPresenter

Returns a new instance of PackagesPresenter.



8
9
10
11
12
# File 'app/presenters/packages/composer/packages_presenter.rb', line 8

def initialize(group, packages, is_v2 = false)
  @group = group
  @packages = packages
  @is_v2 = is_v2
end

Instance Method Details

#package_versions(packages = @packages) ⇒ Object



43
44
45
# File 'app/presenters/packages/composer/packages_presenter.rb', line 43

def package_versions(packages = @packages)
  package_versions_index(packages).as_json
end

#providerObject



39
40
41
# File 'app/presenters/packages/composer/packages_presenter.rb', line 39

def provider
  { 'providers' => providers_map }
end

#rootObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/presenters/packages/composer/packages_presenter.rb', line 14

def root
  v2_path = expose_path(api_v4_group___packages_composer_p2_package_name_path({ id: @group.id, package_name: '%package%', format: '.json' }, true))

  index = {
    'packages' => [],
    'metadata-url' => v2_path
  }

  # if the client is composer v2 then we don't want to
  # include the provider_sha since it is computationally expensive
  # to compute.
  return index if @is_v2

  v1_path = expose_path(api_v4_group___packages_composer_package_name_path({ id: @group.id, package_name: '%package%$%hash%', format: '.json' }, true))

  index.merge!(
    'provider-includes' => {
      'p/%hash%.json' => {
        'sha256' => provider_sha
      }
    },
    'providers-url' => v1_path
  )
end