triviacrack 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 528d22e9dbd73fd60d40d2de5ee7fe22ab03a8463d0d324ff07c9c27898a3b30
4
- data.tar.gz: fce027f935aa56b814a0d23bde2c325b9df4cbe6d583204050212752412cc3e1
3
+ metadata.gz: 92b5c77a56e170172762ed6a3c145743b913128803db0980fe500d23f355dfc8
4
+ data.tar.gz: 64e7b4d9ca31159378e038bcd5892a8caed86f053ad0550ac026d1d74ca6bad8
5
5
  SHA512:
6
- metadata.gz: 526eb31bc72c77fefdd42846f83192c94df7a71ba340e272ca970d6be4205a99cc03ba81acd9c7b4295d771f5cee44a373a6d63b18714cbb50556b7db088dd06
7
- data.tar.gz: a7fad7895865826a8abec5392c125723f9243cd8995624bf65f246f8ffdfe2d264f91961ca85a6a5bf0d48d4a41936020aef6eeec43ad37333fa19fe5f91ac45
6
+ metadata.gz: 5ab48a4eb4d28486d4a898bea402ece598b3643e0dad5ca2f19eddc35bbadf3a7aac55ac181d21949a88ea0bb18ccfeb9064ee63eb5231247c46f06e8cd94f15
7
+ data.tar.gz: ca05c593330b0b7ddad16214c3bedc8c3e211d0eba02004f17447832f09ae083fe5117e151fab833818b872e358bc350e3634c61ccb4e67fa63881542469df97
@@ -19,7 +19,7 @@ module TriviaCrack
19
19
  response = Unirest.get "#{API_HOST}#{url}", parameters: parameters,
20
20
  headers: default_headers
21
21
 
22
- check_response response
22
+ check_response url, response
23
23
  end
24
24
 
25
25
  # Internal: Makes a POST request to the Trivia Crack API using the set of
@@ -34,7 +34,7 @@ module TriviaCrack
34
34
  response = Unirest.post "#{API_HOST}#{url}", parameters: parameters,
35
35
  headers: default_headers
36
36
 
37
- check_response response
37
+ check_response url, response
38
38
  end
39
39
 
40
40
  private
@@ -63,10 +63,10 @@ module TriviaCrack
63
63
  #
64
64
  # Returns the response object.
65
65
  # Raises TriviaCrack:Errors::RequestError if the request failed.
66
- def check_response(response)
66
+ def check_response(url, response)
67
67
  if not response.code.between? 200, 299
68
- raise TriviaCrack::Errors::RequestError.new(response.code),
69
- "Request to the Trivia Crack API failed."
68
+ raise TriviaCrack::Errors::RequestError.new(response.code, url, response.body),
69
+ "Request to #{API_HOST}#{url} failed with code #{response.code}."
70
70
  end
71
71
 
72
72
  response
@@ -7,11 +7,20 @@ module TriviaCrack
7
7
  # Public: The HTTP status code returned by the Trivia Crack server.
8
8
  attr_reader :code
9
9
 
10
+ #Public: The URL that was requested.
11
+ attr_reader :url
12
+
13
+ #Public: The response body that was returned by the Trivia Crack server.
14
+ attr_reader :body
15
+
10
16
  # Public: Initializes a RequestError.
11
17
  #
12
18
  # code - The HTTP status code returned by the Trivia Crack server.
13
- def initialize(code)
19
+ # url - The URL that was requested.
20
+ # body - The response body that was returned by the Trivia Crack server.
21
+ def initialize(code, url, body)
14
22
  @code = code
23
+ @url = url
15
24
  end
16
25
  end
17
26
  end
@@ -1,4 +1,4 @@
1
1
  # Public: The version of this gem.
2
2
  module TriviaCrack
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
@@ -27,12 +27,17 @@ describe TriviaCrack::API::Game do
27
27
  let(:code) { 400 }
28
28
 
29
29
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
30
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
31
+ .and having_attributes(code: 400)) }
32
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
33
+ .and having_attributes(url: "/api/users/#{session.user_id}/dashboard")) }
30
34
  end
31
35
  end
32
36
 
33
37
  describe "#get_game" do
38
+ let(:game_id) { 123 }
34
39
 
