twingly-http 0.3.2 → 0.4.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
  SHA256:
3
- metadata.gz: cc5e134cf7d77a56bda5f8d4c40ef90f6c80c0230aea262cada8c943b4defa77
4
- data.tar.gz: ad54778da0dddff2b0bb14e4205333758a43272cfd9d6458566fbb4fc48c9816
3
+ metadata.gz: 573e3beb22fd03c1961fe5b6264b3a2b1ef9f0a5a89b95e0094e1693e76dff7f
4
+ data.tar.gz: 30a0dda321f1a3804492fd91e49907456cd3e45494f79ff571c054b648f7725c
5
5
  SHA512:
6
- metadata.gz: 83b57d12d30e4a3f38c5e4b71d06d1ed894ab7ecca32495d9607bb2cf434e0f5bc1b1ffea0d4855b06e3e7791987c60ffe2d0e0c69be739bf0f5eabcb0ff4ed1
7
- data.tar.gz: 138b97d64ed9b979c942eecd48728fd1427b26054b6c614ee19799e3046695dc7f1523c113f4f9efdb289fdfac092315f15e084e6ab3b2ad8fa723d091100ff1
6
+ metadata.gz: 9d209c54bbd796f27d38796d6a5449cf961e7de9a351700098ba92f022502a34950dc7652c4c9d16f80d9ae7474fe65bd6d3a60976cf43db65f767d5fb97277e
7
+ data.tar.gz: 6e4db092c8893e0539b17af90233d9ac86f2bbb2f51a2ab3b29fbd7c671211861168e30b434b4abdbf209c332861292a71bee37cb47fe4a91f3623b14f67a21f
data/lib/twingly/http.rb CHANGED
@@ -61,6 +61,18 @@ module Twingly
61
61
  http_response_for(:post, url: url, body: body, headers: headers)
62
62
  end
63
63
 
64
+ def put(url, body:, headers: {})
65
+ http_response_for(:put, url: url, body: body, headers: headers)
66
+ end
67
+
68
+ def patch(url, body:, headers: {})
69
+ http_response_for(:patch, url: url, body: body, headers: headers)
70
+ end
71
+
72
+ def delete(url, params: {}, headers: {})
73
+ http_response_for(:delete, url: url, params: params, headers: headers)
74
+ end
75
+
64
76
  private
65
77
 
66
78
  def default_logger
@@ -80,14 +92,8 @@ module Twingly
80
92
  @max_url_size_bytes = DEFAULT_MAX_URL_SIZE_BYTES
81
93
  end
82
94
 
83
- # rubocop:disable Metrics/MethodLength
84
95
  def http_response_for(method, **args)
85
- response = case method
86
- when :get
87
- http_get_response(**args)
88
- when :post
89
- http_post_response(**args)
90
- end
96
+ response = send("http_#{method}_response", **args)
91
97
 
92
98
  Response.new(headers: response.headers.to_h,
93
99
  status: response.status,
@@ -99,7 +105,6 @@ module Twingly
99
105
  rescue FaradayMiddleware::RedirectLimitReached => error
100
106
  raise RedirectLimitReachedError, error.message
101
107
  end
102
- # rubocop:enable all
103
108
 
104
109
  def http_get_response(url:, params:, headers:)
105
110
  binary_url = url.dup.force_encoding(Encoding::BINARY)
@@ -131,6 +136,51 @@ module Twingly
131
136
  end
132
137
  end
133
138
 
139
+ def http_put_response(url:, body:, headers:)
140
+ binary_url = url.dup.force_encoding(Encoding::BINARY)
141
+ http_client = create_http_client
142
+
143
+ headers = default_headers.merge(headers)
144
+
145
+ http_client.put do |request|
146
+ request.url(binary_url)
147
+ request.headers.merge!(headers)
148
+ request.body = body
149
+ request.options.timeout = @http_timeout
150
+ request.options.open_timeout = @http_open_timeout
151
+ end
152
+ end
153
+
154
+ def http_patch_response(url:, body:, headers:)
155
+ binary_url = url.dup.force_encoding(Encoding::BINARY)
156
+ http_client = create_http_client
157
+
158
+ headers = default_headers.merge(headers)
159
+
160
+ http_client.patch do |request|
161
+ request.url(binary_url)
162
+ request.headers.merge!(headers)
163
+ request.body = body
164
+ request.options.timeout = @http_timeout
165
+ request.options.open_timeout = @http_open_timeout
166
+ end
167
+ end
168
+
169
+ def http_delete_response(url:, params:, headers:)
170
+ binary_url = url.dup.force_encoding(Encoding::BINARY)
171
+ http_client = create_http_client
172
+
173
+ headers = default_headers.merge(headers)
174
+
175
+ http_client.delete do |request|
176
+ request.url(binary_url)
177
+ request.params.merge!(params)
178
+ request.headers.merge!(headers)
179
+ request.options.timeout = @http_timeout
180
+ request.options.open_timeout = @http_open_timeout
181
+ end
182
+ end
183
+
134
184
  def create_http_client # rubocop:disable Metrics/MethodLength
135
185
  Faraday.new do |faraday|
136
186
  faraday.request :url_size_limit,
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Twingly
4
4
  module HTTP
5
- VERSION = "0.3.2"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twingly-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twingly AB
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-16 00:00:00.000000000 Z
11
+ date: 2021-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday