Class: Gitlab::Harbor::Query

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Validations
Defined in:
lib/gitlab/harbor/query.rb

Constant Summary collapse

DEFAULT_LIMIT =
10
SORT_REGEX =
%r{\A(creation_time|update_time|name) (asc|desc)\z}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(integration, params) ⇒ Query

Returns a new instance of Query.



32
33
34
35
36
37
38
39
40
41
# File 'lib/gitlab/harbor/query.rb', line 32

def initialize(integration, params)
  @client = Client.new(integration)
  @repository_id = params[:repository_id]
  @artifact_id = params[:artifact_id]
  @search = params[:search]
  @limit = params[:limit]
  @sort = params[:sort]
  @page = params[:page]
  validate
end

Instance Attribute Details

#artifact_idObject (readonly)

Returns the value of attribute artifact_id.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def artifact_id
  @artifact_id
end

#clientObject (readonly)

Returns the value of attribute client.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def client
  @client
end

#limitObject (readonly)

Returns the value of attribute limit.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def limit
  @limit
end

#pageObject (readonly)

Returns the value of attribute page.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def page
  @page
end

#repository_idObject (readonly)

Returns the value of attribute repository_id.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def repository_id
  @repository_id
end

#searchObject (readonly)

Returns the value of attribute search.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def search
  @search
end

#sortObject (readonly)

Returns the value of attribute sort.



8
9
10
# File 'lib/gitlab/harbor/query.rb', line 8

def sort
  @sort
end

Instance Method Details

#artifactsObject



54
55
56
57
58
59
60
61
62
63
# File 'lib/gitlab/harbor/query.rb', line 54

def artifacts
  result = @client.get_artifacts(query_artifacts_options)
  return [] if result[:total_count] == 0

  Kaminari.paginate_array(
    result[:body],
    limit: query_page_size,
    total_count: result[:total_count]
  )
end

#repositoriesObject



43
44
45
46
47
48
49
50
51
52
# File 'lib/gitlab/harbor/query.rb', line 43

def repositories
  result = @client.get_repositories(query_options)
  return [] if result[:total_count] == 0

  Kaminari.paginate_array(
    result[:body],
    limit: query_page_size,
    total_count: result[:total_count]
  )
end

#tagsObject



65
66
67
68
69
70
71
72
73
74
# File 'lib/gitlab/harbor/query.rb', line 65

def tags
  result = @client.get_tags(query_tags_options)
  return [] if result[:total_count] == 0

  Kaminari.paginate_array(
    result[:body],
    limit: query_page_size,
    total_count: result[:total_count]
  )
end