restful_resource 0.10.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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