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 +4 -4
- data/Gemfile.lock +4 -3
- data/api_proxy.gemspec +1 -0
- data/lib/api_proxy.rb +3 -0
- data/lib/api_proxy/config.rb +4 -1
- data/lib/api_proxy/request_options_builder.rb +12 -3
- data/lib/api_proxy/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7234b39e258e9e2e84285f0cf39720cc43d6587b6f17db929da2150d46af931
|
4
|
+
data.tar.gz: 2e695372d5b8ce3f211b4cbb6627bdd9fecb564d8e073ac74351a0f8512a23a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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
|
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
data/lib/api_proxy/config.rb
CHANGED
@@ -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
|
-
|
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 =
|
68
|
+
request_path = request.path.gsub(request_starts_with, '')
|
60
69
|
|
61
70
|
File.join(api_prefix, request_path)
|
62
71
|
end
|
data/lib/api_proxy/version.rb
CHANGED
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.
|
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-
|
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
|