Class: JIRA::Resource::Agile

Inherits:
Base
  • Object
show all
Defined in:
lib/jira/resource/agile.rb

Constant Summary

Constants inherited from Base

Base::QUERY_PARAMS_FOR_SEARCH, Base::QUERY_PARAMS_FOR_SINGLE_FETCH

Instance Attribute Summary

Attributes inherited from Base

#attrs, #client, #deleted, #expanded

Class Method Summary collapse

Methods inherited from Base

belongs_to, belongs_to_relationships, build, collection_attributes_are_nested, collection_path, #collection_path, #delete, endpoint_name, #fetch, find, #has_errors?, has_many, has_one, #id, #initialize, key_attribute, #key_value, #method_missing, nested_collections, #new_record?, parse_json, #patched_url, #path_component, #respond_to?, #save, #save!, #set_attrs, #set_attrs_from_response, singular_path, #to_json, #to_s, #to_sym, #url

Constructor Details

This class inherits a constructor from JIRA::Base

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class JIRA::Base

Class Method Details

.all(client, options = {}) ⇒ Hash

Parameters:

  • client (JIRA::Client)
  • options (Hash<Symbol, Object>) (defaults to: {})

Returns:

  • (Hash)


14
15
16
17
18
# File 'lib/jira/resource/agile.rb', line 14

def self.all(client, options = {})
  opts = options.empty? ? '' : "?#{hash_to_query_string(options)}"
  response = client.get(path_base(client) + "/board#{opts}")
  parse_json(response.body)
end

.get_backlog_issues(client, board_id, options = {}) ⇒ Object



20
21
22
23
24
# File 'lib/jira/resource/agile.rb', line 20

def self.get_backlog_issues(client, board_id, options = {})
  options[:maxResults] ||= 100
  response = client.get(path_base(client) + "/board/#{board_id}/backlog?#{hash_to_query_string(options)}")
  parse_json(response.body)
end

.get_board_issues(client, board_id, options = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/jira/resource/agile.rb', line 26

def self.get_board_issues(client, board_id, options = {})
  response = client.get(path_base(client) + "/board/#{board_id}/issue?#{hash_to_query_string(options)}")
  json = parse_json(response.body)
  # To get Issue objects with the same structure as for Issue.all
  return {} if json['issues'].empty?

  issue_ids = json['issues'].map do |issue|
    issue['id']
  end
  client.Issue.jql("id IN(#{issue_ids.join(', ')})")
end

.get_projects(client, board_id, options = {}) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/jira/resource/agile.rb', line 55

def self.get_projects(client, board_id, options = {})
  options[:maxResults] ||= 100
  create_meta_url = path_base(client) + "/board/#{board_id}/project"
  params = hash_to_query_string(options)

  response = client.get("#{create_meta_url}?#{params}")
  parse_json(response.body)
end

.get_projects_full(client, board_id, _options = {}) ⇒ Object



50
51
52
53
# File 'lib/jira/resource/agile.rb', line 50

def self.get_projects_full(client, board_id, _options = {})
  response = client.get(path_base(client) + "/board/#{board_id}/project/full")
  parse_json(response.body)
end

.get_sprint_issues(client, sprint_id, options = {}) ⇒ Object



44
45
46
47
48
# File 'lib/jira/resource/agile.rb', line 44

def self.get_sprint_issues(client, sprint_id, options = {})
  options[:maxResults] ||= 100
  response = client.get(path_base(client) + "/sprint/#{sprint_id}/issue?#{hash_to_query_string(options)}")
  parse_json(response.body)
end

.get_sprints(client, board_id, options = {}) ⇒ Object



38
39
40
41
42
# File 'lib/jira/resource/agile.rb', line 38

def self.get_sprints(client, board_id, options = {})
  options[:maxResults] ||= 100
  response = client.get(path_base(client) + "/board/#{board_id}/sprint?#{hash_to_query_string(options)}")
  parse_json(response.body)
end