blob: 57900165ad18928bd40ac1ae4c6cd5df5c6a9d2a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# frozen_string_literal: true
module Projects
module Ml
class ModelsIndexComponent < ViewComponent::Base
attr_reader :paginator
def initialize(paginator:)
@paginator = paginator
end
private
def view_model
vm = {
models: models_view_model,
page_info: page_info_view_model
}
Gitlab::Json.generate(vm.deep_transform_keys { |k| k.to_s.camelize(:lower) })
end
def models_view_model
paginator.records.map(&:present).map do |m|
{
name: m.name,
version: m.latest_version_name,
version_count: m.version_count,
path: m.latest_package_path
}
end
end
def page_info_view_model
{
has_next_page: paginator.has_next_page?,
has_previous_page: paginator.has_previous_page?,
start_cursor: paginator.cursor_for_previous_page,
end_cursor: paginator.cursor_for_next_page
}
end
end
end
end
|