bearcat 0.9.10 → 0.9.12

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.
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
@@ -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
@@ -40,6 +40,9 @@ module Bearcat
40
40
  delete("/api/v1/users/#{user}/custom_data/#{scope}", params)
41
41
  end
42
42
 
43
+ def page_views(user, params = {})
44
+ get("/api/v1/users/#{user}/page_views", params)
45
+ end
43
46
  end
44
47
  end
45
48
  end
@@ -1,3 +1,3 @@
1
1
  module Bearcat
2
- VERSION = '0.9.10' unless defined?(Bearcat::VERSION)
2
+ VERSION = '0.9.12' unless defined?(Bearcat::VERSION)
3
3
  end
@@ -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("submissions.json"))
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.10
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-04-22 00:00:00.000000000 Z
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
- requirements:
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: 2.2.2
216
+ rubygems_version: 1.8.23
213
217
  signing_key:
214
- specification_version: 4
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
- }