bearcat 1.6.3 → 1.6.5.beta1
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/bearcat/client.rb +26 -0
- data/lib/bearcat/version.rb +1 -1
- data/spec/bearcat/client/canvas_files_spec.rb +2 -2
- data/spec/bearcat/client/group_memberships_spec.rb +1 -1
- data/spec/bearcat/client/o_auth2_spec.rb +1 -1
- data/spec/bearcat/client/reports_spec.rb +0 -0
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cd97acc800c267140f131ef12af13e3e2303b1fd440f146a0889ba40fcb47c9b
|
|
4
|
+
data.tar.gz: 57518d64fcca4a308711f63488ee51ba946eb10eccc2d7b956874282ad65329b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e9c543b8d57865beebf6a86c6f505b620ff85196050ae8883ca3b84c63c94e7442a33c31ca47d4daf61f749e559d8bfa97b1ce0cd901345f18f533abf74cd94f
|
|
7
|
+
data.tar.gz: 0db04f590f1437e072d0ecc40e003fc664b4b8fb56fccb81ae701e0891ac25db92689cc536b6fd481db38bfbd6914561f62eed8719e5ab484d20370acffc3af3
|
data/lib/bearcat/client.rb
CHANGED
|
@@ -36,6 +36,9 @@ module Bearcat
|
|
|
36
36
|
super
|
|
37
37
|
connection.builder.insert(Footrest::RaiseFootrestErrors, ExtendedRaiseFootrestErrors)
|
|
38
38
|
connection.builder.delete(Footrest::RaiseFootrestErrors)
|
|
39
|
+
|
|
40
|
+
connection.builder.insert(Faraday::Request::UrlEncoded, LegacyContentTypeMiddleware)
|
|
41
|
+
connection.builder.delete(Faraday::Request::UrlEncoded)
|
|
39
42
|
end
|
|
40
43
|
|
|
41
44
|
def self.cache_on_self(key, &block)
|
|
@@ -121,6 +124,29 @@ module Bearcat
|
|
|
121
124
|
end
|
|
122
125
|
end
|
|
123
126
|
|
|
127
|
+
# This is unfortunate... Some of the specs pass URL-Encoded keys
|
|
128
|
+
# (eg `{ "x[y]" => 3 }`) themselves, leading me to believe that
|
|
129
|
+
# some apps may as well. Bearcat itself (outside of specs) does
|
|
130
|
+
# not participate in this, but CanvasSync does.
|
|
131
|
+
#
|
|
132
|
+
# This Regex can be used to find most cases fairly reliably: ["']\w+\[
|
|
133
|
+
class LegacyContentTypeMiddleware < Faraday::Middleware
|
|
134
|
+
def initialize(*args)
|
|
135
|
+
super
|
|
136
|
+
@json_middleware = Faraday::Request::Json.new(*args)
|
|
137
|
+
@urlenc_middleware = Faraday::Request::UrlEncoded.new(*args)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def call(env)
|
|
141
|
+
b = env[:body]
|
|
142
|
+
if b.is_a?(Hash) && b.keys.any? {|k| k.to_s.include?("[") }
|
|
143
|
+
@urlenc_middleware.call(env)
|
|
144
|
+
else
|
|
145
|
+
@json_middleware.call(env)
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
124
150
|
# Overridden response error middleware that, if an error code doesn't map to an exception, raises a more generic exception
|
|
125
151
|
class ExtendedRaiseFootrestErrors < Footrest::RaiseFootrestErrors
|
|
126
152
|
def on_complete(response)
|
data/lib/bearcat/version.rb
CHANGED
|
@@ -7,7 +7,7 @@ describe Bearcat::Client::CanvasFiles do
|
|
|
7
7
|
|
|
8
8
|
it 'uploads a file' do
|
|
9
9
|
stub_post(@client, "/my/upload/path").
|
|
10
|
-
with(:body => {"name" => "bearcat.jpg", "size" =>
|
|
10
|
+
with(:body => {"name" => "bearcat.jpg", "size" => 121363}).
|
|
11
11
|
to_return(json_response('canvas_files', 'declare_file.json'))
|
|
12
12
|
|
|
13
13
|
stub_request(:post, "https://upload-url.invalid/").
|
|
@@ -21,7 +21,7 @@ describe Bearcat::Client::CanvasFiles do
|
|
|
21
21
|
|
|
22
22
|
it 'throws an error on a failed file upload' do
|
|
23
23
|
stub_post(@client, "/my/upload/path").
|
|
24
|
-
with(:body => {"name" => "bearcat.jpg", "size" =>
|
|
24
|
+
with(:body => {"name" => "bearcat.jpg", "size" => 121363}).
|
|
25
25
|
to_return(json_response('canvas_files', 'declare_file.json'))
|
|
26
26
|
|
|
27
27
|
stub_request(:post, "https://upload-url.invalid/").
|
|
@@ -7,7 +7,7 @@ describe Bearcat::Client::GroupMemberships do
|
|
|
7
7
|
|
|
8
8
|
it "creates a group membership" do
|
|
9
9
|
stub_post(@client, "/api/v1/groups/3/memberships").with(:body => {"user_id"=>"6"}).to_return(json_response("created_group_membership.json"))
|
|
10
|
-
created_group_membership = @client.create_group_membership(3, { user_id: 6 })
|
|
10
|
+
created_group_membership = @client.create_group_membership(3, { user_id: "6" })
|
|
11
11
|
created_group_membership['id'] == 14
|
|
12
12
|
created_group_membership['group_id'] == 3
|
|
13
13
|
created_group_membership['workflow_state'] == 'accepted'
|
|
@@ -10,7 +10,7 @@ describe Bearcat::Client::Enrollments do
|
|
|
10
10
|
|
|
11
11
|
it "sets the auth_token" do
|
|
12
12
|
stub_post(client, "/login/oauth2/token").
|
|
13
|
-
with(:body => {"client_id"=>
|
|
13
|
+
with(:body => {"client_id"=>10000000000002, "client_secret"=>"secret", "code"=>"code", "redirect_url"=>"http://localhost:9393", 'grant_type' => 'authorization_code'}).
|
|
14
14
|
to_return(json_response('access_token.json'))
|
|
15
15
|
client.retrieve_token(10000000000002, 'http://localhost:9393', 'secret', 'code')
|
|
16
16
|
client.config.token.should == "foo_bar_token"
|
|
File without changes
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bearcat
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.6.
|
|
4
|
+
version: 1.6.5.beta1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Instructure CustomDev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-12-
|
|
11
|
+
date: 2025-12-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -437,9 +437,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
437
437
|
version: '0'
|
|
438
438
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
439
439
|
requirements:
|
|
440
|
-
- - "
|
|
440
|
+
- - ">"
|
|
441
441
|
- !ruby/object:Gem::Version
|
|
442
|
-
version:
|
|
442
|
+
version: 1.3.1
|
|
443
443
|
requirements: []
|
|
444
444
|
rubygems_version: 3.1.6
|
|
445
445
|
signing_key:
|