35
- subject { client.get_game 123 }
40
+ subject { client.get_game game_id }
36
41
 
37
42
  let(:raw_data) { SpecData.get "game.json" }
38
43
 
@@ -47,6 +52,10 @@ describe TriviaCrack::API::Game do
47
52
  let(:code) { 400 }
48
53
 
49
54
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
55
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
56
+ .and having_attributes(code: code)) }
57
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
58
+ .and having_attributes(url: "/api/users/#{session.user_id}/games/#{game_id}")) }
50
59
  end
51
60
  end
52
61
 
@@ -67,6 +76,10 @@ describe TriviaCrack::API::Game do
67
76
  let(:code) { 400 }
68
77
 
69
78
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
79
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
80
+ .and having_attributes(code: code)) }
81
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
82
+ .and having_attributes(url: "/api/users/#{session.user_id}/games")) }
70
83
  end
71
84
  end
72
85
  end
@@ -25,10 +25,14 @@ describe TriviaCrack::API::Login do
25
25
  its(:session_id) { is_expected.to eq "session123" }
26
26
  end
27
27
 
28
- context 'given that the request is fails' do
28
+ context 'given that the request fails' do
29
29
  let(:code) { 400 }
30
30
 
31
31
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
32
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
33
+ .and having_attributes(code: code)) }
34
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
35
+ .and having_attributes(url: '/api/login')) }
32
36
  end
33
37
  end
34
38
  end
@@ -10,8 +10,9 @@ describe TriviaCrack::API::Profile do
10
10
  before { allow(Unirest).to receive(:get) { response } }
11
11
 
12
12
  describe "#get_profile" do
13
+ let(:user_id) { 111 }
13
14
 
14
- subject { client.get_profile 111 }
15
+ subject { client.get_profile user_id }
15
16
 
16
17
  let(:raw_data) { SpecData.get "profile.json" }
17
18
 
@@ -26,6 +27,10 @@ describe TriviaCrack::API::Profile do
26
27
  let(:code) { 400 }
27
28
 
28
29
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
30
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
31
+ .and having_attributes(code: code)) }
32
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
33
+ .and having_attributes(url: "/api/users/#{session.user_id}/profiles/#{user_id}")) }
29
34
  end
30
35
  end
31
36
 
@@ -46,6 +51,10 @@ describe TriviaCrack::API::Profile do
46
51
  let(:code) { 400 }
47
52
 
48
53
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
54
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
55
+ .and having_attributes(code: code)) }
56
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
57
+ .and having_attributes(url: "/api/users/#{session.user_id}/profiles/#{session.user_id}")) }
49
58
  end
50
59
  end
51
60
  end
@@ -40,6 +40,10 @@ describe TriviaCrack::API::Question do
40
40
  let(:answer) { 1 }
41
41
 
42
42
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
43
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
44
+ .and having_attributes(code: code)) }
45
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
46
+ .and having_attributes(url: "/api/users/#{session.user_id}/games/#{game_id}/answers")) }
43
47
  end
44
48
  end
45
49
  end
@@ -10,8 +10,9 @@ describe TriviaCrack::API::User do
10
10
  before { allow(Unirest).to receive(:get) { response } }
11
11
 
12
12
  describe "#get_user_id" do
13
+ let(:username) { "example.2" }
13
14
 
14
- subject { client.get_user_id "example.2" }
15
+ subject { client.get_user_id username }
15
16
 
16
17
  let(:raw_data) { SpecData.get "search.json" }
17
18
 
@@ -25,6 +26,10 @@ describe TriviaCrack::API::User do
25
26
  let(:code) { 400 }
26
27
 
27
28
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
29
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
30
+ .and having_attributes(code: code)) }
31
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
32
+ .and having_attributes(url: "/api/search?username=#{username}")) }
28
33
  end
29
34
  end
30
35
 
@@ -45,6 +50,10 @@ describe TriviaCrack::API::User do
45
50
  let(:code) { 400 }
46
51
 
47
52
  it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
53
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
54
+ .and having_attributes(code: code)) }
55
+ it { expect{ subject }.to raise_error(an_instance_of(TriviaCrack::Errors::RequestError)
56
+ .and having_attributes(url: "/api/users/#{session.user_id}")) }
48
57
  end
49
58
  end
50
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: triviacrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2020-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler