appcues_data_uploader 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/appcues_data_uploader.rb +13 -5
- data/lib/appcues_data_uploader/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f8bb6dc96485d07fb821f6559e13588d1d032cd
|
4
|
+
data.tar.gz: 33de9f67aca03c4b6935e039766c900b6970db44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea11670e11b4971c70adc307f93f31ba438f6f6ccff67fec061bdb64db6be3f500cc8ad4522e6e5466fa2fe9e22947241ebab872bdb91a98f3df6b701afc5c82
|
7
|
+
data.tar.gz: 77273d66e4e529c09c51fe219d79d3e8783a94d52f03932ee662d485551dcbf4a9915db77bb15551ea92fa37d4363e41b6802485a01f5a2cb907e3f468e795ca
|
@@ -31,7 +31,7 @@ class AppcuesDataUploader
|
|
31
31
|
|
32
32
|
option_parser = OptionParser.new do |opts|
|
33
33
|
opts.banner = <<-EOT
|
34
|
-
Usage:
|
34
|
+
Usage: appcues-data-uploader [options] -a account_id [filename ...]
|
35
35
|
|
36
36
|
Uploads profile data from one or more CSVs to the Appcues API.
|
37
37
|
If no filename or a filename of '-' is given, STDIN is used.
|
@@ -52,6 +52,8 @@ Will result in two profile updates being sent to the API:
|
|
52
52
|
|
53
53
|
{"account_id": "999", "user_id": "123", "profile_update": {"first_name": "Pete", "has_posse": false, "height_in_inches": 68.5}}
|
54
54
|
{"account_id": "999", "user_id": "456", "profile_update": {"first_name": "André", "has_posse": true, "height_in_inches": 88}}
|
55
|
+
|
56
|
+
See https://github.com/appcues/data-uploader for more information.
|
55
57
|
EOT
|
56
58
|
|
57
59
|
opts.separator ""
|
@@ -87,10 +89,16 @@ Will result in two profile updates being sent to the API:
|
|
87
89
|
|
88
90
|
if !options.account_id
|
89
91
|
STDERR.puts "You must specify an account ID with the -a option."
|
92
|
+
STDERR.puts "Run `appcues-data-uploader --help` for more information."
|
90
93
|
exit 1
|
91
94
|
end
|
92
95
|
|
93
|
-
|
96
|
+
begin
|
97
|
+
new(options).perform_uploads()
|
98
|
+
rescue Exception => e
|
99
|
+
STDERR.puts "#{e.class}: #{e.message}"
|
100
|
+
exit 255
|
101
|
+
end
|
94
102
|
end
|
95
103
|
end
|
96
104
|
|
@@ -137,7 +145,7 @@ private
|
|
137
145
|
user_activities = []
|
138
146
|
|
139
147
|
CSV.new(input_fh, headers: true).each do |row|
|
140
|
-
row_hash = row.
|
148
|
+
row_hash = row.to_hash
|
141
149
|
|
142
150
|
if !user_id_column
|
143
151
|
user_id_column = get_user_id_column(row_hash)
|
@@ -178,7 +186,7 @@ private
|
|
178
186
|
end
|
179
187
|
|
180
188
|
if failed_uas.count > 0
|
181
|
-
debug "
|
189
|
+
debug "Retrying #{failed_uas.count} requests."
|
182
190
|
make_activity_requests(failed_uas)
|
183
191
|
end
|
184
192
|
end
|
@@ -214,7 +222,7 @@ private
|
|
214
222
|
canonical_key = key.gsub(/[^a-zA-Z]/, '').downcase
|
215
223
|
return key if canonical_key == 'userid'
|
216
224
|
end
|
217
|
-
raise
|
225
|
+
raise "Couldn't detect user ID column from CSV input. Ensure that the CSV data starts with headers, and one is named like 'user_id'."
|
218
226
|
end
|
219
227
|
|
220
228
|
## Prints a message to STDERR unless we're in quiet mode.
|