papercallio 0.0.1 → 0.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
  SHA1:
3
- metadata.gz: cab85d981e54ef26446eae7496a567501d989ef4
4
- data.tar.gz: 9bc25c08598f02cb385f3b3c654a48c2cd224007
3
+ metadata.gz: 7d6f9bfeadd5437de30a160eb21f3cf452b1debd
4
+ data.tar.gz: e56e2c855793bb97c3cbc3142c857710d4a524b6
5
5
  SHA512:
6
- metadata.gz: 0f098addbedc662b0a19e2345bfee8d441f3b5049f1b6050f5fdb10f83b0b8b34782db33d3387bdbb3bff92ad05547ded8562ef97714d838c9b304f4ba5d81b8
7
- data.tar.gz: 2700b74d23164102813ff3640b0a4709393dc2c729875fcf94b452f5ca765f22cb6a658d526ce5640471ca4e77a6da2cc160b076b4a5d204430987ea37d28b3f
6
+ metadata.gz: 85dcc959243eacf5cc10e6a5fd4a8d42eaa73f9b95d6407babbd5009234724bb6ae0ae580b9ea4bae9540abce85432b73557d879f379dadbdd9978310c1c6387
7
+ data.tar.gz: fcccea69f1797f4077bb14b5d6a9730c4377feef16092df5cf2495b9382355c44fc2727278657c336be6b8483599d0116afdaf8351f71ab2c33759fa372adb0d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- papercallio (0.0.1)
4
+ papercallio (0.1.0)
5
5
  gli (= 2.16.0)
6
6
  httparty (~> 0.15)
7
7
 
data/bin/papercallio CHANGED
@@ -2,10 +2,20 @@
2
2
  require 'gli'
3
3
  require 'papercallio'
4
4
  require 'csv'
5
+ require 'yaml'
5
6
 
6
7
  include GLI::App
7
8
 
8
- program_desc 'Command line interface for the papercall.io API'
9
+ program_desc %(Command line interface for the papercall.io API
10
+ papercallio requires API access to download data.
11
+ API access is a paid feature, papercallio will not work with the free papercall plan.
12
+ To obtain your API token, go to the papercall website, click the events tab, choose your event,
13
+ then choose the Organisers link on the right hand side. On the list of organisers for your event your API
14
+ token will be listed under your name.
15
+
16
+ Once you have your API key export it in your shell
17
+
18
+ export PAPERCALL_API_TOKEN=abcdefghijklmnopqrstuvwxyz1234567890)
9
19
 
10
20
  version Papercallio::VERSION
11
21
 
@@ -14,18 +24,20 @@ api_token = ENV['PAPERCALL_API_TOKEN']
14
24
  subcommand_option_handling :normal
15
25
  arguments :strict
16
26
 
17
- desc 'Describe some switch here'
18
- switch [:s,:switch]
19
-
20
27
  desc 'The file path for output'
21
- default_value 'the subcommand.csv, e.g. event.csv, submissions.csv'
28
+ default_value 'submissions.csv'
22
29
  arg_name 'The file path (e.g. ./submissions.csv)'
23
- flag [:f,:file]
30
+ flag [:f, :file]
24
31
 
25
- desc 'Return submissions in csv file'
26
- arg_name 'Describe arguments to submissions here'
32
+ desc %(Return submissions in csv file.
33
+ Add your token as an environment variable for the API.
34
+
35
+ export PAPERCALL_API_TOKEN=abcdefghijklmnopqrstuvwxyz1234567890)
36
+ arg_name 'Arguments to manipulate the submissions returned'
27
37
  command :submissions do |c|
28
38
  c.switch 'needs_rating', :desc => 'Filter results needs rating. Default (false).'
39
+ c.switch 'include_feedback', :desc => 'Include the feedback for all submissions in the csv (Not currently implemented).'
40
+ c.switch 'include_ratings', :desc => 'Include the ratings for all submissions in the csv'
29
41
 
30
42
  c.flag 'state', :default_value => nil,
31
43
  :arg_name => 'state of submissions. ',
@@ -38,6 +50,7 @@ command :submissions do |c|
38
50
  :desc => 'Sort results. Possible values are: state, rating, ratings_count, title, created_at, talk_format_id, audience_level, confidence'
39
51
 
40
52
  c.action do |global_options,options,args|
53
+ puts global_options
41
54
  pcc = PaperCallClient.new(api_token, options)
42
55
  response = pcc.submissions
43
56
 
@@ -46,6 +59,7 @@ command :submissions do |c|
46
59
  headerset = false
47
60
  response.each do |submission|
48
61
  line = {}
62
+ id = nil
49
63
  submission.each do |field, value|
50
64
  if value.is_a?(Hash)
51
65
  value.each do |subfield, subvalue|
@@ -55,49 +69,71 @@ command :submissions do |c|
55
69
  next
56
70
  end
57
71
  line[field] = value
72
+ id = value if field.eql? 'id'
58
73
  headers << field unless headerset
59
74
  end
75
+
76
+ if options[:include_feedback]
77
+ #puts "OK!"
78
+ #submission_feedback = pcc.feedback(id)
79
+ #puts submission_feedback
80
+ end
81
+ if options[:include_ratings]
82
+ submission_ratings = pcc.rating(id)
83
+ total_ratings = 0
84
+ individual_ratings = ''
85
+ raters = ''
86
+ submission_ratings.each do |rate|
87
+ rate.each do |rate_field, rate_value|
88
+ total_ratings += rate_value if rate_field == 'value'
89
+ individual_ratings << "#{rate_value}, " if rate_field == 'value'
90
+ raters << "#{rate_value['name']}, " if rate_field == 'user'
91
+ end
92
+ end
93
+ line[:total_ratings] = total_ratings
94
+ line[:individual_ratings] = individual_ratings
95
+ line[:raters] = raters
96
+ headers.concat([:total_ratings, :individual_ratings, :raters]) unless headerset
97
+ end
60
98
  headerset = true
61
99
  submissions << line
62
100
  line = {}
63
101
  end
64
- File.open('submissions.csv', 'w') do |f|
102
+ File.open(global_options[:file], 'w') do |f|
65
103
  f.puts headers.to_csv
66
104
  submissions.each do |sub|
67
105
  f.puts headers.map { |h| sub[h] }.to_csv
68
106
  end
69
107
  end
70
108
 
71
- puts "submissions have been output to submissions.csv"
109
+ puts "submissions have been output to #{global_options[:file]}"
72
110
  end
73
111
  end
74
112
 
75
- desc 'Return event as json'
113
+ desc 'Return event as yaml'
76
114
  arg_name 'No arguments'
77
115
  command :event do |c|
78
116
  c.action do |global_options,options,args|
79
117
  pcc = PaperCallClient.new(api_token, {})
80
118
  response = pcc.event
81
- puts response
82
- puts "event command ran"
119
+ puts response.parsed_response.to_yaml
83
120
  end
84
121
  end
85
122
 
86
- desc 'Return submission as json'
123
+ desc 'Return a single submission as yaml'
87
124
  arg_name "Arguments: 'id' identifier of the submission"
88
- command :rating do |c|
125
+ command :submission do |c|
89
126
  c.flag 'id', :default_value => 1,
90
127
  :arg_name => 'papercall submission identifier',
91
128
  :desc => 'identifier of the submission'
92
129
  c.action do |global_options,options,args|
93
130
  pcc = PaperCallClient.new(api_token, {})
94
- response = pcc.rating(options[:id])
95
- puts response
96
- puts "submission for id: #{options[:id]} as json"
131
+ response = pcc.submission(options[:id])
132
+ puts response.parsed_response.to_yaml
97
133
  end
98
134
  end
99
135
 
100
- desc 'Return ratings as json'
136
+ desc 'Return ratings for a single submission as yaml'
101
137
  arg_name "Arguments: 'id' identifier of the submission"
102
138
  command :rating do |c|
103
139
  c.flag 'id', :default_value => 1,
@@ -106,12 +142,11 @@ command :rating do |c|
106
142
  c.action do |global_options,options,args|
107
143
  pcc = PaperCallClient.new(api_token, {})
108
144
  response = pcc.rating(options[:id])
109
- puts response
110
- puts "ratings for id: #{options[:id]} as json"
145
+ puts response.parsed_response.to_yaml
111
146
  end
112
147
  end
113
148
 
114
- desc 'Return feedback as json'
149
+ desc 'Return feedback for a single submission as yaml'
115
150
  arg_name "Arguments: 'id' identifier of the submission"
116
151
  command :feedback do |c|
117
152
  c.flag 'id', :default_value => 1,
@@ -120,8 +155,7 @@ command :feedback do |c|
120
155
  c.action do |global_options,options,args|
121
156
  pcc = PaperCallClient.new(api_token, {})
122
157
  response = pcc.feedback(options[:id])
123
- puts response
124
- puts "feedback for id: #{options[:id]} as json"
158
+ puts response.parsed_response.to_yaml
125
159
  end
126
160
  end
127
161
 
@@ -1,3 +1,3 @@
1
1
  module Papercallio
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: papercallio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - aaronblythe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-23 00:00:00.000000000 Z
11
+ date: 2017-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake