bearcat 0.9.17 → 0.9.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
  SHA1:
3
- metadata.gz: abda6bfd3fef7451bda229e4c2e7b64045a30cd6
4
- data.tar.gz: e63dc8e882de0fd088a7f8a061def0744b5fb250
3
+ metadata.gz: 90b441a976ad2e0183959717d04f71510dc040bc
4
+ data.tar.gz: 7eda87e3704266e96fa14a9c023e4c84205ac003
5
5
  SHA512:
6
- metadata.gz: 83375ded1b6ea34ad2f3d66be05123a040f27269ff73b699c54d60d11b1fdfa3dea07fbd1e01ca2e0675cd39f05e4fb97e133b6ec926c8a8aaf4fd0a59ce66cd
7
- data.tar.gz: 14a2f31b355b5276dd827761d70b4992d5db96d11f9598d966ad38b294b7b7788879fbf96de323dda8f12b61dd117eab5329436dc51ec5b4c016bf09abea3272
6
+ metadata.gz: 2a5ea5d5c54a4390a438496c05bb11389dab39c536db2972ddb9e37267e030ada528d313334c6bc8145d39b6b11c63646884fcea6597f6e5aafa79a49f936a97
7
+ data.tar.gz: 351bcfec746792977702616a4d9a5a575bfa654f2732a4da7a6946a6cd5e93149725676cef91700ae7b11308a439c239f29df56af9c6b653d9b5fbeef0e8fa17
data/bearcat.gemspec CHANGED
@@ -24,4 +24,4 @@ Gem::Specification.new do |gem|
24
24
  gem.add_development_dependency "webmock"
25
25
 
26
26
  gem.add_dependency "footrest", ">= 0.2.2"
27
- end
27
+ end
@@ -2,6 +2,7 @@ require 'footrest/client'
2
2
  module Bearcat
3
3
  class Client < Footrest::Client
4
4
  require 'bearcat/api_array'
5
+ require 'bearcat/client/file_helper'
5
6
  require 'bearcat/client/assignments'
6
7
  require 'bearcat/client/courses'
7
8
  require 'bearcat/client/enrollments'
@@ -39,6 +40,7 @@ module Bearcat
39
40
  include CanvasFiles
40
41
  include CalendarEvents
41
42
  include Discussions
43
+ include FileHelper
42
44
 
43
45
 
44
46
  # Override Footrest request for ApiArray support
@@ -8,44 +8,6 @@ module Bearcat
8
8
  confirm_file_upload(confirmation_url)
9
9
  end
10
10
 
11
- private
12
-
13
- def file_params(file_path)
14
- {
15
- size: File.open(file_path).size,
16
- name: File.basename(file_path)
17
- }
18
- end
19
-
20
- def declare_file(api_path, params)
21
- post(api_path, params)
22
- end
23
-
24
- def post_file(url, params, file_path)
25
- params['Filename'] = File.basename(file_path)
26
- params['file'] = Faraday::UploadIO.new(file_path, params['content-type'])
27
-
28
- response = upload_connection.post(url, params)
29
- if response.status == (302 || 303) #success if it is a redirect
30
- response.headers['Location']
31
- else
32
- raise 'FailedFileUpload'
33
- end
34
- end
35
-
36
- def confirm_file_upload(url)
37
- uri = URI(url)
38
- post(uri.path, CGI::parse(uri.query))
39
- end
40
-
41
- def upload_connection
42
- Faraday.new do |f|
43
- f.request :multipart
44
- f.request :url_encoded
45
- f.adapter :net_http
46
- end
47
- end
48
-
49
11
  end
50
12
  end
51
- end
13
+ end
@@ -14,6 +14,12 @@ module Bearcat
14
14
  get("/api/v1/courses/#{course}/users", params)
15
15
  end
16
16
 
17
+ def create_content_migration(course, file_path, params={})
18
+ response = post("/api/v1/courses/#{course}/content_migrations", params)
19
+ pre_attachment = response['pre_attachment']
20
+ confirmation_url = post_file(pre_attachment['upload_url'], pre_attachment['upload_params'], file_path)
21
+ confirm_file_upload(confirmation_url)
22
+ end
17
23
  end
18
24
  end
19
- end
25
+ end
@@ -0,0 +1,37 @@
1
+ module FileHelper
2
+
3
+ def file_params(file_path)
4
+ {
5
+ size: File.open(file_path).size,
6
+ name: File.basename(file_path)
7
+ }
8
+ end
9
+
10
+ def declare_file(api_path, params)
11
+ post(api_path, params)
12
+ end
13
+
14
+ def post_file(url, params, file_path)
15
+ params['Filename'] = File.basename(file_path)
16
+ params['file'] = Faraday::UploadIO.new(file_path, params['content-type'])
17
+ response = upload_connection.post(url, params)
18
+ if response.status == (302 || 303) #success if it is a redirect
19
+ response.headers['Location']
20
+ else
21
+ raise 'FailedFileUpload'
22
+ end
23
+ end
24
+
25
+ def confirm_file_upload(url)
26
+ uri = URI(url)
27
+ post(uri.path, CGI::parse(uri.query))
28
+ end
29
+
30
+ def upload_connection
31
+ Faraday.new do |f|
32
+ f.request :multipart
33
+ f.request :url_encoded
34
+ f.adapter :net_http
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,3 @@
1
1
  module Bearcat
