bearcat 0.9.10 → 0.9.12
Sign up to get free protection for your applications and to get access to all the features.
- data/bearcat.gemspec +1 -1
- data/lib/bearcat/client.rb +20 -18
- data/lib/bearcat/client/canvas_files.rb +51 -0
- data/lib/bearcat/client/submissions.rb +27 -1
- data/lib/bearcat/client/users.rb +3 -0
- data/lib/bearcat/version.rb +1 -1
- data/spec/bearcat/client/canvas_files_spec.rb +34 -0
- data/spec/bearcat/client/modules_spec.rb +1 -1
- data/spec/bearcat/client/submissions_spec.rb +20 -1
- data/spec/bearcat/client/users_spec.rb +9 -0
- data/spec/fixtures/bearcat.jpg +0 -0
- data/spec/fixtures/canvas_files/declare_file.json +14 -0
- data/spec/fixtures/canvas_files/upload_success.json +17 -0
- data/spec/fixtures/submissions/submission.json +18 -0
- data/spec/fixtures/user_page_views.json +31 -0
- data/spec/helper.rb +4 -4
- metadata +32 -23
- checksums.yaml +0 -15
- data/spec/fixtures/submissions.json +0 -18
data/bearcat.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
# spec/fixtures/bearcat.jpg Attribution: TassiloRau at the German language Wikipedia
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'bearcat/version'
|
@@ -21,7 +22,6 @@ Gem::Specification.new do |gem|
|
|
21
22
|
gem.add_development_dependency "bundler", ">= 1.0.0"
|
22
23
|
gem.add_development_dependency "rspec", "~> 2.6"
|
23
24
|
gem.add_development_dependency "webmock"
|
24
|
-
gem.add_development_dependency "debugger"
|
25
25
|
|
26
26
|
gem.add_dependency "footrest", ">= 0.2.2"
|
27
27
|
end
|
data/lib/bearcat/client.rb
CHANGED
@@ -1,24 +1,25 @@
|
|
1
|
-
require 'footrest/client'
|
2
|
-
require 'bearcat/api_array'
|
3
|
-
require 'bearcat/client/assignments'
|
4
|
-
require 'bearcat/client/courses'
|
5
|
-
require 'bearcat/client/enrollments'
|
6
|
-
require 'bearcat/client/outcome_groups'
|
7
|
-
require 'bearcat/client/outcomes'
|
8
|
-
require 'bearcat/client/sections'
|
9
|
-
require 'bearcat/client/o_auth2'
|
10
|
-
require 'bearcat/client/groups'
|
11
|
-
require 'bearcat/client/conferences'
|
12
|
-
require 'bearcat/client/users'
|
13
|
-
require 'bearcat/client/reports'
|
14
|
-
require 'bearcat/client/accounts'
|
15
|
-
require 'bearcat/client/submissions'
|
16
|
-
require 'bearcat/client/conversations'
|
17
|
-
require 'bearcat/client/modules'
|
18
|
-
|
19
1
|
module Bearcat
|
20
2
|
class Client < Footrest::Client
|
21
3
|
|
4
|
+
require 'footrest/client'
|
5
|
+
require 'bearcat/api_array'
|
6
|
+
require 'bearcat/client/assignments'
|
7
|
+
require 'bearcat/client/courses'
|
8
|
+
require 'bearcat/client/enrollments'
|
9
|
+
require 'bearcat/client/outcome_groups'
|
10
|
+
require 'bearcat/client/outcomes'
|
11
|
+
require 'bearcat/client/sections'
|
12
|
+
require 'bearcat/client/o_auth2'
|
13
|
+
require 'bearcat/client/groups'
|
14
|
+
require 'bearcat/client/conferences'
|
15
|
+
require 'bearcat/client/users'
|
16
|
+
require 'bearcat/client/reports'
|
17
|
+
require 'bearcat/client/accounts'
|
18
|
+
require 'bearcat/client/submissions'
|
19
|
+
require 'bearcat/client/conversations'
|
20
|
+
require 'bearcat/client/modules'
|
21
|
+
require 'bearcat/client/canvas_files'
|
22
|
+
|
22
23
|
include Assignments
|
23
24
|
include Accounts
|
24
25
|
include Courses
|
@@ -34,6 +35,7 @@ module Bearcat
|
|
34
35
|
include Submissions
|
35
36
|
include Conversations
|
36
37
|
include Modules
|
38
|
+
include CanvasFiles
|
37
39
|
|
38
40
|
|
39
41
|
# Override Footrest request for ApiArray support
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Bearcat
|
2
|
+
class Client < Footrest::Client
|
3
|
+
module CanvasFiles
|
4
|
+
|
5
|
+
def upload_file(api_path, file_path, params = {})
|
6
|
+
declare_response = declare_file(api_path, file_params(file_path).merge(params))
|
7
|
+
confirmation_url = post_file(declare_response['upload_url'], declare_response['upload_params'], file_path)
|
8
|
+
confirm_file_upload(confirmation_url)
|
9
|
+
end
|
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
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -6,6 +6,32 @@ module Bearcat
|
|
6
6
|
get("/api/v1/courses/#{course.to_s}/students/submissions", params)
|
7
7
|
end
|
8
8
|
|
9
|
+
def course_submission(course, assignment, params)
|
10
|
+
post("/api/v1/courses/#{course}/assignments/#{assignment}/submissions", params)
|
11
|
+
end
|
12
|
+
|
13
|
+
def section_submission(section, assignment, params)
|
14
|
+
post("/api/v1/sections/#{section}/assignments/#{assignment}/submissions", params)
|
15
|
+
end
|
16
|
+
|
17
|
+
def course_file_upload_submission(course, assignment, user, file_path, params={})
|
18
|
+
response = upload_file("/api/v1/courses/#{course}/assignments/#{assignment}/submissions/#{user}/files", file_path, params)
|
19
|
+
params['submission'] = {
|
20
|
+
'submission_type' => 'online_upload',
|
21
|
+
'file_ids'=> [response['id']]
|
22
|
+
}
|
23
|
+
course_submission(course, assignment, params)
|
24
|
+
end
|
25
|
+
|
26
|
+
def section_file_upload_submission(section, assignment, user, file_path, params={})
|
27
|
+
response = upload_file("/api/v1/sections/#{section}/assignments/#{assignment}/submissions/#{user}/files", file_path, params)
|
28
|
+
params['submission'] = {
|
29
|
+
'submission_type' => 'online_upload',
|
30
|
+
'file_ids'=> [response['id']]
|
31
|
+
}
|
32
|
+
section_submission(section, assignment, params)
|
33
|
+
end
|
34
|
+
|
9
35
|
end
|
10
36
|
end
|
11
|
-
end
|
37
|
+
end
|
data/lib/bearcat/client/users.rb
CHANGED
data/lib/bearcat/version.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Bearcat::Client::CanvasFiles do
|
4
|
+
before do
|
5
|
+
@client = Bearcat::Client.new(prefix: "http://canvas.instructure.com", token: "test_token")
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'uploads a file' do
|
9
|
+
stub_post(@client, "/my/upload/path").
|
10
|
+
with(:body => {"name" => "bearcat.jpg", "size" => "121363"}).
|
11
|
+
to_return(json_response('canvas_files', 'declare_file.json'))
|
12
|
+
|
13
|
+
stub_request(:post, "https://upload-url.invalid/").
|
14
|
+
to_return(status: 302, headers: {'Location' => 'https://confirm-upload.invalid/confirm?param=true'})
|
15
|
+
|
16
|
+
stub_post(@client, "/confirm").
|
17
|
+
with(:body => {"param" => ["true"]}).to_return(json_response('canvas_files', 'upload_success.json'))
|
18
|
+
|
19
|
+
response = @client.upload_file('my/upload/path', fixture('bearcat.jpg'))
|
20
|
+
expect(response['id']).to eq 123
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'throws an error on a failed file upload' do
|
24
|
+
stub_post(@client, "/my/upload/path").
|
25
|
+
with(:body => {"name" => "bearcat.jpg", "size" => "121363"}).
|
26
|
+
to_return(json_response('canvas_files', 'declare_file.json'))
|
27
|
+
|
28
|
+
stub_request(:post, "https://upload-url.invalid/").
|
29
|
+
to_return(status: 400, headers: {'Location' => 'https://confirm-upload.invalid/confirm?param=true'})
|
30
|
+
|
31
|
+
expect { @client.upload_file('my/upload/path', fixture('bearcat.jpg')) }.to raise_exception
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -13,7 +13,7 @@ describe Bearcat::Client::Modules do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "returns a course items module sequence" do
|
16
|
-
query = {"asset_type" => "assignment", "asset_id" => 22}
|
16
|
+
query = {"asset_type" => "assignment", "asset_id" => '22'}
|
17
17
|
stub_get(@client, "/api/v1/courses/1/module_item_sequence").with(query: query).to_return(json_response("module_item_sequence.json"))
|
18
18
|
item_sequence = @client.course_module_item_sequence("1", query)
|
19
19
|
items = item_sequence["modules"]
|
@@ -6,7 +6,7 @@ describe Bearcat::Client::Submissions do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it "returns all submissions for a course" do
|
9
|
-
stub_get(@client, "/api/v1/courses/3/students/submissions").to_return(json_response("
|
9
|
+
stub_get(@client, "/api/v1/courses/3/students/submissions").to_return(json_response('submissions', "submission.json"))
|
10
10
|
submissions = @client.course_submissions(3)
|
11
11
|
submissions['assignment_id'].should == 2353405
|
12
12
|
submissions['id'].should == 8444510
|
@@ -21,4 +21,23 @@ describe Bearcat::Client::Submissions do
|
|
21
21
|
submissions['workflow_state'].should =='unsubmitted'
|
22
22
|
end
|
23
23
|
|
24
|
+
context 'course' do
|
25
|
+
it "submits a file" do
|
26
|
+
@client.stub(:upload_file).and_return({})
|
27
|
+
stub_post(@client, '/api/v1/courses/1/assignments/2/submissions').to_return(json_response('submissions', 'submission.json'))
|
28
|
+
response = @client.course_file_upload_submission(1, 2, 3, fixture('bearcat.jpg'))
|
29
|
+
response['id'].should == 8444510
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'section' do
|
34
|
+
it "submits a file" do
|
35
|
+
@client.stub(:upload_file).and_return({})
|
36
|
+
stub_post(@client, '/api/v1/sections/1/assignments/2/submissions').to_return(json_response('submissions', 'submission.json'))
|
37
|
+
response = @client.section_file_upload_submission(1, 2, 3, fixture('bearcat.jpg'))
|
38
|
+
response['id'].should == 8444510
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
24
43
|
end
|
@@ -38,6 +38,15 @@ describe Bearcat::Client::Users do
|
|
38
38
|
user_profile["time_zone"].should == "America/Denver"
|
39
39
|
end
|
40
40
|
|
41
|
+
it "returns a users page_views" do
|
42
|
+
stub_get(@client, "/api/v1/users/1/page_views").to_return(json_response("user_page_views.json"))
|
43
|
+
page_views = @client.page_views(1)
|
44
|
+
page_views.members.count.should == 1
|
45
|
+
page_views.members.first['action'].should == 'show'
|
46
|
+
page_views.members.first['links'].should == {'user'=>1, 'context'=>1, 'asset'=>nil,
|
47
|
+
'real_user'=>nil, 'account'=>1}
|
48
|
+
end
|
49
|
+
|
41
50
|
describe 'user custom data' do
|
42
51
|
before (:each) do
|
43
52
|
@query = {"ns" => "com.test.app"}
|
Binary file
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"upload_url": "https://upload-url.invalid",
|
3
|
+
"upload_params": {
|
4
|
+
"AWSAccessKeyId": "ABC123",
|
5
|
+
"Filename": "",
|
6
|
+
"key": "key",
|
7
|
+
"acl": "private",
|
8
|
+
"Policy": "policy",
|
9
|
+
"Signature": "signature",
|
10
|
+
"success_action_redirect": "https://my_redirect.invalid/redirect?my_param=100",
|
11
|
+
"content-type": "image/jpg"
|
12
|
+
},
|
13
|
+
"file_param": "file"
|
14
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"id": 123,
|
3
|
+
"content-type": "image/jpg",
|
4
|
+
"display_name": "bearcat.jpg",
|
5
|
+
"filename": "bearcat.jpg",
|
6
|
+
"url": "https://canvas.instructure.com/files/123/download?download_frd=1&verifier=cdw3",
|
7
|
+
"size": 178559,
|
8
|
+
"created_at": "2014-05-01T17:04:32Z",
|
9
|
+
"updated_at": "2014-05-01T17:04:34Z",
|
10
|
+
"unlock_at": null,
|
11
|
+
"locked": false,
|
12
|
+
"hidden": false,
|
13
|
+
"lock_at": null,
|
14
|
+
"hidden_for_user": false,
|
15
|
+
"thumbnail_url": "https://thumbnail.invalid",
|
16
|
+
"locked_for_user": false
|
17
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"assignment_id": 2353405,
|
3
|
+
"attempt": null,
|
4
|
+
"body": null,
|
5
|
+
"grade": "1",
|
6
|
+
"grade_matches_current_submission": null,
|
7
|
+
"graded_at": "2014-02-27T20:22:49Z",
|
8
|
+
"grader_id": 627536,
|
9
|
+
"id": 8444510,
|
10
|
+
"score": 1,
|
11
|
+
"submission_type": null,
|
12
|
+
"submitted_at": null,
|
13
|
+
"url": null,
|
14
|
+
"user_id": 682285,
|
15
|
+
"workflow_state": "unsubmitted",
|
16
|
+
"late": false,
|
17
|
+
"preview_url": "https://canvas.instructure.com/courses/218274/assignments/2353405/submissions/682285?preview=1"
|
18
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"action": "show",
|
4
|
+
"asset_type": null,
|
5
|
+
"asset_user_access_id": null,
|
6
|
+
"context_type": "Account",
|
7
|
+
"controller": "accounts",
|
8
|
+
"created_at": "2014-05-28T22:03:32Z",
|
9
|
+
"developer_key_id": null,
|
10
|
+
"http_method": "get",
|
11
|
+
"interaction_seconds": 5,
|
12
|
+
"participated": null,
|
13
|
+
"remote_ip": "70.70.45.79",
|
14
|
+
"render_time": 0.395979262,
|
15
|
+
"session_id": "84fa36c3e18f9d11d8f4fa47ec123525",
|
16
|
+
"summarized": true,
|
17
|
+
"updated_at": "2014-05-28T22:03:32Z",
|
18
|
+
"url": "http:localhost:3000",
|
19
|
+
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36",
|
20
|
+
"user_request": true,
|
21
|
+
"id": "d4e6c140-c8e1-0131-3994-22000ab7c2ed",
|
22
|
+
"contributed": false,
|
23
|
+
"links": {
|
24
|
+
"user": 1,
|
25
|
+
"context": 1,
|
26
|
+
"asset": null,
|
27
|
+
"real_user": null,
|
28
|
+
"account": 1
|
29
|
+
}
|
30
|
+
}
|
31
|
+
]
|
data/spec/helper.rb
CHANGED
@@ -6,8 +6,8 @@ require 'json'
|
|
6
6
|
|
7
7
|
WebMock.disable_net_connect!
|
8
8
|
|
9
|
-
def fixture(file)
|
10
|
-
File.new(File.join(File.expand_path("../fixtures", __FILE__), file))
|
9
|
+
def fixture(*file)
|
10
|
+
File.new(File.join(File.expand_path("../fixtures", __FILE__), *file))
|
11
11
|
end
|
12
12
|
|
13
13
|
def stub_get(client, url)
|
@@ -26,9 +26,9 @@ def stub_delete(client, url)
|
|
26
26
|
stub_request(:delete, "#{client.config[:prefix]}#{url}")
|
27
27
|
end
|
28
28
|
|
29
|
-
def json_response(file)
|
29
|
+
def json_response(*file)
|
30
30
|
{
|
31
|
-
:body => fixture(file),
|
31
|
+
:body => fixture(*file),
|
32
32
|
:headers => {
|
33
33
|
:content_type => 'application/json; charset=utf-8'
|
34
34
|
}
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bearcat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.12
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Nathan Mills, Jake Sorce
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-05-29 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rake
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: bundler
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: webmock
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,20 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
|
66
|
-
- - ! '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: debugger
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ! '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
79
74
|
requirements:
|
80
75
|
- - ! '>='
|
81
76
|
- !ruby/object:Gem::Version
|
@@ -83,6 +78,7 @@ dependencies:
|
|
83
78
|
- !ruby/object:Gem::Dependency
|
84
79
|
name: footrest
|
85
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
86
82
|
requirements:
|
87
83
|
- - ! '>='
|
88
84
|
- !ruby/object:Gem::Version
|
@@ -90,6 +86,7 @@ dependencies:
|
|
90
86
|
type: :runtime
|
91
87
|
prerelease: false
|
92
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
93
90
|
requirements:
|
94
91
|
- - ! '>='
|
95
92
|
- !ruby/object:Gem::Version
|
@@ -103,12 +100,11 @@ extra_rdoc_files: []
|
|
103
100
|
files:
|
104
101
|
- Rakefile
|
105
102
|
- bearcat.gemspec
|
106
|
-
- lib/bearcat.rb
|
107
103
|
- lib/bearcat/api_array.rb
|
108
|
-
- lib/bearcat/client.rb
|
109
104
|
- lib/bearcat/client/account_reports.rb
|
110
105
|
- lib/bearcat/client/accounts.rb
|
111
106
|
- lib/bearcat/client/assignments.rb
|
107
|
+
- lib/bearcat/client/canvas_files.rb
|
112
108
|
- lib/bearcat/client/conferences.rb
|
113
109
|
- lib/bearcat/client/conversations.rb
|
114
110
|
- lib/bearcat/client/courses.rb
|
@@ -122,9 +118,12 @@ files:
|
|
122
118
|
- lib/bearcat/client/sections.rb
|
123
119
|
- lib/bearcat/client/submissions.rb
|
124
120
|
- lib/bearcat/client/users.rb
|
121
|
+
- lib/bearcat/client.rb
|
125
122
|
- lib/bearcat/version.rb
|
123
|
+
- lib/bearcat.rb
|
126
124
|
- spec/bearcat/client/accounts_spec.rb
|
127
125
|
- spec/bearcat/client/assignments_spec.rb
|
126
|
+
- spec/bearcat/client/canvas_files_spec.rb
|
128
127
|
- spec/bearcat/client/conferences_spec.rb
|
129
128
|
- spec/bearcat/client/conversations_spec.rb
|
130
129
|
- spec/bearcat/client/courses_spec.rb
|
@@ -146,6 +145,9 @@ files:
|
|
146
145
|
- spec/fixtures/add_user.json
|
147
146
|
- spec/fixtures/assignment_section_override.json
|
148
147
|
- spec/fixtures/assignments.json
|
148
|
+
- spec/fixtures/bearcat.jpg
|
149
|
+
- spec/fixtures/canvas_files/declare_file.json
|
150
|
+
- spec/fixtures/canvas_files/upload_success.json
|
149
151
|
- spec/fixtures/conclude_enrollment.json
|
150
152
|
- spec/fixtures/conversation.json
|
151
153
|
- spec/fixtures/course.json
|
@@ -182,40 +184,43 @@ files:
|
|
182
184
|
- spec/fixtures/section_enrollments.json
|
183
185
|
- spec/fixtures/single_account.json
|
184
186
|
- spec/fixtures/start_report.json
|
185
|
-
- spec/fixtures/submissions.json
|
187
|
+
- spec/fixtures/submissions/submission.json
|
186
188
|
- spec/fixtures/update_outcome.json
|
187
189
|
- spec/fixtures/update_outcome_group.json
|
188
190
|
- spec/fixtures/update_section.json
|
189
191
|
- spec/fixtures/user_avatars.json
|
190
192
|
- spec/fixtures/user_enrollments.json
|
193
|
+
- spec/fixtures/user_page_views.json
|
191
194
|
- spec/fixtures/user_profile.json
|
192
195
|
- spec/helper.rb
|
193
196
|
homepage:
|
194
197
|
licenses: []
|
195
|
-
metadata: {}
|
196
198
|
post_install_message:
|
197
199
|
rdoc_options: []
|
198
200
|
require_paths:
|
199
201
|
- lib
|
200
202
|
required_ruby_version: !ruby/object:Gem::Requirement
|
203
|
+
none: false
|
201
204
|
requirements:
|
202
205
|
- - ! '>='
|
203
206
|
- !ruby/object:Gem::Version
|
204
207
|
version: '0'
|
205
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
206
210
|
requirements:
|
207
211
|
- - ! '>='
|
208
212
|
- !ruby/object:Gem::Version
|
209
213
|
version: '0'
|
210
214
|
requirements: []
|
211
215
|
rubyforge_project:
|
212
|
-
rubygems_version:
|
216
|
+
rubygems_version: 1.8.23
|
213
217
|
signing_key:
|
214
|
-
specification_version:
|
218
|
+
specification_version: 3
|
215
219
|
summary: Canvas API
|
216
220
|
test_files:
|
217
221
|
- spec/bearcat/client/accounts_spec.rb
|
218
222
|
- spec/bearcat/client/assignments_spec.rb
|
223
|
+
- spec/bearcat/client/canvas_files_spec.rb
|
219
224
|
- spec/bearcat/client/conferences_spec.rb
|
220
225
|
- spec/bearcat/client/conversations_spec.rb
|
221
226
|
- spec/bearcat/client/courses_spec.rb
|
@@ -237,6 +242,9 @@ test_files:
|
|
237
242
|
- spec/fixtures/add_user.json
|
238
243
|
- spec/fixtures/assignment_section_override.json
|
239
244
|
- spec/fixtures/assignments.json
|
245
|
+
- spec/fixtures/bearcat.jpg
|
246
|
+
- spec/fixtures/canvas_files/declare_file.json
|
247
|
+
- spec/fixtures/canvas_files/upload_success.json
|
240
248
|
- spec/fixtures/conclude_enrollment.json
|
241
249
|
- spec/fixtures/conversation.json
|
242
250
|
- spec/fixtures/course.json
|
@@ -273,12 +281,13 @@ test_files:
|
|
273
281
|
- spec/fixtures/section_enrollments.json
|
274
282
|
- spec/fixtures/single_account.json
|
275
283
|
- spec/fixtures/start_report.json
|
276
|
-
- spec/fixtures/submissions.json
|
284
|
+
- spec/fixtures/submissions/submission.json
|
277
285
|
- spec/fixtures/update_outcome.json
|
278
286
|
- spec/fixtures/update_outcome_group.json
|
279
287
|
- spec/fixtures/update_section.json
|
280
288
|
- spec/fixtures/user_avatars.json
|
281
289
|
- spec/fixtures/user_enrollments.json
|
290
|
+
- spec/fixtures/user_page_views.json
|
282
291
|
- spec/fixtures/user_profile.json
|
283
292
|
- spec/helper.rb
|
284
293
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
Y2RkMGQ5ZDdhNWZkNWQ5MjVmZGU2NzAwY2I5ZDJmMjA1NzE3ZDNkMw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NDUzNzU0NjhkYjY2MWZkMWMyNzRkODhjYjczZDFjYzA3NjI4NjI2ZA==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
N2Y2YWIwMGUzNWM4MTZjOTkxMmVhMWNjNmY5YmQwYjYyZjA1N2M4ZWFhNWYw
|
10
|
-
MjcyYmRjYzU4YzJkMjc1ODhkYzAyNjk0ZGY1NDQ2NTE1N2RiOTg5NzM3N2I3
|
11
|
-
ODE4NjZlZDU4ZmZlOTlmZjhlYzNkOTY0MTc3OGYzMjA5MGI4NTc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MTBjMzE2MDY3MjI1OTBjZmRhZmNkMzI1N2YxZTFkNzUxYWZiZTAyMTA5Nzdk
|
14
|
-
NDFhNGRiNDVkZTI3NzExZWQ4NGVhNDNjYTM4MTJhY2JkMzQ1ZWMzNTY2MTNk
|
15
|
-
ZGFmZTdjMzliNGQ4NWEwMjM4NTQyZGI3OTk1MDc1Nzc4NDE0ZTk=
|
@@ -1,18 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"assignment_id": 2353405,
|
3
|
-
"attempt": null,
|
4
|
-
"body": null,
|
5
|
-
"grade": "1",
|
6
|
-
"grade_matches_current_submission": null,
|
7
|
-
"graded_at": "2014-02-27T20:22:49Z",
|
8
|
-
"grader_id": 627536,
|
9
|
-
"id": 8444510,
|
10
|
-
"score": 1,
|
11
|
-
"submission_type": null,
|
12
|
-
"submitted_at": null,
|
13
|
-
"url": null,
|
14
|
-
"user_id": 682285,
|
15
|
-
"workflow_state": "unsubmitted",
|
16
|
-
"late": false,
|
17
|
-
"preview_url": "https://canvas.instructure.com/courses/218274/assignments/2353405/submissions/682285?preview=1"
|
18
|
-
}
|