agile-cli 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 521321c656b38095a889ee5653abc64e365011c5f648b2afbb4922db0669c017
4
- data.tar.gz: df1d70f25bdf24bda53580f2f38bedfd68ee548794ce693a6f1d0412e78b8a7c
3
+ metadata.gz: 0eb8d9571738a50946c3a3c87757c2edf8eb1654f135767274303c0b8fb64527
4
+ data.tar.gz: 184c4e1fcec4cfafd0e494af402327aac8c273da66ca7e6859b77f5f4b510860
5
5
  SHA512:
6
- metadata.gz: 4ff3af9c47007a471c744ef3507e2970696992d238b915eb653bedc69f6713abc76cd43325aab494b10ccd1be97448e406a6b6eecfad2641aed224ac138afefd
7
- data.tar.gz: a0728122e058f9a4d19bab9921387afc4b7dddb40422483327188df96994dd0c46e0998a68f21d14a09de70de465d183a3b18597106a7639d654b7b2a9a73a3c
6
+ metadata.gz: 334a9eff19a2610467d45d8018b4f230eb643a41dbbe42761980437606975f142ca4b1e95e85e96173ef5bb176d8d53902619418ac01c5fda71864ccfaf5585c
7
+ data.tar.gz: 001abdd1a4cc5084faa621ddbe0d0f6885e90194b12fa3106824ad5319bc37c0de7944ca978652c809c4f826ddbcbf3f726a2fa174e08df1c6b2b29db7380fc2
@@ -2,6 +2,7 @@ module Agile
2
2
  class Events < Thor
3
3
  desc "create", "Add new event"
4
4
  def create
5
+ error_checking_events
5
6
  cli = HighLine.new
6
7
  event_description = cli.ask("description for event: ", String)
7
8
  RestClient.post"#{CONFIG['current_remote']}/api/v1/events/",
@@ -13,6 +14,7 @@ module Agile
13
14
 
14
15
  desc "list", "Show all events"
15
16
  def list
17
+ error_checking_events
16
18
  response = RestClient.get "#{CONFIG['current_remote']}/api/v1/events/"
17
19
  say "<<Project events>>"
18
20
  JSON.parse(response).each do |event|
@@ -26,12 +28,19 @@ module Agile
26
28
  desc "show <date (yyyy-mm-dd)>", "Show event"
27
29
  # :reek:ControlParameter
28
30
  def show(date)
31
+ error_checking_events
29
32
  response = RestClient.get "#{CONFIG['current_remote']}/api/v1/events/"
30
33
  JSON.parse(response).each { |event| puts_info(event) if event["date"] == date }
31
34
  end
32
35
 
33
36
  private
34
37
 
38
+ def error_checking_events
39
+ abort "You haven't done init yet!" unless CONFIG["current_remote"]
40
+ abort "Please, log in!" unless CONFIG["current_user"]
41
+ abort "Please, choose a project to work with!" unless CONFIG["current_project"]
42
+ end
43
+
35
44
  def puts_info(event)
36
45
  say "Type of event: #{event['event_type']}\nDescription: #{event['description']}"
37
46
  say "Start at #{norm_time(event['start_time'])}\nEnd at #{norm_time(event['end_time'])}"
@@ -4,6 +4,7 @@ module Agile
4
4
  class Tickets < Thor
5
5
  desc "create <ticket>", "Add new ticket"
6
6
  def create(ticket)
7
+ error_checking_tickets
7
8
  ticket_name = ticket
8
9
  cli = HighLine.new
9
10
  ticket_description = cli.ask("description for ticket: ", String)
@@ -15,6 +16,7 @@ module Agile
15
16
 
16
17
  desc "list", "Tickets list"
17
18
  def list
19
+ error_checking_tickets
18
20
  response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/"
19
21
  info = JSON.parse(response)
20
22
  print_tickets_list(info)
@@ -22,6 +24,7 @@ module Agile
22
24
 
23
25
  desc "my_list", "Tickets list"
24
26
  def my_list
27
+ error_checking_tickets
25
28
  response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/"
26
29
  owner = []
27
30
  JSON.parse(response).each { |ticket| owner << ticket if ticket["owner"] == CONFIG["current_user"] }
@@ -30,6 +33,7 @@ module Agile
30
33
 
31
34
  desc "show <name_ticket>", "Show ticket"
32
35
  def show(ticket)
36
+ error_checking_tickets
33
37
  response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}"
34
38
  row = JSON.parse(response)
