bearcat 1.3.4 → 1.3.5

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: 1047c6475c6879d0406a32058b0cc88a1a159c95
4
- data.tar.gz: 6cb156cb6106f68ac2284d45e3e05764dc5dd1b4
3
+ metadata.gz: 33acb91dffeaac66dddee65d11ae3adf74fae5a5
4
+ data.tar.gz: ed319de8739a90563f130a35d51c102ea2bbdb8f
5
5
  SHA512:
6
- metadata.gz: 788499c589eeba61c1d48a2fad38d605865a6796a09a1679a6aa0c2dba55212248dc6273f5e3e4792312fc6040c29b9cdc0c2689eb41fa87ac9b5d58e7245560
7
- data.tar.gz: 6727e28c3511252ae2f87fe49100734514b8fb277aae30a106645fc7fa4cb7217cfd39df3bf68acde630192b2e7bcfdf6eacb5d882767762a445d17561ffde49
6
+ metadata.gz: f82bab13382211c00f34cab2262d1492ec731b807eb76f86bceea3ee65819d247a9508edf73878142524400eaf888fefce7e1406f698dae98d25b14148d9b949
7
+ data.tar.gz: 5d3ba85086d8473021007a7eb3993b0d6d3e4eb28f40c6e1886b3c479433a11422066df8e2ce33b3bb8cfadde7a22962696f6156e9bbd89d76b8c0fe4d4a6116
@@ -32,6 +32,7 @@ module Bearcat
32
32
  require 'bearcat/client/analytics'
33
33
  require 'bearcat/client/module_items'
34
34
  require 'bearcat/client/content_migrations'
35
+ require 'bearcat/client/content_exports'
35
36
 
36
37
  include Assignments
37
38
  include Accounts
@@ -63,6 +64,7 @@ module Bearcat
63
64
  include Folders
64
65
  include ModuleItems
65
66
  include ContentMigrations
67
+ include ContentExports
66
68
 
67
69
 
68
70
  # Override Footrest request for ApiArray support
@@ -0,0 +1,39 @@
1
+ module Bearcat
2
+ class Client < Footrest::Client
3
+ module ContentExports
4
+
5
+ def create_content_export(id, type, params = {})
6
+ post("/api/v1/#{type}/#{id}/content_exports", params)
7
+ end
8
+
9
+ def create_course_export(id, params = {})
10
+ create_content_export(id, 'courses', params)
11
+ end
12
+
13
+ def create_group_export(id, params = {})
14
+ create_content_export(id, 'groups', params)
15
+ end
16
+
17
+ def create_user_export(id, params = {})
18
+ create_content_export(id, 'users', params)
19
+ end
20
+
21
+ def get_content_export(id, export_id, type, params = {})
22
+ get("/api/v1/#{type}/#{id}/content_exports/#{export_id}", params)
23
+ end
24
+
25
+ def get_course_export(course_id, export_id, params = {})
26
+ get_content_export(course_id, export_id, 'courses', params)
27
+ end
28
+
29
+ def get_group_export(group_id, export_id, params = {})
30
+ get_content_export(group_id, export_id, 'groups', params)
31
+ end
32
+
33
+ def get_user_export(user_id, export_id, params = {})
34
+ get_content_export(user_id, export_id, 'users', params)
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -9,6 +9,46 @@ module Bearcat
9
9
  confirm_file_upload(confirmation_url)
10
10
  end
11
11
 
