Class: OJRA::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ojra/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host_url, token) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
# File 'lib/ojra/client.rb', line 7

def initialize(host_url, token)
  @host_url = host_url.to_s.strip
  @token = token.to_s.strip
  @error_msg = nil
end

Instance Attribute Details

#error_msgObject (readonly)

Returns the value of attribute error_msg.



5
6
7
# File 'lib/ojra/client.rb', line 5

def error_msg
  @error_msg
end

#host_urlObject (readonly)

Returns the value of attribute host_url.



5
6
7
# File 'lib/ojra/client.rb', line 5

def host_url
  @host_url
end

#tokenObject (readonly)

Returns the value of attribute token.



5
6
7
# File 'lib/ojra/client.rb', line 5

def token
  @token
end

Instance Method Details

#assign_reviewer(reviewer, issue_id, api_action = "review_assigned") ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/ojra/client.rb', line 17

def assign_reviewer(reviewer, issue_id, api_action="review_assigned")
  set_error_msg("Missing value: reviewer") and return if reviewer.to_s.strip.empty?

  url = "#{host_url}/api/stats/update/#{reviewer}/#{api_action}"
  idempotency_key = "assign-#{reviewer}-#{issue_id}"

  reviewers_api_post(url, { idempotency_key: idempotency_key })
end

#assign_reviewers(reviewers, issue_id) ⇒ Object



35
36
37
38
# File 'lib/ojra/client.rb', line 35

def assign_reviewers(reviewers, issue_id)
  reviewers_list = get_list(reviewers)
  reviewers_list.each { |reviewer| assign_reviewer(reviewer, issue_id) }
end

#configured?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/ojra/client.rb', line 13

def configured?
  !(host_url.empty? || token.empty?)
end

#finish_review(reviewers, issue_id) ⇒ Object



50
51
52
53
# File 'lib/ojra/client.rb', line 50

def finish_review(reviewers, issue_id)
  reviewers_list = get_list(reviewers)
  reviewers_list.each { |reviewer| unassign_reviewer(reviewer, issue_id, "review_finished") }
end

#start_review(reviewers, issue_id) ⇒ Object



45
46
47
48
# File 'lib/ojra/client.rb', line 45

def start_review(reviewers, issue_id)
  reviewers_list = get_list(reviewers)
  reviewers_list.each { |reviewer| assign_reviewer(reviewer, issue_id, "review_started") }
end

#unassign_reviewer(reviewer, issue_id, api_action = "review_unassigned") ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/ojra/client.rb', line 26

def unassign_reviewer(reviewer, issue_id, api_action="review_unassigned")
  set_error_msg("Missing value: reviewer") and return if reviewer.to_s.strip.empty?

  url = "#{host_url}/api/stats/update/#{reviewer}/#{api_action}"
  idempotency_key = "unassign-#{reviewer}-#{issue_id}"

  reviewers_api_post(url, { idempotency_key: idempotency_key })
end

#unassign_reviewers(reviewers, issue_id) ⇒ Object



40
41
42
43
# File 'lib/ojra/client.rb', line 40

def unassign_reviewers(reviewers, issue_id)
  reviewers_list = get_list(reviewers)
  reviewers_list.each { |reviewer| unassign_reviewer(reviewer, issue_id) }
end