ojra 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03eeefd3a45b46fa248be92ba081e286174fd10bf8eec281633c2d889644c495
4
- data.tar.gz: 69bb083db50055b1a00ef0307fd36261ee347520eda6e68011e7c9c6f2ceab2f
3
+ metadata.gz: baebacc88ac340e378154e1ef091bfec7b4ad3fc6b9d5cc9430611de2c4f8939
4
+ data.tar.gz: f2a9e42baa4995da3b73922e14f261d59bf61498dd8002dee937e5284c744541
5
5
  SHA512:
6
- metadata.gz: d22a5bf4edb399dc6de985265319989149252665bd4e0fbb172a1259aa1e34cce3abb96e994cc7c24e00947c0905fa048de01d1c11e241aa515ea3d9a8b5a56d
7
- data.tar.gz: cdb8f6484b791b1b10827ee00c50bc47b7c22a1ca23fe950c1d386b2951263b80febd0940cb621efc9f10e65938bb87ec33f004e890a07e5dbf72b1330c53850
6
+ metadata.gz: 1f3b9b301dd0e7805947f917ea33c218ee8784637706880d66d2b3b4fda5db95bdd11f0b238bcd29f5316cae1c254f53a36b9be3f4ffcfc0578cd8ca28c533ac
7
+ data.tar.gz: 6ea533791f7280e4e0a25f61a03b08ebd122c896fac2479884bbbd58b8fd951bd1198ea17d6eb12ea07615601ea1c3ac28a1a9daafc20d21efb2e076e467a14b
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ojra (1.0.2)
4
+ ojra (1.1.0)
5
5
  faraday (~> 2.7)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  diff-lcs (1.5.0)
11
- faraday (2.7.3)
11
+ faraday (2.7.4)
12
12
  faraday-net_http (>= 2.0, < 3.1)
13
13
  ruby2_keywords (>= 0.0.4)
14
14
  faraday-net_http (3.0.2)
@@ -17,12 +17,12 @@ GEM
17
17
  rspec-core (~> 3.12.0)
18
18
  rspec-expectations (~> 3.12.0)
19
19
  rspec-mocks (~> 3.12.0)
20
- rspec-core (3.12.0)
20
+ rspec-core (3.12.1)
21
21
  rspec-support (~> 3.12.0)
22
22
  rspec-expectations (3.12.2)
23
23
  diff-lcs (>= 1.2.0, < 2.0)
24
24
  rspec-support (~> 3.12.0)
25
- rspec-mocks (3.12.2)
25
+ rspec-mocks (3.12.3)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
27
  rspec-support (~> 3.12.0)
28
28
  rspec-support (3.12.0)
@@ -37,4 +37,4 @@ DEPENDENCIES
37
37
  rspec (~> 3.12)
38
38
 
39
39
  BUNDLED WITH
40
- 2.3.26
40
+ 2.4.7
data/README.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  A Ruby wrapper for the Open Journal's Reviewers application's API
4
4
 