12
+ def get_content_migration(id, migration_id, type, params = {})
13
+ get("/api/v1/#{type}/#{id}/content_migrations/#{migration_id}", params)
14
+ end
15
+
16
+ def get_account_content_migration(account_id, migration_id, params = {})
17
+ get_content_migration(account_id, migration_id, 'accounts', params = {})
18
+ end
19
+
20
+ def get_course_content_migration(course_id, migration_id, params = {})
21
+ get_content_migration(course_id, migration_id, 'courses', params = {})
22
+ end
23
+
24
+ def get_group_content_migration(group_id, migration_id, params = {})
25
+ get_content_migration(group_id, migration_id, 'groups', params = {})
26
+ end
27
+
28
+ def get_user_content_migration(user_id, migration_id, params = {})
29
+ get_content_migration(user_id, migration_id, 'users', params = {})
30
+ end
31
+
32
+ def create_content_migration(id, type, params = {})
33
+ post("/api/v1/#{type}/#{id}/content_migrations", params)
34
+ end
35
+
36
+ def create_account_content_migration(account_id, params = {})
37
+ create_content_migration(account_id, 'accounts', params)
38
+ end
39
+
40
+ def create_course_content_migration(course_id, params = {})
41
+ create_content_migration(course_id, 'courses', params)
42
+ end
43
+
44
+ def create_group_content_migration(group_id, params = {})
45
+ create_content_migration(group_id, 'groups', params)
46
+ end
47
+
48
+ def create_user_content_migration(user_id, params = {})
49
+ create_content_migration(user_id, 'users', params)
50
+ end
51
+
12
52
  end
13
53
  end
14
54
  end
@@ -1,3 +1,3 @@
1
1
  module Bearcat
2
- VERSION = '1.3.4' unless defined?(Bearcat::VERSION)
2
+ VERSION = '1.3.5' unless defined?(Bearcat::VERSION)
3
3
  end
@@ -0,0 +1,68 @@
1
+ require 'helper'
2
+
3
+ describe Bearcat::Client::ContentExports do
4
+ before do
5
+ @client = Bearcat::Client.new(prefix: "http://canvas.instructure.com", token: "test_token")
6
+ end
7
+
8
+ describe 'create_course_export' do
9
+ it "creates a course export" do
10
+ stub_post(@client, "/api/v1/courses/3/content_exports").to_return(json_response("content_export.json"))
11
+ course = @client.create_course_export(3)
12
+ course['export_type'].should == 'common_cartridge'
13
+ course['attachment'].should == {"url" => "https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"}
14
+ course['progress_url'].should == "https://example.com/api/v1/progress/4"
15
+ end
16
+ end
17
+
18
+ describe 'create_group_export' do
19
+ it "creates a group export" do
20
+ stub_post(@client, "/api/v1/groups/3/content_exports").to_return(json_response("content_export.json"))
21
+ group = @client.create_group_export(3)
22
+ group['export_type'].should == 'common_cartridge'
23
+ group['attachment'].should == {"url" => "https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"}
24
+ group['progress_url'].should == "https://example.com/api/v1/progress/4"
25
+ end
26
+ end
27
+
28
+ describe 'create_user_export' do
29
+ it "creates a user export" do
30
+ stub_post(@client, "/api/v1/users/3/content_exports").to_return(json_response("content_export.json"))
31
+ user = @client.create_user_export(3)
32
+ user['export_type'].should == 'common_cartridge'
33
+ user['attachment'].should == {"url" => "https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"}
34
+ user['progress_url'].should == "https://example.com/api/v1/progress/4"
35
+ end
36
+ end
37
+
38
+ describe 'get_course_export' do
39
+ it "gets a course export" do
40
+ stub_get(@client, "/api/v1/courses/3/content_exports/1").to_return(json_response("content_export.json"))
41
+ course = @client.get_course_export(3, 1)
42
+ course['export_type'].should == 'common_cartridge'
43
+ course['attachment'].should == {"url" => "https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"}
44
+ course['progress_url'].should == "https://example.com/api/v1/progress/4"
45
+ end
46
+ end
47
+
48
+ describe 'get_group_export' do
49
+ it "gets a group export" do
50
+ stub_get(@client, "/api/v1/groups/3/content_exports/1").to_return(json_response("content_export.json"))
51
+ group = @client.get_group_export(3, 1)
52
+ group['export_type'].should == 'common_cartridge'
53
+ group['attachment'].should == {"url" => "https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"}
54
+ group['progress_url'].should == "https://example.com/api/v1/progress/4"
55
+ end
56
+ end
57
+
58
+ describe 'get_user_export' do
59
+ it "gets a user export" do
60
+ stub_get(@client, "/api/v1/users/3/content_exports/1").to_return(json_response("content_export.json"))
61
+ user = @client.get_user_export(3, 1)
62
+ user['export_type'].should == 'common_cartridge'
63
+ user['attachment'].should == {"url" => "https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"}
64
+ user['progress_url'].should == "https://example.com/api/v1/progress/4"
65
+ end
66
+ end
67
+
68
+ end
@@ -19,4 +19,76 @@ describe Bearcat::Client::ContentMigrations do
19
19
  expect(response['id']).to eq 293
