huginn_http_request_agent 1.2.0 → 1.3.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
- SHA1:
3
- metadata.gz: 653100f0a586c808cea718f38a8e55873b20666b
4
- data.tar.gz: 610976e15c13270eaaea835188f0d93ecb6bbe29
2
+ SHA256:
3
+ metadata.gz: efc2ffa3f090b8c268492b91a79a0914ee18bbbdd431b714160d65856f34be24
4
+ data.tar.gz: 276b80b72c60689cedb18d2f1e6e9fed117bbfe97229d06aa138e04a3cca8c0e
5
5
  SHA512:
6
- metadata.gz: 9a8d6736777a825a9115d54532866c45e6657b38ce90beae9a317556f6485ebac898b33ed3503c7003c87307801dc62db1be047dcd4d17eacad6c13986aaa549
7
- data.tar.gz: e88736b87e88e5602b3a081e1745887d7e63cc0d5b3d0fea56e91242c37432480396acab0e8079e4694d24eb2af7ab6b8bfa6a6f7060e431e05d7cc6ae5affab
6
+ metadata.gz: 64f2207730c600ce39d38267057377af946164c50dbf15fe6b0a9108384fb16685511cef5105bffbee462ed59c493f60b78dd5bd2969061318be0cfd0eac169e
7
+ data.tar.gz: c2204699225a8867b3a4b5955724935e49964b6d1e65158413c8af42035a9dd4506c0e090977a96c216784b2fd93855e94b186967344aa4e2860d2e23e251ba5
@@ -242,34 +242,68 @@ module Agents
242
242
  log({ method: method, url: url, body: body, headers: headers })
243
243
  end
244
244
 
245
- response = faraday.run_request(method.to_sym, url, body, headers) { |request|
245
+ output_event = interpolated['output_mode'].to_s == 'merge' ? event.payload.dup : {}
246
246
 
247
- # open/read timeout in seconds
248
- if interpolated['timeout'].to_i
249
- request.options.timeout = interpolated['timeout'].to_i
250
- end
247
+ begin
251
248
 
252
- # connection open timeout in seconds
253
- if interpolated['open_timeout'].to_i
254
- request.options.open_timeout = interpolated['open_timeout'].to_i
255
- end
249
+ response = faraday.run_request(method.to_sym, url, body, headers) { |request|
256
250
 
257
- request.params.update(params) if params
258
- }
251
+ # open/read timeout in seconds
252
+ if interpolated['timeout'].to_i
253
+ request.options.timeout = interpolated['timeout'].to_i
254
+ end
259
255
 
260
- if boolify(interpolated['emit_events'])
261
- new_event = interpolated['output_mode'].to_s == 'merge' ? event.payload.dup : {}
262
- create_event payload: new_event.merge(
263
- body: response.body,
264
- status: response.status
265
- ).merge(
266
- event_headers_payload(response.headers)
267
- )
256
+ # connection open timeout in seconds
257
+ if interpolated['open_timeout'].to_i
258
+ request.options.open_timeout = interpolated['open_timeout'].to_i
259
+ end
260
+
261
+ request.params.update(params) if params
262
+ }
263
+
264
+ if boolify(interpolated['emit_events'])
265
+ create_event payload: output_event.merge(
266
+ body: response.body,
267
+ status: response.status
268
+ ).merge(
269
+ event_headers_payload(response.headers)
270
+ )
271
+ end
272
+ rescue => e
273
+ handle_req_error(e, output_event, url)
268
274
  end
269
275
  end
270
276
 
271
277
  def event_headers_key
272
278
  super || 'headers'
273
279
  end
274
- end
280
+
281
+ def handle_req_error( error, output_payload, endpoint )
282
+
283
+ error_status = defined?(error.response_status) && !error.response_status.nil? ? error.response_status : 500
284
+
285
+ # NOTE: `options['payload']`` below is intentionally _NOT_ interpolated.
286
+ # The primary reason for this is that it may contain sensitive values
287
+ # By passing the raw option, we will see liquid placeholders instead.
288
+ # This wiill assist with debugging while also not exposing secrets.
289
+
290
+ log({
291
+ error_message: error.message,
292
+ status_code: error_status,
293
+ endpoint: endpoint,
294
+ payload_options: options['payload'],
295
+ })
296
+
297
+ if boolify(interpolated['emit_events'])
298
+ create_event payload: output_payload.merge(
299
+ status: error_status,
300
+ error_message: error.message,
301
+ endpoint: endpoint,
302
+ payload_options: options['payload'],
303
+ )
304
+ end
305
+
306
+ end
307
+
308
+ end # <-- End of class
275
309
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: huginn_http_request_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Spizziri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-15 00:00:00.000000000 Z
11
+ date: 2022-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -83,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubyforge_project:
87
- rubygems_version: 2.6.10
86
+ rubygems_version: 3.0.3
88
87
  signing_key:
89
88
  specification_version: 4
90
89
  summary: The Http Request Agent is intended to be an abstract agent that allows for