Class: Terjira::Client::Issue

Inherits:
Base
  • Object
show all
Defined in:
lib/terjira/client/issue.rb

Constant Summary

Constants inherited from Base

Base::AGILE_API_PATH, Base::DEFAULT_API_PATH, Base::DEFAULT_CACHE_SEC

Constants included from JQLBuilder

JQLBuilder::SEARCH_KEYS, JQLBuilder::STRICT_KEYS

Constants included from AuthOptionBuilder

AuthOptionBuilder::AUTH_CACHE_KEY

Class Method Summary collapse

Methods inherited from Base

cache, class_name, client, parse_body, resource, site_url, username

Methods included from JQLBuilder

#build_jql

Methods included from AuthOptionBuilder

#auth_file_cache, #build_auth_options, #build_auth_options_by_cached, #build_auth_options_by_tty, #expire_auth_options

Class Method Details

.all(options = {}) ⇒ Object



9
10
11
12
13
# File 'lib/terjira/client/issue.rb', line 9

def all(options = {})
  return resource.all if options.blank?
  max_results = options.delete(:max_results) || 500
  jql(build_jql(options), max_results: max_results)
end

.all_epic_issues(epic) ⇒ Object



15
16
17
18
# File 'lib/terjira/client/issue.rb', line 15

def all_epic_issues(epic)
  resp = agile_api_get("epic/#{epic.key}/issue")
  resp["issues"].map { |issue| build(issue) }
end

.assign(issue, assignee) ⇒ Object



33
34
35
36
# File 'lib/terjira/client/issue.rb', line 33

def assign(issue, assignee)
  body = { name: assignee.key_value }.to_json
  api_put("issue/#{issue.key_value}/assignee", body)
end

.create(options = {}) ⇒ Object



43
44
45
46
47
# File 'lib/terjira/client/issue.rb', line 43

def create(options = {})
  params = extract_to_fields_params(options)
  resp = api_post 'issue', params.to_json
  find(resp['id'])
end

.delete(issue) ⇒ Object



29
30
31
# File 'lib/terjira/client/issue.rb', line 29

def delete(issue)
  api_delete("issue/#{issue.key_value}")
end

.find(issue, options = {}) ⇒ Object



20
21
22
23
# File 'lib/terjira/client/issue.rb', line 20

def find(issue, options = {})
  resp = agile_api_get("issue/#{issue.key_value}", options)
  build(resp)
end

.search(options = {}) ⇒ Object



25
26
27
# File 'lib/terjira/client/issue.rb', line 25

def search(options = {})
  resource.jql(build_jql(options))
end

.trans(issue, options = {}) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/terjira/client/issue.rb', line 56

def trans(issue, options = {})
  params = extract_to_transition_param(options)
  params.merge!(extract_to_update_params(options))
  params.merge!(extract_to_fields_params(options))
  api_post "issue/#{issue.key_value}/transitions", params.to_json
  find(issue)
end

.update(issue, options = {}) ⇒ Object



49
50
51
52
53
54
# File 'lib/terjira/client/issue.rb', line 49

def update(issue, options = {})
  params = extract_to_update_params(options)
  params.merge!(extract_to_fields_params(options))
  resp = api_put "issue/#{issue.key_value}", params.to_json
  find(issue)
end

.write_comment(issue, message) ⇒ Object



38
39
40
41
# File 'lib/terjira/client/issue.rb', line 38

def write_comment(issue, message)
  api_post("issue/#{issue.key_value}/comment", { body: message }.to_json)
  find(issue)
end