Module: API::Helpers::IssuesHelpers

Extended by:
Grape::API::Helpers
Defined in:
lib/api/helpers/issues_helpers.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.sort_optionsObject


35
36
37
# File 'lib/api/helpers/issues_helpers.rb', line 35

def self.sort_options
  %w[created_at updated_at priority due_date relative_position label_priority milestone_due popularity]
end

.update_params_at_least_one_ofObject


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/api/helpers/issues_helpers.rb', line 17

def self.update_params_at_least_one_of
  [
    :assignee_id,
    :assignee_ids,
    :confidential,
    :created_at,
    :description,
    :discussion_locked,
    :due_date,
    :labels,
    :add_labels,
    :remove_labels,
    :milestone_id,
    :state_event,
    :title
  ]
end

Instance Method Details

#find_issues(args = {}) ⇒ Object


54
55
56
57
# File 'lib/api/helpers/issues_helpers.rb', line 54

def find_issues(args = {})
  finder = issue_finder(args)
  finder.execute.with_api_entity_associations
end

#issue_finder(args = {}) ⇒ Object


39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/api/helpers/issues_helpers.rb', line 39

def issue_finder(args = {})
  args = declared_params.merge(args)

  args.delete(:id)
  args[:not] ||= {}
  args[:milestone_title] ||= args.delete(:milestone)
  args[:not][:milestone_title] ||= args[:not]&.delete(:milestone)
  args[:label_name] ||= args.delete(:labels)
  args[:not][:label_name] ||= args[:not]&.delete(:labels)
  args[:scope] = args[:scope].underscore if args[:scope]
  args[:sort] = "#{args[:order_by]}_#{args[:sort]}"

  IssuesFinder.new(current_user, args)
end

#issues_statistics(args = {}) ⇒ Object


59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/api/helpers/issues_helpers.rb', line 59

def issues_statistics(args = {})
  finder = issue_finder(args)
  counter = Gitlab::IssuablesCountForState.new(finder)

  {
    statistics: {
      counts: {
        all: counter[:all],
        closed: counter[:closed],
        opened: counter[:opened]
      }
    }
  }
end