Class: Packages::Helm::IndexPresenter
Constant Summary
collapse
- API_VERSION =
'v1'
- CHANNEL =
'channel'
- INDEX_YAML_SUFFIX =
"/#{CHANNEL}/index.yaml"
- EMPTY_HASH =
{}.freeze
Instance Method Summary
collapse
#expose_path, #expose_url, #issues_available?, #mrs_available?, #project_feature_string_access_level
Constructor Details
#initialize(project_id_param, channel, packages) ⇒ IndexPresenter
Returns a new instance of IndexPresenter.
13
14
15
16
17
|
# File 'app/presenters/packages/helm/index_presenter.rb', line 13
def initialize(project_id_param, channel, packages)
@project_id_param = project_id_param
@channel = channel
@packages = packages
end
|
Instance Method Details
#api_version ⇒ Object
19
20
21
|
# File 'app/presenters/packages/helm/index_presenter.rb', line 19
def api_version
API_VERSION
end
|
#entries ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'app/presenters/packages/helm/index_presenter.rb', line 23
def entries
return EMPTY_HASH unless @channel.present?
result = Hash.new { |h, k| h[k] = [] }
most_recent_package_files.each do |package_file|
name = package_file.helm_metadata['name']
result[name] << package_file.helm_metadata.merge({
'created' => package_file.created_at.utc.strftime('%Y-%m-%dT%H:%M:%S.%NZ'),
'digest' => package_file.file_sha256,
'urls' => ["charts/#{package_file.file_name}"]
})
end
result
end
|
#generated ⇒ Object
41
42
43
|
# File 'app/presenters/packages/helm/index_presenter.rb', line 41
def generated
Time.zone.now.utc.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
end
|
#server_info ⇒ Object
45
46
47
48
49
50
51
52
53
|
# File 'app/presenters/packages/helm/index_presenter.rb', line 45
def server_info
path = api_v4_projects_packages_helm_index_yaml_path(
id: ERB::Util.url_encode(@project_id_param),
channel: CHANNEL
)
{
'contextPath' => path.delete_suffix(INDEX_YAML_SUFFIX)
}
end
|