20
20
  end
21
21
 
22
+ describe 'get_group_content_migration' do
23
+ it "gets a content_migration" do
24
+ stub_get(@client, "/api/v1/accounts/3/content_migrations/1").to_return(json_response("content_migration_files/content_migration.json"))
25
+ account = @client.get_account_content_migration(3, 1)
26
+ account['migration_type'].should == 'common_cartridge_importer'
27
+ account['migration_type_title'].should == "Canvas Cartridge Importer"
28
+ end
29
+ end
30
+
31
+ describe 'get_course_content_migration' do
32
+ it "gets a content_migration" do
33
+ stub_get(@client, "/api/v1/courses/3/content_migrations/1").to_return(json_response("content_migration_files/content_migration.json"))
34
+ course = @client.get_course_content_migration(3, 1)
35
+ course['migration_type'].should == 'common_cartridge_importer'
36
+ course['migration_type_title'].should == "Canvas Cartridge Importer"
37
+ end
38
+ end
39
+
40
+ describe 'get_group_content_migration' do
41
+ it "gets a content_migration" do
42
+ stub_get(@client, "/api/v1/groups/3/content_migrations/1").to_return(json_response("content_migration_files/content_migration.json"))
43
+ group = @client.get_group_content_migration(3, 1)
44
+ group['migration_type'].should == 'common_cartridge_importer'
45
+ group['migration_type_title'].should == "Canvas Cartridge Importer"
46
+ end
47
+ end
48
+
49
+ describe 'get_user_content_migration' do
50
+ it "gets a content_migration" do
51
+ stub_get(@client, "/api/v1/users/3/content_migrations/1").to_return(json_response("content_migration_files/content_migration.json"))
52
+ user = @client.get_user_content_migration(3, 1)
53
+ user['migration_type'].should == 'common_cartridge_importer'
54
+ user['migration_type_title'].should == "Canvas Cartridge Importer"
55
+ end
56
+ end
57
+
58
+ describe 'create_account_content_migration' do
59
+ it "creates a account migration" do
60
+ stub_post(@client, "/api/v1/accounts/3/content_migrations").to_return(json_response('content_migration_files/content_migration.json'))
61
+ account = @client.create_account_content_migration(3)
62
+ account['migration_type'].should == 'common_cartridge_importer'
63
+ account['migration_type_title'].should == "Canvas Cartridge Importer"
64
+ end
65
+ end
66
+
67
+ describe 'create_course_content_migration' do
68
+ it "creates a course migration" do
69
+ stub_post(@client, "/api/v1/courses/3/content_migrations").to_return(json_response('content_migration_files/content_migration.json'))
70
+ course = @client.create_course_content_migration(3)
71
+ course['migration_type'].should == 'common_cartridge_importer'
72
+ course['migration_type_title'].should == "Canvas Cartridge Importer"
73
+ end
74
+ end
75
+
76
+ describe 'create_group_content_migration' do
77
+ it "creates a group migration" do
78
+ stub_post(@client, "/api/v1/groups/3/content_migrations").to_return(json_response('content_migration_files/content_migration.json'))
79
+ group = @client.create_group_content_migration(3)
80
+ group['migration_type'].should == 'common_cartridge_importer'
81
+ group['migration_type_title'].should == "Canvas Cartridge Importer"
82
+ end
83
+ end
84
+
85
+ describe 'create_user_content_migration' do
86
+ it "creates a user migration" do
87
+ stub_post(@client, "/api/v1/users/3/content_migrations").to_return(json_response('content_migration_files/content_migration.json'))
88
+ user = @client.create_user_content_migration(3)
89
+ user['migration_type'].should == 'common_cartridge_importer'
90
+ user['migration_type_title'].should == "Canvas Cartridge Importer"
91
+ end
92
+ end
93
+
22
94
  end
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 101,
3
+ "created_at": "2014-01-01T00:00:00Z",
4
+ "export_type": "common_cartridge",
5
+ "attachment": {"url":"https://example.com/api/v1/attachments/789?download_frd=1&verifier=bG9sY2F0cyEh"},
6
+ "progress_url": "https://example.com/api/v1/progress/4",
7
+ "user_id": 4,
8
+ "workflow_state": "exported"
9
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": 370663,
3
+ "migration_type": "common_cartridge_importer",
4
+ "migration_type_title": "Canvas Cartridge Importer",
5
+ "migration_issues_url": "https://example.com/api/v1/courses/1/content_migrations/1/migration_issues",
6
+ "attachment": {"url": "https://example.com/api/v1/courses/1/content_migrations/1/download_archive"},
7
+ "progress_url": "https://example.com/api/v1/progress/4",
8
+ "user_id": 4,
9
+ "workflow_state": "running",
10
+ "started_at": "2012-06-01T00:00:00-06:00",
11
+ "finished_at": "2012-06-01T00:00:00-06:00",
12
+ "pre_attachment": {"upload_url": "", "message": "file exceeded quota", "upload_params": {}}
13
+ }
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: 1.3.4
4
+ version: 1.3.5
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: 2016-12-06 00:00:00.000000000 Z
11
+ date: 2017-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -114,6 +114,7 @@ files:
114
114
  - lib/bearcat/client/calendar_events.rb