35
39
  output_ticket(row["data"]["attributes"])
@@ -37,6 +41,7 @@ module Agile
37
41
 
38
42
  desc "update <ticket>", "update ticket"
39
43
  def update(ticket)
44
+ error_checking_tickets
40
45
  choice = HighLine.new
41
46
  answer = choice.ask("Choose what you need to edit : name or description (N or D): ", String)
42
47
  if answer == "N"
@@ -50,6 +55,7 @@ module Agile
50
55
 
51
56
  desc "take <ticket>", "Take ticket"
52
57
  def take(ticket)
58
+ error_checking_tickets
53
59
  RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
54
60
  name: ticket, user: CONFIG["current_user"], type: 2
55
61
  say "You take ticket #{ticket}"
@@ -57,6 +63,7 @@ module Agile
57
63
 
58
64
  desc "status <ticket>", "Update ticket status"
59
65
  def status(ticket)
66
+ error_checking_tickets
60
67
  RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
61
68
  name: ticket, status: ticket_status, type: 3, project_id: CONFIG["current_project_id"]
62
69
  say "You take ticket #{ticket}"
@@ -64,6 +71,7 @@ module Agile
64
71
 
65
72
  desc "archive", "View archived tickets"
66
73
  def archive
74
+ error_checking_tickets
67
75
  response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/"
68
76
  info = JSON.parse(response)
69
77
  info.each do |ticket|
@@ -73,6 +81,12 @@ module Agile
73
81
 
74
82
  private
75
83
 
84
+ def error_checking_tickets
85
+ abort "You haven't done init yet!" unless CONFIG["current_remote"]
86
+ abort "Please, log in!" unless CONFIG["current_user"]
87
+ abort "Please, choose a project to work with!" unless CONFIG["current_project"]
88
+ end
89
+
76
90
  def output_ticket(row)
77
91
  say "Ticket: #{row['name']}"
78
92
  say "Description: #{row['description']}"
@@ -2,13 +2,20 @@ module Agile
2
2
  class Members < Thor
3
3
  desc "invite <github_login>", "Add user in project"
4
4
  def invite(login)
5
- RestClient.put"#{CONFIG['current_remote']}/api/v1/userproject/#{login}",
6
- project: CONFIG["current_project"], current_user: CONFIG["current_user"], new_user: login
7
- say "Successfully added new user!"
5
+ error_checking_users
6
+ find_user(login)
7
+ if @users_array.include?(login)
8
+ RestClient.put "#{CONFIG['current_remote']}/api/v1/userproject/#{login}",
9
+ project: CONFIG["current_project"], current_user: CONFIG["current_user"], new_user: login
10
+ say "Successfully added new user!"
11
+ else
12
+ say "There is no such user!"
13
+ end
8
14
  end
9
15
 
10
16
  desc "role <github_login>", "Assign role to a user"
11
17
  def role(login)
18
+ error_checking_users
12
19
  RestClient.put"#{CONFIG['current_remote']}/api/v1/users/#{login}",
13
20
  project_id: CONFIG["current_project_id"], name: login, role_id: role_type
14
21
  say "Successfully updated user's role!"
@@ -16,6 +23,20 @@ module Agile
16
23
 
17
24
  private
18
25
 
26
+ def find_user(login)
27
+ @users_array = []
28
+ all_users = RestClient.get "#{CONFIG['current_remote']}/api/v1/users"
29
+ JSON.parse(all_users).each do |hash|
30
+ @users_array.push(login) if hash["github_login"] == login
31
+ end
32
+ end
33
+
34
+ def error_checking_users
35
+ abort "You haven't done init yet!" unless CONFIG["current_remote"]
36
+ abort "Please, log in!" unless CONFIG["current_user"]
37
+ abort "Please, choose a project to work with!" unless CONFIG["current_project"]
38
+ end
39
+
19
40
  def role_type
20
41
  cli = HighLine.new
21
42
  cli.ask("Choose role type:\n1 - team member\n2 - scrum master\n3 - product owner", Integer)
@@ -1,5 +1,5 @@
1
1
  module Agile
2
- VERSION = "0.0.17".freeze
2
+ VERSION = "0.0.18".freeze
3
3
  GITHUB_URL = %(https://github.com/login).freeze
4
4
  TERMINAL_STYLE = { border_x: "=", border_i: "x", padding_left: 3 }.freeze
5
5
  CLIENT_ID = "8bf42da7e4f9032ac5d8".freeze
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agile-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - rubizza-camp