api_proxy 0.1.2 → 0.1.3

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
  SHA256:
3
- metadata.gz: 850e6c12b86a5c88c752864553bb26b391498f148d21640c6134db2df615e369
4
- data.tar.gz: a2913cb8b94b47f6deea174faa8b96a802c1bff42dd5c6771a878df198ce82a4
3
+ metadata.gz: e7234b39e258e9e2e84285f0cf39720cc43d6587b6f17db929da2150d46af931
4
+ data.tar.gz: 2e695372d5b8ce3f211b4cbb6627bdd9fecb564d8e073ac74351a0f8512a23a0
5
5
  SHA512:
6
- metadata.gz: b6888a33aa5ca0ccfa834995e8f4f408da2c930da243abc53c757c4660a144fa0e038c9c334634ddbcd14768f012f82d0134fdf8d8b919928a1cd87350fc0d73
7
- data.tar.gz: 69b9061cdb5939387c348b71c8986813b752c684e46a2b83481f8f20b4a322f2c1e734dc701be44bf01086c98d0ba5ce3500834910bee4acb916500b1d17f0c1
6
+ metadata.gz: 2ec33885e2e58f3d0d5fbc548d5950d40c4d52a435910862d9d723826d6e7e3ca1c4852b74a721a0228a170999154ec1eaa64d08136b6aa381a8fd94821f0c2d
7
+ data.tar.gz: c210dc5eb556c7afad43face37d5a6fb204b010804ac27858ceb01bb5d1775300f630f92271aaea48277ac48d1d67188cba080818285ec9b3cf3e8634f8e2366
data/Gemfile.lock CHANGED
@@ -1,14 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- api_proxy (0.1.2)
4
+ api_proxy (0.1.3)
5
+ activesupport (>= 4.0)
5
6
  api_signature (~> 0.1.2)
6
7
  httparty (>= 0.15)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- activesupport (5.2.0)
12
+ activesupport (5.2.1)
12
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
14
  i18n (>= 0.7, < 2)
14
15
  minitest (~> 5.1)
@@ -59,7 +60,7 @@ GEM
59
60
  hashdiff (0.3.7)
60
61
  httparty (0.16.2)
61
62
  multi_xml (>= 0.5.2)
62
- i18n (1.0.1)
63
+ i18n (1.1.0)
63
64
  concurrent-ruby (~> 1.0)
64
65
  ice_nine (0.11.2)
65
66
  iniparse (1.4.4)
data/api_proxy.gemspec CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency 'rubocop'
32
32
  spec.add_development_dependency 'webmock', '~> 3.4', '>= 3.4.2'
33
33
 
34
+ spec.add_dependency 'activesupport', '>= 4.0'
34
35
  spec.add_dependency 'api_signature', '~> 0.1.2'
35
36
  spec.add_dependency 'httparty', '>= 0.15'
36
37
  end
data/lib/api_proxy.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'api_proxy/version'
4
+ require 'active_support/time'
5
+ require 'active_support/time_with_zone'
6
+ require 'active_support/core_ext/module'
4
7
 
5
8
  module ApiProxy
6
9
  autoload :Config, 'api_proxy/config'
@@ -10,7 +10,8 @@ module ApiProxy
10
10
  :api_prefix,
11
11
  :request_starts_with,
12
12
  :request_allowed,
13
- :custom_headers
13
+ :custom_headers,
14
+ :reject_params
14
15
 
15
16
  def initialize
16
17
  load_defaults
@@ -29,6 +30,8 @@ module ApiProxy
29
30
 
30
31
  @request_allowed = ->(_env) { true }
31
32
  @custom_headers = ->(_env) { {} }
33
+
34
+ @reject_params = %w[utf8 authenticity_token commit format controller action]
32
35
  end
33
36
  end
34
37
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'api_signature'
4
+ require 'rack'
4
5
 
5
6
  module ApiProxy
6
7
  class RequestOptionsBuilder
@@ -20,7 +21,7 @@ module ApiProxy
20
21
  end
21
22
 
22
23
  def options
23
- { headers: headers, format: :json }
24
+ { headers: headers, body: body, format: :json }
24
25
  end
25
26
 
26
27
  def url
@@ -28,11 +29,19 @@ module ApiProxy
28
29
  end
29
30
 
30
31
  def request_method
31
- env['REQUEST_METHOD'].to_s.downcase
32
+ request.request_method.downcase
32
33
  end
33
34
 
34
35
  private
35
36
 
37
+ def body
38
+ request.params.reject { |key, _value| config.reject_params.include?(key) }
39
+ end
40
+
41
+ def request
42
+ @request ||= Rack::Request.new(env)
43
+ end
44
+
36
45
  def headers
37
46
  custom_headers = config.custom_headers.call(env)
38
47
 
@@ -56,7 +65,7 @@ module ApiProxy
56
65
  end
57
66
 
58
67
  def path
59
- request_path = env['REQUEST_PATH'].gsub(request_starts_with, '')
68
+ request_path = request.path.gsub(request_starts_with, '')
60
69
 
61
70
  File.join(api_prefix, request_path)
62
71
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ApiProxy
4
- VERSION = '0.1.2'
4
+ VERSION = '0.1.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Malinovskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-23 00:00:00.000000000 Z
11
+ date: 2018-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -148,6 +148,20 @@ dependencies:
148
148
  - - ">="
149
149
  - !ruby/object:Gem::Version
150
150
  version: 3.4.2
151
+ - !ruby/object:Gem::Dependency
152
+ name: activesupport
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '4.0'
158
+ type: :runtime
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '4.0'
151
165
  - !ruby/object:Gem::Dependency
152
166
  name: api_signature
153
167
  requirement: !ruby/object:Gem::Requirement