restful_resource 0.10.2 → 1.0.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
  SHA1:
3
- metadata.gz: 83ebf863b441dd922d4fa84851d0dfe652fd9d85
4
- data.tar.gz: 5f678540937c1c68d44c5621860dfe178dcc0593
3
+ metadata.gz: c463b0cfbfb0873672c7d5c1ba0b968fd90cc165
4
+ data.tar.gz: 9f166fdebcec1df2001699020d69808a5c829718
5
5
  SHA512:
6
- metadata.gz: 3d662a4b7b79a6717f3e6eb05c2d70160ba25f37ef8a131feee4cc63f8effc7a4d731a29cce3978e0322780100ef6951cf4b828aece192fb8be050210ee31427
7
- data.tar.gz: e56e0dd06bec9cd508951203cc60791fca49ec5af54b9235cf44823b86d896aa98861efdd99e9cb34eeb16271fff87b11764bc9766e79f181e96fdd8ae698d3e
6
+ metadata.gz: 82433c6aab68e3bfb32678e3e10be6e764e348c6bafc7110494c22324e07e06c8f619fe76cae980f446f056eee1cc4b4139ce20280ac312168740e6907562a1b
7
+ data.tar.gz: ed7c003a58edcb1d49aa2b6549ff7db25d310168b59c3f56ad48b228d67294c5bdcb5bf4217f984610de1b3c1de3e9b053afaeda090851697b56a60a29f4b6a8
@@ -1,10 +1,11 @@
1
1
  module RestfulResource
2
2
  class HttpClient
3
3
  class HttpError < StandardError
4
- attr_reader :response
4
+ attr_reader :request, :response
5
5
 
6
- def initialize(response)
6
+ def initialize(request, response)
7
7
  @response = Response.new(body: response[:body], headers: response[:headers], status: response[:status])
8
+ @request = request
8
9
  end
9
10
  end
10
11
 
@@ -54,29 +55,29 @@ module RestfulResource
54
55
  end
55
56
 
56
57
  def get(url, accept: 'application/json')
57
- http_request(method: :get, url: url, accept: accept)
58
+ http_request(Request.new(:get, url, accept: accept))
58
59
  end
59
60
 
60
61
  def delete(url, accept: 'application/json')
61
- http_request(method: :delete, url: url, accept: accept)
62
+ http_request(Request.new(:delete, url, accept: accept))
62
63
  end
63
64
 
64
65
  def put(url, data: {}, accept: 'application/json')
65
- http_request(method: :put, url: url, data: data, accept: accept)
66
+ http_request(Request.new(:put, url, body: data, accept: accept))
66
67
  end
67
68
 
68
69
  def post(url, data: {}, accept: 'application/json')
69
- http_request(method: :post, url: url, data: data, accept: accept)
70
+ http_request(Request.new(:post, url, body: data, accept: accept))
70
71
  end
71
72
 
72
73
  private
73
- def http_request(method: , url: , data: nil, accept: 'application/json')
74
- response = @client.send(method) do |req|
75
- req.body = data unless data.nil?
76
- req.url url
74
+ def http_request(request)
75
+ response = @client.send(request.method) do |req|
76
+ req.body = request.body unless request.body.nil?
77
+ req.url request.url
77
78
 
78
- if accept
79
- req.headers['Accept'] = accept
79
+ if request.accept
80
+ req.headers['Accept'] = request.accept
80
81
  end
81
82
  end
82
83
  Response.new(body: response.body, headers: response.headers, status: response.status)
@@ -87,9 +88,9 @@ module RestfulResource
87
88
  rescue Faraday::ClientError => e
88
89
  response = e.response
89
90
  case response[:status]
90
- when 422 then raise HttpClient::UnprocessableEntity.new(response)
91
- when 503 then raise HttpClient::ServiceUnavailable.new(response)
92
- else raise HttpClient::OtherHttpError.new(response)
91
+ when 422 then raise HttpClient::UnprocessableEntity.new(request, response)
92
+ when 503 then raise HttpClient::ServiceUnavailable.new(request, response)
93
+ else raise HttpClient::OtherHttpError.new(request, response)
93
94
  end
94
95
  end
95
96
  end
@@ -0,0 +1,10 @@
1
+ module RestfulResource
2
+ class Request
3
+ attr_reader :body, :method, :url, :accept
4
+
5
+ def initialize(method, url, accept: 'application/json', body: nil)
6
+ @method, @url, @accept, @body = method, url, accept, body
7
+ end
8
+ end
9
+ end
10
+
@@ -1,3 +1,3 @@
1
1
  module RestfulResource
2
- VERSION = '0.10.2'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -15,6 +15,7 @@ require_relative 'restful_resource/parameter_missing_error'
15
15
  require_relative 'restful_resource/resource_id_missing_error'
16
16
  require_relative 'restful_resource/open_object'
17
17
  require_relative 'restful_resource/response'
18
+ require_relative 'restful_resource/request'
18
19
  require_relative 'restful_resource/http_client'
19
20
  require_relative 'restful_resource/associations'
20
21
  require_relative 'restful_resource/rails_validations'
data/spec/spec_helper.rb CHANGED
@@ -25,13 +25,15 @@ def expect_post(url, response, data: {})
25
25
  end
26
26
 
27
27
  def expect_put_with_unprocessable_entity(url, response, data: {})
28
+ request = RestfulResource::Request.new(:put, url, body: data)
28
29
  rest_client_response = OpenStruct.new({body: response.body, headers: response.headers, code: response.status})
29
- exception = RestfulResource::HttpClient::UnprocessableEntity.new(rest_client_response)
30
+ exception = RestfulResource::HttpClient::UnprocessableEntity.new(request, rest_client_response)
30
31
  expect(@mock_http).to receive(:put).with(url, data: data).and_raise(exception)
31
32
  end
32
33
 
33
34
  def expect_post_with_unprocessable_entity(url, response, data: {})
35
+ request = RestfulResource::Request.new(:put, url, body: data)
34
36
  rest_client_response = OpenStruct.new({body: response.body, headers: response.headers, code: response.status})
35
- exception = RestfulResource::HttpClient::UnprocessableEntity.new(rest_client_response)
37
+ exception = RestfulResource::HttpClient::UnprocessableEntity.new(request, rest_client_response)
36
38
  expect(@mock_http).to receive(:post).with(url, data: data).and_raise(exception)
37
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restful_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Santoro
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-06-06 00:00:00.000000000 Z
12
+ date: 2016-06-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -176,6 +176,7 @@ files:
176
176
  - lib/restful_resource/parameter_missing_error.rb
177
177
  - lib/restful_resource/rails_validations.rb
178
178
  - lib/restful_resource/redirections.rb
179
+ - lib/restful_resource/request.rb
179
180
  - lib/restful_resource/resource_id_missing_error.rb
180
181
  - lib/restful_resource/response.rb
181
182
  - lib/restful_resource/version.rb