Class: Packages::Nuget::SearchService

Inherits:
BaseService show all
Includes:
ActiveRecord::ConnectionAdapters::Quoting, Gitlab::Utils::StrongMemoize
Defined in:
app/services/packages/nuget/search_service.rb

Constant Summary collapse

MAX_PER_PAGE =
30
MAX_VERSIONS_PER_PACKAGE =
10
PRE_RELEASE_VERSION_MATCHING_TERM =
'%-%'
DEFAULT_OPTIONS =
{
  include_prerelease_versions: true,
  per_page: Kaminari.config.default_per_page,
  padding: 0
}.freeze

Instance Attribute Summary

Attributes inherited from BaseService

#current_user, #params, #project

Instance Method Summary collapse

Methods included from Gitlab::Utils::StrongMemoize

#clear_memoization, #strong_memoize, #strong_memoized?

Methods included from BaseServiceUtility

#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level

Methods included from Gitlab::Allowable

#can?

Constructor Details

#initialize(project, search_term, options = {}) ⇒ SearchService

Returns a new instance of SearchService.

Raises:

  • (ArgumentError)

19
20
21
22
23
24
25
26
# File 'app/services/packages/nuget/search_service.rb', line 19

def initialize(project, search_term, options = {})
  @project = project
  @search_term = search_term
  @options = DEFAULT_OPTIONS.merge(options)

  raise ArgumentError, 'negative per_page' if per_page < 0
  raise ArgumentError, 'negative padding' if padding < 0
end

Instance Method Details

#executeObject


28
29
30
31
32
33
# File 'app/services/packages/nuget/search_service.rb', line 28

def execute
  OpenStruct.new(
    total_count: package_names.total_count,
    results: search_packages
  )
end