2
- VERSION = '0.9.17' unless defined?(Bearcat::VERSION)
2
+ VERSION = '0.9.18' unless defined?(Bearcat::VERSION)
3
3
  end
@@ -28,4 +28,32 @@ describe Bearcat::Client::Sections do
28
28
  students['id'].should == 2
29
29
  end
30
30
 
31
- end
31
+ it 'creates a content migration' do
32
+ stub_post(@client, "/api/v1/courses/659/content_migrations").
33
+ with(:body => {"migration_type"=>"canvas_cartridge_importer", "pre_attachment"=>{"name"=>"cc.imscc", "size"=>"2034"}}).
34
+ to_return(json_response('content_migration_files', 'response.json'))
35
+
36
+ stub_request(:post, "http://host/files_api").
37
+ to_return(status: 302, headers: {'Location' => 'https://confirm-upload.invalid/confirm?param=true'})
38
+
39
+ stub_post(@client, "/confirm").
40
+ with(:body => {"param" => ["true"]}).to_return(json_response('content_migration_files', 'upload_success.json'))
41
+
42
+ opts = {'migration_type' => 'canvas_cartridge_importer', 'pre_attachment[name]' => 'cc.imscc', 'pre_attachment[size]' => '2034'}
43
+ response = @client.create_content_migration('659', fixture('cc.imscc'), opts)
44
+ expect(response['id']).to eq 293
45
+ end
46
+
47
+ it 'throws an error on a failed file upload' do
48
+ stub_post(@client, "/api/v1/courses/659/content_migrations").
49
+ with(:body => {"migration_type"=>"canvas_cartridge_importer", "pre_attachment"=>{"name"=>"cc.imscc", "size"=>"2034"}}).
50
+ to_return(json_response('content_migration_files', 'response.json'))
51
+
52
+ stub_request(:post, "http://host/files_api").
53
+ to_return(status: 400, headers: {'Location' => 'https://confirm-upload.invalid/confirm?param=true'})
54
+
55
+ opts = {'migration_type' => 'canvas_cartridge_importer', 'pre_attachment[name]' => 'cc.imscc', 'pre_attachment[size]' => '2034'}
56
+ expect { @client.create_content_migration('659', fixture('cc.imscc'), opts) }.to raise_exception
57
+ end
58
+
59
+ end
@@ -0,0 +1,748 @@
1
+ [
2
+ {
3
+ "title": "Grade Export",
4
+ "parameters": {
5
+ "enrollment_term_id": {
6
+ "required": false,
7
+ "description": "The canvas id of the term to get grades from"
8
+ },
9
+ "include_deleted": {
10
+ "required": false,
11
+ "description": "Include deleted objects"
12
+ }
13
+ },
14
+ "report": "grade_export_csv",
15
+ "last_run": null
16
+ },
17
+ {
18
+ "title": "Last User Access",
19
+ "parameters": {
20
+ "enrollment_term_id": {
21
+ "required": false,
22
+ "description": "The canvas id of the term to get grades from"
23
+ },
24
+ "course_id": {
25
+ "required": false,
26
+ "description": "The course to report on"
27
+ }
28
+ },
29
+ "report": "last_user_access_csv",
30
+ "last_run": null
31
+ },
32
+ {
33
+ "title": "Outcome Results",
34
+ "parameters": {
35
+ "enrollment_term_id": {
36
+ "required": false,
37
+ "description": "The canvas id of the term of courses to report on"
38
+ },
39
+ "order": {
40
+ "required": false,
41
+ "description": "The sort order for the csv, Options: 'users', 'courses', 'outcomes'"
42
+ },
43
+ "include_deleted": {
44
+ "required": false,
45
+ "description": "Include deleted objects"
46
+ }
47
+ },
48
+ "report": "outcome_results_csv",
49
+ "last_run": null
50
+ },
51
+ {
52
+ "title": "Provisioning",
53
+ "parameters": {
54
+ "enrollment_term_id": {
55
+ "required": false,
56
+ "description": "The canvas id of the term of courses to report on"
57
+ },
58
+ "users": {
59
+ "required": false,
60
+ "description": "Get the Provisioning file for users"
61
+ },
62
+ "accounts": {
63
+ "required": false,
64
+ "description": "Get the Provisioning file for accounts"
65
+ },
66
+ "terms": {
67
+ "required": false,
68
+ "description": "Get the Provisioning file for terms"
69
+ },
70
+ "courses": {
71
+ "required": false,
72
+ "description": "Get the Provisioning file for courses"
73
+ },
74
+ "sections": {
75
+ "required": false,
76
+ "description": "Get the Provisioning file for sections"
77
+ },
78
+ "enrollments": {
79
+ "required": false,
80
+ "description": "Get the Provisioning file for enrollments"
81
+ },
82
+ "groups": {
83
+ "required": false,
84
+ "description": "Get the Provisioning file for groups"
85
+ },
86
+ "group_membership": {
87
+ "required": false,
88
+ "description": "Get the Provisioning file for group_membership"
89
+ },
90
+ "xlist": {
91
+ "required": false,
92
+ "description": "Get the Provisioning file for cross listed courses"
93
+ },
94
+ "include_deleted": {
95
+ "required": false,
96
+ "description": "Include deleted objects"
97
+ }
98
+ },
99
+ "report": "provisioning_csv",
100
+ "last_run": {
101
+ "id": 59,
102
+ "parameters": {
103
+ "enrollment_term_id": "",
104
+ "terms": "1",
105
+ "extra_text": "Term: All Terms; Reports: terms "
106
+ },
107
+ "progress": 100,
108
+ "status": "complete",
109
+ "report": "provisioning_csv",
110
+ "file_url": "https://localhost:3000/accounts/1/files/129/download",
111
+ "attachment": {
112
+ "id": 129,
113
+ "content-type": "text/csv",
114
+ "display_name": "provisioning_csv_03_Oct_2013_59_.csv",
115
+ "filename": "provisioning_csv_03_Oct_2013_59_4546-0.csv",
116
+ "url": "http://localhost:3000/files/129/download?download_frd=1&verifier=MeULgnpC8PCDxD6QRYbyLmXeUmVpUJ3B4GmFetJq",
117
+ "size": 146,
118
+ "created_at": "2013-10-04T04:42:33Z",
119
+ "updated_at": "2013-10-04T04:42:33Z",
120
+ "unlock_at": null,
121
+ "locked": false,
122
+ "hidden": false,
123
+ "lock_at": null,
124
+ "hidden_for_user": false,
125
+ "thumbnail_url": null,
126
+ "locked_for_user": false
127
+ }
128
+ }
129
+ },
130
+ {
131
+ "title": "Recently Deleted Courses",
132
+ "parameters": {
133
+ "enrollment_term_id": {
134
+ "required": false,
135
+ "description": "The canvas id of the term to get grades from"
136
+ }
137
+ },
138
+ "report": "recently_deleted_courses_csv",
139
+ "last_run": null
140
+ },
141
+ {
142
+ "title": "SIS Export",
143
+ "parameters": {
144
+ "enrollment_term_id": {
145
+ "required": false,
146
+ "description": "The canvas id of the term of courses to report on"
147
+ },
148
+ "users": {
149
+ "required": false,
150
+ "description": "Get the SIS file for users"
151
+ },
152
+ "accounts": {
153
+ "required": false,
154
+ "description": "Get the SIS file for accounts"
155
+ },
156
+ "terms": {
157
+ "required": false,
158
+ "description": "Get the SIS file for terms"
159
+ },
160
+ "courses": {
161
+ "required": false,
162
+ "description": "Get the SIS file for courses"
163
+ },
164
+ "sections": {
165
+ "required": false,
166
+ "description": "Get the SIS file for sections"
167
+ },
168
+ "enrollments": {
169
+ "required": false,
170
+ "description": "Get the SIS file for enrollments"
171
+ },
172
+ "groups": {
173
+ "required": false,
174
+ "description": "Get the SIS file for groups"
175
+ },
176
+ "group_membership": {
177
+ "required": false,
178
+ "description": "Get the SIS file for group_membership"
179
+ },
180
+ "xlist": {
181
+ "required": false,
182
+ "description": "Get the SIS file for cross listed courses"
183
+ },
184
+ "include_deleted": {
185
+ "required": false,
186
+ "description": "Include deleted objects"
187
+ }
188
+ },
189
+ "report": "sis_export_csv",
190
+ "last_run": {
191
+ "id": 54,
192
+ "parameters": {
193
+ "enrollment_term_id": "",
194
+ "users": "1",
195
+ "courses": "1",
196
+ "xlist": "1",
197
+ "extra_text": "Term: All Terms; Reports: users courses xlist "
198
+ },
199
+ "progress": 100,
200
+ "status": "complete",
201
+ "report": "sis_export_csv",
202
+ "file_url": "https://localhost:3000/accounts/1/files/124/download",
203
+ "attachment": {
204
+ "id": 124,
205
+ "content-type": "application/zip",
206
+ "display_name": "sis_export_csv_03_Oct_2013_54_.zip",
207
+ "filename": "sis_export_csv_03_Oct_2013_54_4546-0.zip",
208
+ "url": "http://localhost:3000/files/124/download?download_frd=1&verifier=NCNS9uE3Ch7bER6WLs6Ca5paNAc4T6dzvXhYsENj",
209
+ "size": 11598,
210
+ "created_at": "2013-10-04T04:33:48Z",
211
+ "updated_at": "2013-10-04T04:33:48Z",
212
+ "unlock_at": null,
213
+ "locked": false,
214
+ "hidden": false,
215
+ "lock_at": null,
216
+ "hidden_for_user": false,
217
+ "thumbnail_url": null,
218
+ "locked_for_user": false
219
+ }
220
+ }
221
+ },
222
+ {
223
+ "title": "Student Competency",
224
+ "parameters": {
225
+ "enrollment_term_id": {
226
+ "required": false,
227
+ "description": "The canvas id of the term of courses to report on"
228
+ },
229
+ "include_deleted": {
230
+ "required": false,
231
+ "description": "Include deleted objects"
232
+ }
233
+ },
234
+ "report": "student_assignment_outcome_map_csv",
235
+ "last_run": null
236
+ },
237
+ {
238
+ "title": "Students with no submissions",
239
+ "parameters": {
240
+ "enrollment_term_id": {
241
+ "required": false,
242
+ "description": "The term to report on"
243
+ },
244
+ "course_id": {
245
+ "required": false,
246
+ "description": "The course to report on"
247
+ },
248
+ "start_at": {
249
+ "required": true,
250
+ "description": "The beginning date for submissions. Max time range is 2 weeks."
251
+ },
252
+ "end_at": {
253
+ "required": true,
254
+ "description": "The end date for submissions. Max time range is 2 weeks."
255
+ }
256
+ },
257
+ "report": "students_with_no_submissions_csv",
258
+ "last_run": null
259
+ },
260
+ {
261
+ "title": "Unpublished Courses",
262
+ "parameters": {
263
+ "enrollment_term_id": {
264
+ "required": false,
265
+ "description": "The canvas id of the term to get grades from"
266
+ }
267
+ },
268
+ "report": "unpublished_courses_csv",
269
+ "last_run": null
270
+ },
271
+ {
272
+ "title": "Unused Courses",
273
+ "parameters": {
274
+ "enrollment_term_id": {
275
+ "required": false,
276
+ "description": "The canvas id of the term to get courses from"
277
+ }
278
+ },
279
+ "report": "unused_courses_csv",
280
+ "last_run": null
281
+ },
282
+ {
283
+ "title": "Zero Activity",
284
+ "parameters": {
285
+ "enrollment_term_id": {
286
+ "required": false,
287
+ "description": "The canvas id of the term to get grades from"
288
+ },
289
+ "course_id": {
290
+ "required": false,
291
+ "description": "The course to report on"
292
+ }
293
+ },
294
+ "report": "zero_activity_csv",
295
+ "last_run": null
296
+ },
297
+ {
298
+ "title": "Multi-Student Progress",
299
+ "parameters": null,
300
+ "report": "multi_student_progress_csv",
301
+ "last_run": null
302
+ },
303
+ {
304
+ "title": "Ungraded Student Submissions",
305
+ "parameters": null,
306
+ "report": "ungraded_submissions_csv",
307
+ "last_run": null
308
+ },
309
+ {
310
+ "title": "Faculty Success Report",
311
+ "parameters": null,
312
+ "report": "faculty_success_csv",
313
+ "last_run": null
314
+ },
315
+ {
316
+ "title": "Registrar Report",
317
+ "parameters": null,
318
+ "report": "registrar_csv",
319
+ "last_run": null
320
+ },
321
+ {
322
+ "title": "Enrollment Summary",
323
+ "parameters": null,
324
+ "report": "enrollment_summary_csv",
325
+ "last_run": null
326
+ },
327
+ {
328
+ "title": "Google Doc Accounts",
329
+ "parameters": null,
330
+ "report": "google_doc_accounts_csv",
331
+ "last_run": null
332
+ },
333
+ {
334
+ "title": "Quiz Data",
335
+ "parameters": {
336
+ "enrollment_term_id": {
337
+ "required": false,
338
+ "description": "The term to report on"
339
+ },
340
+ "start_at": {
341
+ "required": true,
342
+ "description": "The beginning date for the quiz due date"
343
+ },
344
+ "end_at": {
345
+ "required": true,
346
+ "description": "The end date for the quiz due date"
347
+ }
348
+ },
349
+ "report": "quiz_data_csv",
350
+ "last_run": null
351
+ },
352
+ {
353
+ "title": "Quiz Statistics",
354
+ "parameters": {
355
+ "enrollment_term_id": {
356
+ "required": false,
357
+ "description": "The term to report on"
358
+ },
359
+ "start_at": {
360
+ "required": true,
361
+ "description": "The beginning date for the quiz due date"
362
+ },
363
+ "end_at": {
364
+ "required": true,
365
+ "description": "The end date for the quiz due date"
366
+ }
367
+ },
368
+ "report": "quiz_statistics_csv",
369
+ "last_run": null
370
+ },
371
+ {
372
+ "title": "Student Submissions",
373
+ "parameters": {
374
+ "enrollment_term_id": {
375
+ "required": false,
376
+ "description": "The term to report on"
377
+ },
378
+ "start_at": {
379
+ "required": true,
380
+ "description": "The beginning date for submissions"
381
+ },
382
+ "end_at": {
383
+ "required": true,
384
+ "description": "The end date for submissions"
385
+ }
386
+ },
387
+ "report": "student_submissions_csv",
388
+ "last_run": null
389
+ },
390
+ {
391
+ "title": "CampusVue Grade Export",
392
+ "parameters": {
393
+ "enrollment_term_id": {
394
+ "required": true,
395
+ "description": "The term for grade export data"
396
+ }
397
+ },
398
+ "report": "custom_grade_export_csv",
399
+ "last_run": null
400
+ },
401
+ {
402
+ "title": "SIS data",
403
+ "parameters": {
404
+ "users": {
405
+ "required": false,
406
+ "description": "Get the SIS file for users"
407
+ },
408
+ "sections": {
409
+ "required": false,
410
+ "description": "Get the SIS file for sections"
411
+ },
412
+ "enrollments": {
413
+ "required": false,
414
+ "description": "Get the SIS file for enrollments"
415
+ }
416
+ },
417
+ "report": "mississippi_sis_csv",
418
+ "last_run": null
419
+ },
420
+ {
421
+ "title": "Submission Data",
422
+ "parameters": {
423
+ "enrollment_term_id": {
424
+ "required": false,
425
+ "description": "The term to report on"
426
+ },
427
+ "course_id": {
428
+ "required": false,
429
+ "description": "The course to report on"
430
+ },
431
+ "start_at": {
432
+ "required": false,
433
+ "description": "Everything updated after start date"
434
+ }
435
+ },
436
+ "report": "submission_data_csv",
437
+ "last_run": null
438
+ },
439
+ {
440
+ "title": "Course Section Status",
441
+ "parameters": {
442
+ "enrollment_term_id": {
443
+ "required": true,
444
+ "description": "The term to get courses from"
445
+ }
446
+ },
447
+ "report": "course_status_csv",
448
+ "last_run": null
449
+ },
450
+ {
451
+ "title": "Student IP addresses",
452
+ "parameters": {
453
+ "enrollment_term_id": {
454
+ "required": false,
455
+ "description": "The term to report on"
456
+ },
457
+ "course_id": {
458
+ "required": false,
459
+ "description": "The course to report on"
460
+ }
461
+ },
462
+ "report": "student_ip_csv",
463
+ "last_run": null
464
+ },
465
+ {
466
+ "title": "Custom Outcomes",
467
+ "parameters": {
468
+ "enrollment_term_id": {
469
+ "required": false,
470
+ "description": "The canvas id of the term of courses to report on"
471
+ },
472
+ "course_id": {
473
+ "required": false,
474
+ "description": "The course to report on"
475
+ },
476
+ "outcome_id": {
477
+ "required": false,
478
+ "description": "The outcome to report on"
479
+ }
480
+ },
481
+ "report": "custom_outcomes_csv",
482
+ "last_run": null
483
+ },
484
+ {
485
+ "title": "Scantron Quiz",
486
+ "parameters": {
487
+ "quiz_id": {
488
+ "required": false,
489
+ "description": "Quiz to generate Scantron report for"
490
+ },
491
+ "section_id": {
492
+ "required": false,
493
+ "description": "Section ID"
494
+ }
495
+ },
496
+ "report": "scantron_quiz_csv",
497
+ "last_run": null
498
+ },
499
+ {
500
+ "title": "Students who have not logged in Report",
501
+ "parameters": {
502
+ "enrollment_term_id": {
503
+ "required": false,
504
+ "description": "The term to report on"
505
+ },
506
+ "start_at": {
507
+ "required": false,
508
+ "description": "Users that have not logged in since this date"
509
+ },
510
+ "never_logged_in": {
511
+ "required": false,
512
+ "description": "Include users that have never logged in"
513
+ }
514
+ },
515
+ "report": "student_login_csv",
516
+ "last_run": null
517
+ },
518
+ {
519
+ "title": "CHCP Student Activity Report",
520
+ "parameters": {
521
+ "enrollment_term_id": {
522
+ "required": false,
523
+ "description": "The term to report on"
524
+ },
525
+ "course_id": {
526
+ "required": false,
527
+ "description": "The course to report on"
528
+ }
529
+ },
530
+ "report": "chcp_student_activity_csv",
531
+ "last_run": null
532
+ },
533
+ {
534
+ "title": "Students Access Report",
535
+ "parameters": {
536
+ "enrollment_term_id": {
537
+ "required": false,
538
+ "description": "The term to report on"
539
+ },
540
+ "course_id": {
541
+ "required": false,
542
+ "description": "The course to report on"
543
+ },
544
+ "start_at": {
545
+ "required": false,
546
+ "description": "Everything updated after start date"
547
+ }
548
+ },
549
+ "report": "student_access_csv",
550
+ "last_run": null
551
+ },
552
+ {
553
+ "title": "User Inactivity Report",
554
+ "parameters": {
555
+ "enrollment_term_id": {
556
+ "required": false,
557
+ "description": "The term to report on"
558
+ },
559
+ "course_id": {
560
+ "required": false,
561
+ "description": "The course to report on"
562
+ },
563
+ "start_at": {
564
+ "required": false,
565
+ "description": "Everything updated after start date"
566
+ },
567
+ "enrollment_type": {
568
+ "required": false,
569
+ "description": "Filter by 'student', 'teacher', or 'ta' enrollment types"
570
+ },
571
+ "minimum": {
572
+ "required": false,
573
+ "description": "Minimum number of course items visited, i.e. Assignment, syllabus, discussion"
574
+ }
575
+ },
576
+ "report": "user_inactivity_csv",
577
+ "last_run": null
578
+ },
579
+ {
580
+ "title": "CCP Zero Activity",
581
+ "parameters": {
582
+ "enrollment_term_id": {
583
+ "required": false,
584
+ "description": "The canvas id of the term to get grades from"
585
+ },
586
+ "course_id": {
587
+ "required": false,
588
+ "description": "The course to report on"
589
+ },
590
+ "start_at": {
591
+ "required": false,
592
+ "description": "Report start date"
593
+ },
594
+ "filter_online": {
595
+ "required": false,
596
+ "description": "Show online classes only"
597
+ }
598
+ },
599
+ "report": "ccp_zero_activity_csv",
600
+ "last_run": null
601
+ },
602
+ {
603
+ "title": "Safety Drill Scheduling",
604
+ "parameters": {
605
+ "enrollment_term": {
606
+ "required": false,
607
+ "description": "The term to report on"
608
+ },
609
+ "tests": {
610
+ "required": false,
611
+ "description": "The Assignment Group named tests"
612
+ },
613
+ "projects": {
614
+ "required": false,
615
+ "description": "The Assignment Group named projects"
616
+ },
617
+ "papers": {
618
+ "required": false,
619
+ "description": "The Assignment Group named papers"
620
+ },
621
+ "reports": {
622
+ "required": false,
623
+ "description": "The Assignment Group named reports"
624
+ },
625
+ "major": {
626
+ "required": false,
627
+ "description": "The Assignment Group named major"
628
+ },
629
+ "start_at": {
630
+ "required": false,
631
+ "description": "Report start date"
632
+ },
633
+ "end_at": {
634
+ "required": true,
635
+ "description": "Report end date"
636
+ }
637
+ },
638
+ "report": "safety_drill_csv",
639
+ "last_run": {
640
+ "id": 53,
641
+ "parameters": {
642
+ "enrollment_term_id": "",
643
+ "start_at": "Oct 1, 2013",
644
+ "end_at": "Oct 31, 2013",
645
+ "tests": "true",
646
+ "projects": "true",
647
+ "papers": "true",
648
+ "reports": "true",
649
+ "major": "true",
650
+ "extra_text": "Term: All Terms; Start At: 2013-10-01 00:00:00 -0600; End At: 2013-10-31 00:00:00 -0600; Assignment Group Types: tests,projects,papers,reports,major"
651
+ },
652
+ "progress": 100,
653
+ "status": "complete",
654
+ "report": "safety_drill_csv",
655
+ "file_url": "https://localhost:3000/accounts/1/files/123/download",
656
+ "attachment": {
657
+ "id": 123,
658
+ "content-type": "text/csv",
659
+ "display_name": "safety_drill_csv_30_Sep_2013_53_4546-0.csv",
660
+ "filename": "safety_drill_csv_30_Sep_2013_53_4546-0.csv",
661
+ "url": "http://localhost:3000/files/123/download?download_frd=1&verifier=MKkWuNzAjGTT8BnEEmahiXoAOw8OiJA8jv84ScCU",
662
+ "size": 681,
663
+ "created_at": "2013-09-30T19:35:53Z",
664
+ "updated_at": "2013-09-30T19:35:53Z",
665
+ "unlock_at": null,
666
+ "locked": false,
667
+ "hidden": false,
668
+ "lock_at": null,
669
+ "hidden_for_user": false,
670
+ "thumbnail_url": null,
671
+ "locked_for_user": false
672
+ }
673
+ }
674
+ },
675
+ {
676
+ "title": "Assignment Scheduling",
677
+ "parameters": {
678
+ "section_id": {
679
+ "required": false,
680
+ "description": "The section to report on"
681
+ },
682
+ "tests": {
683
+ "required": false,
684
+ "description": "The Assignment Group named tests"
685
+ },
686
+ "projects": {
687
+ "required": false,
688
+ "description": "The Assignment Group named projects"
689
+ },
690
+ "papers": {
691
+ "required": false,
692
+ "description": "The Assignment Group named papers"
693
+ },
694
+ "reports": {
695
+ "required": false,
696
+ "description": "The Assignment Group named reports"
697
+ },
698
+ "major": {
699
+ "required": false,
700
+ "description": "The Assignment Group named major"
701
+ },
702
+ "start_at": {
703
+ "required": false,
704
+ "description": "Report start date"
705
+ },
706
+ "end_at": {
707
+ "required": true,
708
+ "description": "Report end date"
709
+ }
710
+ },
711
+ "report": "assignment_scheduling_csv",
712
+ "last_run": {
713
+ "id": 49,
714
+ "parameters": {
715
+ "section_id": "",
716
+ "start_at": "Sep 1, 2013",
717
+ "end_at": "Oct 31, 2013",
718
+ "tests": "true",
719
+ "projects": "true",
720
+ "papers": "true",
721
+ "reports": "true",
722
+ "major": "true",
723
+ "extra_text": "Start At: 2013-09-01 00:00:00 -0600; End At: 2013-10-31 00:00:00 -0600; Assignment Group Types: tests,projects,papers,reports,major"
724
+ },
725
+ "progress": 100,
726
+ "status": "complete",
727
+ "report": "assignment_scheduling_csv",
728
+ "file_url": "https://localhost:3000/accounts/1/files/119/download",
729
+ "attachment": {
730
+ "id": 119,
731
+ "content-type": "text/csv",
732
+ "display_name": "assignment_scheduling_csv_24_Sep_2013_49_96296-0.csv",
733
+ "filename": "assignment_scheduling_csv_24_Sep_2013_49_96296-0.csv",
734
+ "url": "http://localhost:3000/files/119/download?download_frd=1&verifier=iV4aoUUoDEfBTY4JJKFMEzw01d89tIL1dOWrP22L",
735
+ "size": 492,
736
+ "created_at": "2013-09-24T22:09:58Z",
737
+ "updated_at": "2013-09-24T22:09:58Z",
738
+ "unlock_at": null,
739
+ "locked": false,
740
+ "hidden": false,
741
+ "lock_at": null,
742
+ "hidden_for_user": false,
743
+ "thumbnail_url": null,
744
+ "locked_for_user": false
745
+ }
746
+ }
747
+ }
748
+ ]
@@ -0,0 +1,18 @@
1
+ [
2
+ {
3
+ "id": 60,
4
+ "parameters": null,
5
+ "progress": 0,
6
+ "status": "error",
7
+ "report": "Grade Export",
8
+ "file_url": null
9
+ },
10
+ {
11
+ "id": 61,
12
+ "parameters": null,
13
+ "progress": 0,
14
+ "status": "error",
15
+ "report": "Grade Export",
16
+ "file_url": null
17
+ }
18
+ ]
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": 70,
3
+ "parameters": {
4
+ "enrollments": "true",
5
+ "extra_text": "Term: All Terms; Reports: enrollments "
6
+ },
7
+ "progress": 100,
8
+ "status": "complete",
9
+ "report": "sis_export_csv",
10
+ "file_url": "https://localhost:3000/accounts/1/files/132/download",
11
+ "attachment": {
12
+ "id": 132,
13
+ "content-type": "text/csv",
14
+ "display_name": "sis_export_csv_04_Oct_2013_70_.csv",
15
+ "filename": "sis_export_csv_04_Oct_2013_65_1845-0.csv",
16
+ "url": "http://localhost:3000/files/132/download?download_frd=1&verifier=B1oCKqt0OpIL2cB4zPDJtxidwrj2b42KgRapU5pS",
17
+ "size": 27906,
18
+ "created_at": "2013-10-04T21:08:43Z",
19
+ "updated_at": "2013-10-04T21:08:43Z",
20
+ "unlock_at": null,
21
+ "locked": false,
22
+ "hidden": false,
23
+ "lock_at": null,
24
+ "hidden_for_user": false,
25
+ "thumbnail_url": null,
26
+ "locked_for_user": false
27
+ }
28
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": 60,
3
+ "parameters": null,
4
+ "progress": 0,
5
+ "status": "running",
6
+ "report": "Grade Export",
7
+ "file_url": null
8
+ }
File without changes
@@ -0,0 +1,23 @@
1
+ {
2
+ "finished_at":null,
3
+ "id":21,
4
+ "migration_type":"canvas_cartridge_importer",
5
+ "started_at":null,
6
+ "user_id":1,
7
+ "workflow_state":"pre_processing",
8
+ "created_at":"2014-08-08T16:54:25Z",
9
+ "migration_issues_url":"http://host/api/v1/courses/659/content_migrations/21/migration_issues",
10
+ "migration_issues_count":0,
11
+ "pre_attachment":{
12
+ "upload_url":"http://host/files_api",
13
+ "upload_params":{
14
+ "Filename":"",
15
+ "key":"/cc.imscc",
16
+ "acl":"private",
17
+ "Policy":"eyJleHBpcmF0aW9uIjoiMjAxNC0wOC0wOFQxNzoyNDoyNloiLCJjb25kaXRpb25zIjpbeyJrZXkiOiIvVXNlcnMvYnJhbmRvbmJyL3dvcmsvc3JjL2NhbnZhcy9jYW52YXMtbG1zLXdvcmtpbmcvdG1wL2ZpbGVzLzAwMDAvMDI5My9zdTEyX2JsX2VkdWNfcHJhY180NzE0Mi5pbXNjYyJ9LHsiYWNsIjoicHJpdmF0ZSJ9LFsic3RhcnRzLXdpdGgiLCIkRmlsZW5hbWUiLCIiXSxbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwxLDEwNzM3NDE4MjQwXSx7InBzZXVkb255bV9pZCI6MX1dLCJhdHRhY2htZW50X2lkIjoyOTN9",
18
+ "Signature":"OyXpEfbSmp79ZD/WCQKlhz0u2mo="
19
+ },
20
+ "file_param":"attachment[uploaded_data]"
21
+ },
22
+ "migration_type_title":"Canvas Common Cartridge"
23
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "id":293,
3
+ "content-type":"unknown/unknown",
4
+ "display_name":"cc.imscc",
5
+ "filename":"cc.imscc",
6
+ "url":"http://host/files/293/download?download_frd=1&verifier=sR3WAPKSFzNnNtfdEH3LV1eNASD3rBYs2I393AFa",
7
+ "size":2034,
8
+ "created_at":"2014-08-08T16:54:26Z",
9
+ "updated_at":"2014-08-08T16:56:20Z",
10
+ "unlock_at":null,
11
+ "locked":false,
12
+ "hidden":false,
13
+ "lock_at":null,
14
+ "hidden_for_user":false,
15
+ "thumbnail_url":null,
16
+ "locked_for_user":false
17
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bearcat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.17
4
+ version: 0.9.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Mills, Jake Sorce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-05 00:00:00.000000000 Z
11
+ date: 2014-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -100,6 +100,7 @@ files:
100
100
  - lib/bearcat/client/courses.rb
101
101
  - lib/bearcat/client/discussions.rb
102
102
  - lib/bearcat/client/enrollments.rb
103
+ - lib/bearcat/client/file_helper.rb
103
104
  - lib/bearcat/client/groups.rb
104
105
  - lib/bearcat/client/modules.rb
105
106
  - lib/bearcat/client/o_auth2.rb
@@ -132,6 +133,10 @@ files:
132
133
  - spec/bearcat/client/users_spec.rb
133
134
  - spec/bearcat/client_spec.rb
134
135
  - spec/bearcat_spec.rb
136
+ - spec/fixtures/account_reports.json
137
+ - spec/fixtures/account_reports_index.json
138
+ - spec/fixtures/account_reports_result_success.json
139
+ - spec/fixtures/account_reports_start_result.json
135
140
  - spec/fixtures/account_user.json
136
141
  - spec/fixtures/account_users.json
137
142
  - spec/fixtures/add_custom_user_data.json
@@ -143,7 +148,10 @@ files:
143
148
  - spec/fixtures/calendar_events.json
144
149
  - spec/fixtures/canvas_files/declare_file.json
145
150
  - spec/fixtures/canvas_files/upload_success.json
151
+ - spec/fixtures/cc.imscc
146
152
  - spec/fixtures/conclude_enrollment.json
153
+ - spec/fixtures/content_migration_files/response.json
154
+ - spec/fixtures/content_migration_files/upload_success.json
147
155
  - spec/fixtures/conversation.json
148
156
  - spec/fixtures/course.json
149
157
  - spec/fixtures/course_conferences.json
@@ -209,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
217
  version: '0'
210
218
  requirements: []
211
219
  rubyforge_project:
212
- rubygems_version: 2.0.14
220
+ rubygems_version: 2.0.3
213
221
  signing_key:
214
222
  specification_version: 4
215
223
  summary: Canvas API
@@ -234,6 +242,10 @@ test_files:
234
242
  - spec/bearcat/client/users_spec.rb
235
243
  - spec/bearcat/client_spec.rb
236
244
  - spec/bearcat_spec.rb
245
+ - spec/fixtures/account_reports.json
246
+ - spec/fixtures/account_reports_index.json
247
+ - spec/fixtures/account_reports_result_success.json
248
+ - spec/fixtures/account_reports_start_result.json
237
249
  - spec/fixtures/account_user.json
238
250
  - spec/fixtures/account_users.json
239
251
  - spec/fixtures/add_custom_user_data.json
@@ -245,7 +257,10 @@ test_files:
245
257
  - spec/fixtures/calendar_events.json
246
258
  - spec/fixtures/canvas_files/declare_file.json
247
259
  - spec/fixtures/canvas_files/upload_success.json
260
+ - spec/fixtures/cc.imscc
248
261
  - spec/fixtures/conclude_enrollment.json
262
+ - spec/fixtures/content_migration_files/response.json
263
+ - spec/fixtures/content_migration_files/upload_success.json
249
264
  - spec/fixtures/conversation.json
250
265
  - spec/fixtures/course.json
251
266
  - spec/fixtures/course_conferences.json