5
+ [![Tests](https://github.com/xuanxu/ojra/actions/workflows/tests.yml/badge.svg)](https://github.com/xuanxu/ojra/actions/workflows/tests.yml)
6
+ [![Gem Version](https://badge.fury.io/rb/ojra.svg)](https://badge.fury.io/rb/ojra)
7
+
5
8
  ## Use
6
9
 
7
10
  ### Installation
@@ -32,27 +35,31 @@ Initialize the API Client class with the URL of the Reviewers site and a valid A
32
35
  **STATS:**
33
36
 
34
37
 
35
- - **assign_reviewer(reviewer, issue_id)**: Add a new active review to a reviewers' stats
36
- ```ruby
37
- client.assign_reviewer("reviewer21", 4321)
38
- ```
39
-
40
- - **assign_reviewers(reviewers_list, issue_id)**: Add a new active review to a list of reviewers (array or comma separated string)
38
+ - **assign_reviewers(reviewers_list, issue_id)**: Add a new active review to a reviewer or list of reviewers (array or comma separated string)
41
39
  ```ruby
40
+ client.assign_reviewers("@reviewer21", 4321)
42
41
  client.assign_reviewers("@reviewer21, @reviewer33, @reviewer42", 4321)
43
42
  client.assign_reviewers(["reviewer21", "reviewer33", "reviewer42"], 4321)
44
43
  ```
45
44
 
46
-
47
- - **unassign_reviewer(reviewer, issue_id)**: Log end of review for a reviewer
45
+ - **unassign_reviewers(reviewers_list, issue_id)**: Log a review unassignment for a reviewer or list of reviewers (array or comma separated string)
48
46
  ```ruby
49
- client.unassign_reviewer("@reviewer21", 4321)
47
+ client.unassign_reviewers("@reviewer21, @reviewer33, @reviewer42", 4321)
48
+ client.unassign_reviewers("@reviewer21", 4321)
49
+ client.unassign_reviewers(["reviewer21", "reviewer33", "reviewer42"], 4321)
50
50
  ```
51
51
 
52
+ - **start_review(reviewers_list, issue_id)**: Log starting a review for a reviewer or list of reviewers (array or comma separated string)
53
+ ```ruby
54
+ client.start_review("@reviewer21", 4321)
55
+ client.start_review("@reviewer21, @reviewer33, @reviewer42", 4321)
56
+ client.start_review(["reviewer21", "reviewer33", "reviewer42"], 4321)
57
+ ```
52
58
 
53
- - **unassign_reviewers(reviewers_list, issue_id)**: Log end of review for a list of reviewers (array or comma separated string)
59
+ - **finish_review(reviewers_list, issue_id)**: Log end of review for a reviewer or list of reviewers (array or comma separated string)
54
60
  ```ruby
55
- client.unassign_reviewers("@reviewer21, @reviewer33, @reviewer42", 4321)
56
- client.unassign_reviewers(["reviewer21", "reviewer33", "reviewer42"], 4321)
61
+ client.finish_review("@reviewer21", 4321)
62
+ client.finish_review("@reviewer21, @reviewer33, @reviewer42", 4321)
63
+ client.finish_review(["reviewer21", "reviewer33", "reviewer42"], 4321)
57
64
  ```
58
65
 
data/lib/ojra/client.rb CHANGED
@@ -14,19 +14,19 @@ module OJRA
14
14
  !(host_url.empty? || token.empty?)
15
15
  end
16
16
 
17
- def assign_reviewer(reviewer, issue_id)
17
+ def assign_reviewer(reviewer, issue_id, api_action="review_assigned")
18
18
  set_error_msg("Missing value: reviewer") and return if reviewer.to_s.strip.empty?
19
19
 
20
- url = "#{host_url}/api/stats/update/#{reviewer}/review_assigned"
20
+ url = "#{host_url}/api/stats/update/#{reviewer}/#{api_action}"
21
21
  idempotency_key = "assign-#{reviewer}-#{issue_id}"
22
22
 
23
23
  reviewers_api_post(url, { idempotency_key: idempotency_key })
24
24
  end
25
25
 
26
- def unassign_reviewer(reviewer, issue_id)
26
+ def unassign_reviewer(reviewer, issue_id, api_action="review_unassigned")
27
27
  set_error_msg("Missing value: reviewer") and return if reviewer.to_s.strip.empty?
28
28
 
29
- url = "#{host_url}/api/stats/update/#{reviewer}/review_unassigned"
29
+ url = "#{host_url}/api/stats/update/#{reviewer}/#{api_action}"
30
30
  idempotency_key = "unassign-#{reviewer}-#{issue_id}"
31
31
 
32
32
  reviewers_api_post(url, { idempotency_key: idempotency_key })
@@ -42,6 +42,16 @@ module OJRA
42
42
  reviewers_list.each { |reviewer| unassign_reviewer(reviewer, issue_id) }
43
43
  end
44
44
 
45
+ def start_review(reviewers, issue_id)
46
+ reviewers_list = get_list(reviewers)
47
+ reviewers_list.each { |reviewer| assign_reviewer(reviewer, issue_id, "review_started") }
48
+ end
49
+
50
+ def finish_review(reviewers, issue_id)
51
+ reviewers_list = get_list(reviewers)
52
+ reviewers_list.each { |reviewer| unassign_reviewer(reviewer, issue_id, "review_finished") }
53
+ end
54
+
45
55
  private
46
56
 
47
57
  def unconfigured_api
data/lib/ojra/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OJRA
4
- VERSION = "1.0.2"
4
+ VERSION = "1.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ojra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juanjo Bazán
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-18 00:00:00.000000000 Z
11
+ date: 2023-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  requirements: []
93
- rubygems_version: 3.4.1
93
+ rubygems_version: 3.3.12
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: Wrapper for the Open Journal's Reviewers API