File tree Expand file tree Collapse file tree 3 files changed +47
-1
lines changed Expand file tree Collapse file tree 3 files changed +47
-1
lines changed Original file line number Diff line number Diff line change 5
5
require 'redmine_cli/cli'
6
6
require 'redmine_cli/ui'
7
7
require 'redmine_cli/version'
8
+ require 'redmine_cli/worktime'
8
9
9
10
module RedmineCLI
10
11
class << self
Original file line number Diff line number Diff line change @@ -16,13 +16,26 @@ def out
16
16
request = Net ::HTTP ::Get . new ( "#{ url . path } ?#{ url . query } " )
17
17
response = http . start { |http | http . request ( request ) }
18
18
19
- if response . kind_of? ( Net ::HTTPSuccess )
19
+ if response . kind_of? ( Net ::HTTPFound )
20
20
puts "Signed out."
21
21
else
22
22
puts "Error: " + response . class . name
23
23
end
24
24
end
25
25
26
+ desc "current" , ""
27
+ def current
28
+ if worktime = Worktime . current
29
+ if worktime . issue?
30
+ puts "Signed in for ##{ worktime . issue_id } : #{ worktime . issue_subject } ."
31
+ else
32
+ puts "Signed in."
33
+ end
34
+ else
35
+ puts "Not signed in."
36
+ end
37
+ end
38
+
26
39
private
27
40
28
41
def api_key
Original file line number Diff line number Diff line change
1
+ module RedmineCLI
2
+ class Worktime
3
+ attr_reader :issue_id , :issue_subject
4
+
5
+ def initialize ( attributes )
6
+ if attributes [ 'issue' ]
7
+ @issue_id = attributes [ 'issue' ] [ 'id' ]
8
+ @issue_subject = attributes [ 'issue' ] [ 'subject' ]
9
+ end
10
+ end
11
+
12
+ def issue?
13
+ !issue_id . nil?
14
+ end
15
+
16
+ def self . current
17
+ url = URI . parse ( "#{ Config . url } /worktimes/current?format=json&key=#{ Config . api_key } " )
18
+
19
+ http = Net ::HTTP . new ( url . host , url . port )
20
+ http . use_ssl = true
21
+
22
+ request = Net ::HTTP ::Get . new ( "#{ url . path } ?#{ url . query } " )
23
+ response = http . start { |http | http . request ( request ) }
24
+
25
+ if response . kind_of? ( Net ::HTTPSuccess )
26
+ Worktime . new ( JSON . parse ( response . body ) [ 'worktime' ] )
27
+ else
28
+ nil
29
+ end
30
+ end
31
+ end
32
+ end
You can’t perform that action at this time.
0 commit comments