canvas_oauth_engine 2.1.1 → 2.2.0
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 +4 -4
- data/lib/canvas_oauth/canvas_api.rb +5 -1
- data/lib/canvas_oauth/default_utf8_parser.rb +13 -0
- data/lib/canvas_oauth/version.rb +1 -1
- data/lib/canvas_oauth.rb +1 -0
- data/spec/dummy/config/application.rb +0 -2
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +49 -0
- data/spec/dummy/log/test.log +382 -0
- data/spec/lib/canvas_oauth/canvas_api_spec.rb +21 -0
- data/spec/lib/canvas_oauth/default_utf8_parser_spec.rb +21 -0
- metadata +54 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2a88f4ee3820d12421b7cc83434d3fc908744397716172d224e21af37470fd2
|
4
|
+
data.tar.gz: 6a42eef65c2013ef374c66e698b552dfc1cacb57493804c7cadf11ab8f879705
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12b6b3965bc0bde82bce922c0faebab6bbaff31b71314db70d58f246687cdbd284934f081e938ac47585f2aacc386e7749d8d6d9f05c3ad7b82353cd1012f54b
|
7
|
+
data.tar.gz: b232dd7bb61ed83ea6d30dac284b8fd05114823dfb735174db06d27cded7fe565a96a0b3bfa417485b4e41f99e368c9c68a7401b976e340fcda2c054f1fc943b
|
@@ -74,7 +74,7 @@ module CanvasOauth
|
|
74
74
|
if report['status'] == 'complete'
|
75
75
|
file_id = report['file_url'].match(/files\/([0-9]+)\/download/)[1]
|
76
76
|
file = get_file(file_id)
|
77
|
-
return hash_csv(self.class.get(file['url'], limit: 15).parsed_response)
|
77
|
+
return hash_csv(self.class.get(file['url'], limit: 15, parser: DefaultUTF8Parser).parsed_response)
|
78
78
|
else
|
79
79
|
return report
|
80
80
|
end
|
@@ -195,6 +195,10 @@ module CanvasOauth
|
|
195
195
|
authenticated_post "/api/v1/courses/#{course_id}/assignments", { body: { assignment: params } }
|
196
196
|
end
|
197
197
|
|
198
|
+
def update_assignment(course_id, assignment_id, params)
|
199
|
+
authenticated_put "/api/v1/courses/#{course_id}/assignments/#{assignment_id}", { body: { assignment: params } }
|
200
|
+
end
|
201
|
+
|
198
202
|
def grade_assignment(course_id, assignment_id, user_id, params)
|
199
203
|
authenticated_put "/api/v1/courses/#{course_id}/assignments/#{assignment_id}/submissions/#{user_id}", { body: params }
|
200
204
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module CanvasOauth
|
2
|
+
# We get into a weird case with the CDN with canvas where the Content-Type for a CSV comes back as text/csv, but there
|
3
|
+
# is no associated charset with it. HTTParty will default to treating it as binary (aka ASCII-8BIT) data which causes
|
4
|
+
# issues downstream when the data gets combined with local application data. In cases where we can reasonably know
|
5
|
+
# it'll be a UTF-8 compatible file (i.e any csv file from canvas) we'll force an encoding of UTF-8 if ruby thinks its
|
6
|
+
# ASCII-8BIT
|
7
|
+
class DefaultUTF8Parser < HTTParty::Parser
|
8
|
+
def parse
|
9
|
+
body.force_encoding("UTF-8") if body&.encoding == Encoding::ASCII_8BIT
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/canvas_oauth/version.rb
CHANGED
data/lib/canvas_oauth.rb
CHANGED
@@ -43,8 +43,6 @@ module Dummy
|
|
43
43
|
# like if you have constraints or database-specific column types
|
44
44
|
# config.active_record.schema_format = :sql
|
45
45
|
|
46
|
-
config.active_record.sqlite3.represent_boolean_as_integer = true
|
47
|
-
|
48
46
|
# Enable the asset pipeline
|
49
47
|
config.assets.enabled = true
|
50
48
|
|
Binary file
|
Binary file
|
@@ -0,0 +1,49 @@
|
|
1
|
+
Initializing Canvas using configuration in /Users/murilo.paiva/Desktop/www/Instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml
|
2
|
+
[1m[35m (3.7ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
3
|
+
Initializing Canvas using configuration in /Users/murilo.paiva/Desktop/www/Instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml
|
4
|
+
[1m[35m (1.2ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
5
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
6
|
+
Initializing Canvas using configuration in /Users/murilo.paiva/Desktop/www/Instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml
|
7
|
+
[1m[35m (1.6ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
8
|
+
Initializing Canvas using configuration in /Users/murilo.paiva/Desktop/www/Instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml
|
9
|
+
[1m[35m (1.3ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
10
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
11
|
+
[1m[35m (0.0ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
12
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
13
|
+
[1m[35m (0.1ms)[0m [1m[35mDROP TABLE IF EXISTS "canvas_oauth_authorizations"[0m
|
14
|
+
[1m[35m (1.3ms)[0m [1m[35mCREATE TABLE "canvas_oauth_authorizations" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" integer(8), "tool_consumer_instance_guid" varchar NOT NULL, "token" varchar, "last_used_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
15
|
+
[1m[35m (1.0ms)[0m [1m[35mCREATE INDEX "index_canvas_oauth_auths_on_user_id_and_tciguid" ON "canvas_oauth_authorizations" ("canvas_user_id", "tool_consumer_instance_guid")[0m
|
16
|
+
[1m[35m (1.2ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)[0m
|
17
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
18
|
+
[1m[35m (1.2ms)[0m [1m[32mINSERT INTO "schema_migrations" (version) VALUES (20121121005358)[0m
|
19
|
+
[1m[35m (1.1ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL)[0m
|
20
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
21
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
22
|
+
[1m[36mActiveRecord::InternalMetadata Create (0.4ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "environment"], ["value", "development"], ["created_at", "2022-03-21 15:32:41.317911"], ["updated_at", "2022-03-21 15:32:41.317911"]]
|
23
|
+
[1m[36mTRANSACTION (0.7ms)[0m [1m[36mcommit transaction[0m
|
24
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
25
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "schema_sha1"], ["LIMIT", 1]]
|
26
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
27
|
+
[1m[36mActiveRecord::InternalMetadata Create (0.4ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "schema_sha1"], ["value", "fc30e804ce934e09ede366066915736ad77cf98d"], ["created_at", "2022-03-21 15:32:41.321862"], ["updated_at", "2022-03-21 15:32:41.321862"]]
|
28
|
+
[1m[36mTRANSACTION (0.8ms)[0m [1m[36mcommit transaction[0m
|
29
|
+
[1m[35m (0.0ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
30
|
+
[1m[35m (0.1ms)[0m [1m[35mDROP TABLE IF EXISTS "canvas_oauth_authorizations"[0m
|
31
|
+
[1m[35m (1.1ms)[0m [1m[35mCREATE TABLE "canvas_oauth_authorizations" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" integer(8), "tool_consumer_instance_guid" varchar NOT NULL, "token" varchar, "last_used_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
32
|
+
[1m[35m (1.0ms)[0m [1m[35mCREATE INDEX "index_canvas_oauth_auths_on_user_id_and_tciguid" ON "canvas_oauth_authorizations" ("canvas_user_id", "tool_consumer_instance_guid")[0m
|
33
|
+
[1m[35m (1.0ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)[0m
|
34
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
35
|
+
[1m[35m (1.0ms)[0m [1m[32mINSERT INTO "schema_migrations" (version) VALUES (20121121005358)[0m
|
36
|
+
[1m[35m (1.1ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL)[0m
|
37
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
38
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
39
|
+
[1m[36mActiveRecord::InternalMetadata Create (0.3ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "environment"], ["value", "development"], ["created_at", "2022-03-21 15:32:41.332974"], ["updated_at", "2022-03-21 15:32:41.332974"]]
|
40
|
+
[1m[36mTRANSACTION (0.7ms)[0m [1m[36mcommit transaction[0m
|
41
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
42
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
43
|
+
[1m[36mActiveRecord::InternalMetadata Update (0.4ms)[0m [1m[33mUPDATE "ar_internal_metadata" SET "value" = ?, "updated_at" = ? WHERE "ar_internal_metadata"."key" = ?[0m [["value", "test"], ["updated_at", "2022-03-21 15:32:41.335498"], ["key", "environment"]]
|
44
|
+
[1m[36mTRANSACTION (0.8ms)[0m [1m[36mcommit transaction[0m
|
45
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "schema_sha1"], ["LIMIT", 1]]
|
46
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
47
|
+
[1m[36mActiveRecord::InternalMetadata Create (0.4ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "schema_sha1"], ["value", "fc30e804ce934e09ede366066915736ad77cf98d"], ["created_at", "2022-03-21 15:32:41.338507"], ["updated_at", "2022-03-21 15:32:41.338507"]]
|
48
|
+
[1m[36mTRANSACTION (0.6ms)[0m [1m[36mcommit transaction[0m
|
49
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
@@ -0,0 +1,382 @@
|
|
1
|
+
Initializing Canvas using configuration in /Users/murilo.paiva/Desktop/www/Instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml
|
2
|
+
[1m[35m (1.6ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
3
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
4
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
5
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
6
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
7
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
8
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
9
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
10
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
11
|
+
Parameters: {"code"=>"valid", "state"=>"zzyyxx"}
|
12
|
+
Rendering text template
|
13
|
+
Rendered text template (Duration: 0.0ms | Allocations: 3)
|
14
|
+
Completed 200 OK in 10ms (Views: 3.6ms | ActiveRecord: 0.0ms | Allocations: 2549)
|
15
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
16
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
17
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
18
|
+
Parameters: {"code"=>"valid"}
|
19
|
+
Rendering text template
|
20
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
21
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 153)
|
22
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
23
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
24
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
25
|
+
Parameters: {"code"=>"valid"}
|
26
|
+
Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms | Allocations: 400)
|
27
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
28
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
29
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
30
|
+
Parameters: {"code"=>"valid"}
|
31
|
+
Rendering text template
|
32
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
33
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 315)
|
34
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
35
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
36
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
37
|
+
Parameters: {"code"=>"invalid"}
|
38
|
+
Rendering text template
|
39
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
40
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 246)
|
41
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
42
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
43
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
44
|
+
Parameters: {"code"=>"valid", "state"=>"mismatch"}
|
45
|
+
Rendering text template
|
46
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
47
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 153)
|
48
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
49
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
50
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
51
|
+
Parameters: {"code"=>"valid", "state"=>"zzyyxx"}
|
52
|
+
Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms | Allocations: 282)
|
53
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
54
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
55
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
56
|
+
Rendering text template
|
57
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
58
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 185)
|
59
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
60
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
61
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
62
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
63
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
64
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
65
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
66
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
67
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
68
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
69
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
70
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
71
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
72
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
73
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
74
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
75
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
76
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
77
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
78
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
79
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
80
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
81
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
82
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
83
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
84
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
85
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
86
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
87
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
88
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
89
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
90
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
91
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
92
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
93
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
94
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
95
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
96
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
97
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
98
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
99
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
100
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
101
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
102
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
103
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
104
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
105
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
106
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
107
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
108
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
109
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
110
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
111
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
112
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
113
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
114
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
115
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
116
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
117
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
118
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
119
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
120
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
121
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
122
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
123
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
124
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
125
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
126
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
127
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
128
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
129
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
130
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
131
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
132
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
133
|
+
API call (0.06ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]
|
134
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
135
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
136
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
137
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
138
|
+
API call (0.04ms): get ["/api/v1/courses/123", {:headers=>{}}]
|
139
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
140
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
141
|
+
API call (0.04ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]
|
142
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
143
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
144
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
145
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
146
|
+
API call (0.06ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]
|
147
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
148
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
149
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
150
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
151
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
152
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
153
|
+
API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]
|
154
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
155
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
156
|
+
API call (0.04ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]
|
157
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
158
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
159
|
+
API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]
|
160
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
161
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
162
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
163
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
164
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
165
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
166
|
+
API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]
|
167
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
168
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
169
|
+
API call (0.03ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]
|
170
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
171
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
172
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
173
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
174
|
+
API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]
|
175
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
176
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
177
|
+
API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]
|
178
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
179
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
180
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
181
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
182
|
+
API call (0.04ms): get ["/path", {:headers=>{}}]
|
183
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
184
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
185
|
+
API call (0.03ms): get ["/path", {:headers=>{}}]
|
186
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
187
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
188
|
+
API call (0.03ms): get ["/path", {:query=>"stuff", :headers=>{}}]
|
189
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
190
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
191
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
192
|
+
Initializing Canvas using configuration in /Users/murilo.paiva/Desktop/www/Instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml
|
193
|
+
[1m[35m (1.7ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
194
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
195
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
196
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
197
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
198
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
199
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
200
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
201
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
202
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
203
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
204
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
205
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
206
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
207
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
208
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
209
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
210
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
211
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
212
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
213
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
214
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
215
|
+
API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]
|
216
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
217
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
218
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
219
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
220
|
+
API call (0.02ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]
|
221
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
222
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
223
|
+
API call (0.02ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]
|
224
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
225
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
226
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
227
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
228
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
229
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
230
|
+
API call (0.02ms): get ["/api/v1/users/123/profile", {:headers=>{}}]
|
231
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
232
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
233
|
+
API call (0.02ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]
|
234
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
235
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
236
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
237
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
238
|
+
API call (0.02ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]
|
239
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
240
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
241
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
242
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
243
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
244
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
245
|
+
API call (0.02ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]
|
246
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
247
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
248
|
+
API call (0.02ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]
|
249
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
250
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
251
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
252
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
253
|
+
API call (0.02ms): get ["/api/v1/courses/123", {:headers=>{}}]
|
254
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
255
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
256
|
+
API call (0.03ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]
|
257
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
258
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
259
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
260
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
261
|
+
API call (0.07ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]
|
262
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
263
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
264
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
265
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
266
|
+
API call (0.05ms): get ["/path", {:query=>"stuff", :headers=>{}}]
|
267
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
268
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
269
|
+
API call (0.06ms): get ["/path", {:headers=>{}}]
|
270
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
271
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
272
|
+
API call (0.06ms): get ["/path", {:headers=>{}}]
|
273
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
274
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
275
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
276
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
277
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
278
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
279
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
280
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
281
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
282
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
283
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
284
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
285
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
286
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
287
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
288
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
289
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
290
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
291
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
292
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
293
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
294
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
295
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
296
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
297
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
298
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
299
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
300
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
301
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
302
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
303
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
304
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
305
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
306
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
307
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
308
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
309
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
310
|
+
Parameters: {"code"=>"invalid"}
|
311
|
+
Rendering text template
|
312
|
+
Rendered text template (Duration: 0.0ms | Allocations: 3)
|
313
|
+
Completed 200 OK in 12ms (Views: 4.5ms | ActiveRecord: 0.0ms | Allocations: 2642)
|
314
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
315
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
316
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
317
|
+
Parameters: {"code"=>"valid"}
|
318
|
+
Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms | Allocations: 399)
|
319
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
320
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
321
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
322
|
+
Parameters: {"code"=>"valid"}
|
323
|
+
Rendering text template
|
324
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
325
|
+
Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 312)
|
326
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
327
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
328
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
329
|
+
Rendering text template
|
330
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
331
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 185)
|
332
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
333
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
334
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
335
|
+
Parameters: {"code"=>"valid", "state"=>"mismatch"}
|
336
|
+
Rendering text template
|
337
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
338
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 153)
|
339
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
340
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
341
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
342
|
+
Parameters: {"code"=>"valid", "state"=>"zzyyxx"}
|
343
|
+
Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms | Allocations: 282)
|
344
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
345
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
346
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
347
|
+
Parameters: {"code"=>"valid", "state"=>"zzyyxx"}
|
348
|
+
Rendering text template
|
349
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
350
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 153)
|
351
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
352
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
353
|
+
Processing by CanvasOauth::CanvasController#oauth as HTML
|
354
|
+
Parameters: {"code"=>"valid"}
|
355
|
+
Rendering text template
|
356
|
+
Rendered text template (Duration: 0.0ms | Allocations: 1)
|
357
|
+
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 153)
|
358
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
359
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
360
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
361
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
362
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
363
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
364
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
365
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
366
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
367
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
368
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
369
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
370
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[31mrollback transaction[0m
|
371
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[36mbegin transaction[0m
|
372
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
373
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
374
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
375
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
376
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
377
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
378
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
379
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
380
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
381
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[36mbegin transaction[0m
|
382
|
+
[1m[36mTRANSACTION (0.0ms)[0m [1m[31mrollback transaction[0m
|
@@ -174,6 +174,20 @@ describe CanvasOauth::CanvasApi do
|
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
|
+
describe "update_assignment" do
|
178
|
+
it "puts to /api/v1/courses/:course_id/assignments/:id" do
|
179
|
+
expect(CanvasOauth::CanvasApi).to receive(:put).with('/api/v1/courses/123/assignments/345', anything())
|
180
|
+
canvas.update_assignment('123', '345', omit_from_final_grade: true)
|
181
|
+
end
|
182
|
+
|
183
|
+
it "sets the body of the request to the assignment params" do
|
184
|
+
expect(canvas).to receive(:authenticated_put).
|
185
|
+
with(anything(), { body: { assignment: { omit_from_final_grade: true }}})
|
186
|
+
|
187
|
+
canvas.update_assignment('123', '345', omit_from_final_grade: true)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
177
191
|
describe "grade_assignment" do
|
178
192
|
it "puts to /api/v1/courses/:course_id/assignments/:assignment_id/submissions/:id" do
|
179
193
|
expect(CanvasOauth::CanvasApi).to receive(:put).with('/api/v1/courses/1/assignments/2/submissions/3', anything())
|
@@ -257,6 +271,13 @@ describe CanvasOauth::CanvasApi do
|
|
257
271
|
expect(canvas).to receive(:authenticated_get).exactly(3).times.and_return(created, running, aborted)
|
258
272
|
canvas.get_report(1, :provisioning_csv, params)
|
259
273
|
end
|
274
|
+
|
275
|
+
it "uses the default UTF 8 parser it its get call" do
|
276
|
+
allow(canvas).to receive(:authenticated_get).and_return(complete)
|
277
|
+
expect(canvas).to receive(:authenticated_post).with("/api/v1/accounts/1/reports/provisioning_csv", { body: params })
|
278
|
+
expect(CanvasOauth::CanvasApi).to receive(:get).with(file['url'], hash_including(parser: CanvasOauth::DefaultUTF8Parser)).and_return(response)
|
279
|
+
canvas.get_report(1, :provisioning_csv, params)
|
280
|
+
end
|
260
281
|
end
|
261
282
|
end
|
262
283
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CanvasOauth::DefaultUTF8Parser do
|
4
|
+
describe "#parse" do
|
5
|
+
it "forces the body passed in to UTF-8 if it is ASCII_8BIT" do
|
6
|
+
body = String.new("I am some text", encoding: Encoding::ASCII_8BIT)
|
7
|
+
|
8
|
+
parser = CanvasOauth::DefaultUTF8Parser.new(body, "text/plain")
|
9
|
+
expect(body).to receive(:force_encoding).with("UTF-8")
|
10
|
+
parser.parse
|
11
|
+
end
|
12
|
+
|
13
|
+
it "does not force the body passed in to UTF-8 if not ASCII_8BIT" do
|
14
|
+
body = String.new("I am some text", encoding: Encoding::US_ASCII)
|
15
|
+
|
16
|
+
parser = CanvasOauth::DefaultUTF8Parser.new(body, "text/plain")
|
17
|
+
expect(body).not_to receive(:force_encoding)
|
18
|
+
parser.parse
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canvas_oauth_engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Donahue
|
8
8
|
- Adam Anderson
|
9
9
|
- Simon Williams
|
10
|
-
|
10
|
+
- Keith Garner
|
11
|
+
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2022-03-22 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: rails
|
@@ -19,9 +20,9 @@ dependencies:
|
|
19
20
|
- - ">="
|
20
21
|
- !ruby/object:Gem::Version
|
21
22
|
version: '4.2'
|
22
|
-
- - "
|
23
|
+
- - "<="
|
23
24
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
25
|
+
version: 6.1.4.2
|
25
26
|
type: :runtime
|
26
27
|
prerelease: false
|
27
28
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,23 +30,23 @@ dependencies:
|
|
29
30
|
- - ">="
|
30
31
|
- !ruby/object:Gem::Version
|
31
32
|
version: '4.2'
|
32
|
-
- - "
|
33
|
+
- - "<="
|
33
34
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
35
|
+
version: 6.1.4.2
|
35
36
|
- !ruby/object:Gem::Dependency
|
36
37
|
name: httparty
|
37
38
|
requirement: !ruby/object:Gem::Requirement
|
38
39
|
requirements:
|
39
40
|
- - ">="
|
40
41
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.
|
42
|
+
version: 0.17.0
|
42
43
|
type: :runtime
|
43
44
|
prerelease: false
|
44
45
|
version_requirements: !ruby/object:Gem::Requirement
|
45
46
|
requirements:
|
46
47
|
- - ">="
|
47
48
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
49
|
+
version: 0.17.0
|
49
50
|
- !ruby/object:Gem::Dependency
|
50
51
|
name: link_header
|
51
52
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,6 +61,20 @@ dependencies:
|
|
60
61
|
- - '='
|
61
62
|
- !ruby/object:Gem::Version
|
62
63
|
version: 0.0.8
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: sprockets
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 3.7.2
|
71
|
+
type: :runtime
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.7.2
|
63
78
|
- !ruby/object:Gem::Dependency
|
64
79
|
name: sqlite3
|
65
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,6 +201,20 @@ dependencies:
|
|
186
201
|
- - "~>"
|
187
202
|
- !ruby/object:Gem::Version
|
188
203
|
version: 3.0.6
|
204
|
+
- !ruby/object:Gem::Dependency
|
205
|
+
name: sprockets
|
206
|
+
requirement: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '3.0'
|
211
|
+
type: :development
|
212
|
+
prerelease: false
|
213
|
+
version_requirements: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - "~>"
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '3.0'
|
189
218
|
- !ruby/object:Gem::Dependency
|
190
219
|
name: rb-fsevent
|
191
220
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,10 +243,10 @@ dependencies:
|
|
214
243
|
- - ">="
|
215
244
|
- !ruby/object:Gem::Version
|
216
245
|
version: '0'
|
217
|
-
description:
|
246
|
+
description:
|
218
247
|
email:
|
219
|
-
- adam.anderson@12spokes.com
|
220
248
|
- simon@instructure.com
|
249
|
+
- kgarner@instructure.com
|
221
250
|
executables: []
|
222
251
|
extensions: []
|
223
252
|
extra_rdoc_files: []
|
@@ -237,6 +266,7 @@ files:
|
|
237
266
|
- lib/canvas_oauth/canvas_application.rb
|
238
267
|
- lib/canvas_oauth/canvas_config.rb
|
239
268
|
- lib/canvas_oauth/config.rb
|
269
|
+
- lib/canvas_oauth/default_utf8_parser.rb
|
240
270
|
- lib/canvas_oauth/engine.rb
|
241
271
|
- lib/canvas_oauth/version.rb
|
242
272
|
- lib/tasks/canvas_oauth_tasks.rake
|
@@ -262,8 +292,12 @@ files:
|
|
262
292
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
263
293
|
- spec/dummy/config/locales/en.yml
|
264
294
|
- spec/dummy/config/routes.rb
|
295
|
+
- spec/dummy/db/development.sqlite3
|
265
296
|
- spec/dummy/db/migrate/20160711200737_create_canvas_oauth_authorizations.canvas_oauth.rb
|
266
297
|
- spec/dummy/db/schema.rb
|
298
|
+
- spec/dummy/db/test.sqlite3
|
299
|
+
- spec/dummy/log/development.log
|
300
|
+
- spec/dummy/log/test.log
|
267
301
|
- spec/dummy/public/404.html
|
268
302
|
- spec/dummy/public/422.html
|
269
303
|
- spec/dummy/public/500.html
|
@@ -272,12 +306,13 @@ files:
|
|
272
306
|
- spec/dummy/script/rails
|
273
307
|
- spec/lib/canvas_oauth/canvas_api_extensions_spec.rb
|
274
308
|
- spec/lib/canvas_oauth/canvas_api_spec.rb
|
309
|
+
- spec/lib/canvas_oauth/default_utf8_parser_spec.rb
|
275
310
|
- spec/models/canvas_oauth/authorization_spec.rb
|
276
311
|
- spec/spec_helper.rb
|
277
312
|
homepage: ''
|
278
313
|
licenses: []
|
279
314
|
metadata: {}
|
280
|
-
post_install_message:
|
315
|
+
post_install_message:
|
281
316
|
rdoc_options: []
|
282
317
|
require_paths:
|
283
318
|
- lib
|
@@ -292,9 +327,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
292
327
|
- !ruby/object:Gem::Version
|
293
328
|
version: '0'
|
294
329
|
requirements: []
|
295
|
-
|
296
|
-
|
297
|
-
signing_key:
|
330
|
+
rubygems_version: 3.0.3
|
331
|
+
signing_key:
|
298
332
|
specification_version: 4
|
299
333
|
summary: CanvasOauth is a mountable engine for handling the oauth workflow with canvas
|
300
334
|
and making api calls from your rails app.
|
@@ -327,9 +361,14 @@ test_files:
|
|
327
361
|
- spec/dummy/public/404.html
|
328
362
|
- spec/dummy/public/robots.txt
|
329
363
|
- spec/dummy/db/schema.rb
|
364
|
+
- spec/dummy/db/test.sqlite3
|
330
365
|
- spec/dummy/db/migrate/20160711200737_create_canvas_oauth_authorizations.canvas_oauth.rb
|
366
|
+
- spec/dummy/db/development.sqlite3
|
367
|
+
- spec/dummy/log/test.log
|
368
|
+
- spec/dummy/log/development.log
|
331
369
|
- spec/dummy/README.rdoc
|
332
370
|
- spec/models/canvas_oauth/authorization_spec.rb
|
333
371
|
- spec/lib/canvas_oauth/canvas_api_extensions_spec.rb
|
372
|
+
- spec/lib/canvas_oauth/default_utf8_parser_spec.rb
|
334
373
|
- spec/lib/canvas_oauth/canvas_api_spec.rb
|
335
374
|
- spec/controllers/canvas_oauth/canvas_controller_spec.rb
|