115
115
  - lib/bearcat/client/canvas_files.rb
116
116
  - lib/bearcat/client/conferences.rb
117
+ - lib/bearcat/client/content_exports.rb
117
118
  - lib/bearcat/client/content_migrations.rb
118
119
  - lib/bearcat/client/conversations.rb
119
120
  - lib/bearcat/client/courses.rb
@@ -145,6 +146,7 @@ files:
145
146
  - spec/bearcat/client/calendar_events_spec.rb
146
147
  - spec/bearcat/client/canvas_files_spec.rb
147
148
  - spec/bearcat/client/conferences_spec.rb
149
+ - spec/bearcat/client/content_exports_spec.rb
148
150
  - spec/bearcat/client/content_migrations_spec.rb
149
151
  - spec/bearcat/client/conversations_spec.rb
150
152
  - spec/bearcat/client/courses_spec.rb
@@ -197,6 +199,8 @@ files:
197
199
  - spec/fixtures/cc.imscc
198
200
  - spec/fixtures/communication_channels.json
199
201
  - spec/fixtures/conclude_enrollment.json
202
+ - spec/fixtures/content_export.json
203
+ - spec/fixtures/content_migration_files/content_migration.json
200
204
  - spec/fixtures/content_migration_files/response.json
201
205
  - spec/fixtures/content_migration_files/upload_success.json
202
206
  - spec/fixtures/conversation.json
@@ -301,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
301
305
  version: '0'
302
306
  requirements: []
303
307
  rubyforge_project:
304
- rubygems_version: 2.4.8
308
+ rubygems_version: 2.5.1
305
309
  signing_key:
306
310
  specification_version: 4
307
311
  summary: Canvas API
@@ -313,6 +317,7 @@ test_files:
313
317
  - spec/bearcat/client/calendar_events_spec.rb
314
318
  - spec/bearcat/client/canvas_files_spec.rb
315
319
  - spec/bearcat/client/conferences_spec.rb
320
+ - spec/bearcat/client/content_exports_spec.rb
316
321
  - spec/bearcat/client/content_migrations_spec.rb
317
322
  - spec/bearcat/client/conversations_spec.rb
318
323
  - spec/bearcat/client/courses_spec.rb
@@ -365,6 +370,8 @@ test_files:
365
370
  - spec/fixtures/cc.imscc
366
371
  - spec/fixtures/communication_channels.json
367
372
  - spec/fixtures/conclude_enrollment.json
373
+ - spec/fixtures/content_export.json
374
+ - spec/fixtures/content_migration_files/content_migration.json
368
375
  - spec/fixtures/content_migration_files/response.json
369
376
  - spec/fixtures/content_migration_files/upload_success.json
370
377
  - spec/fixtures/conversation.json