rails_api_logger 0.2.0 → 0.2.5

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
2
  SHA256:
3
- metadata.gz: b613afbb5fea833002c8cefd748428314e45df42344a41aacf0230aa7cdd9ffa
4
- data.tar.gz: 28ed28bde3d2aacfeee818600fb336d06355b0acbfab26cddd2ba779585dcb90
3
+ metadata.gz: 39be37669636bafc6de423df348669b6cd1ab0507ec309c6db0ae749dbf0ce26
4
+ data.tar.gz: f51c5532b0063d7ff54ff3a7f4743ea8a2fa24ec03ca9e858099ae6c93fed4fb
5
5
  SHA512:
6
- metadata.gz: 8e435ae3d44e5be4307ba6fa8239687ba2f95a6dba1841d857305cdb6f7c6d5471e07b9cab659e35ea432d9e76eb6f62658be24ee21582cef7cc52789aa5a6db
7
- data.tar.gz: cb0e8be6fba1f7108a93e124f57c0e10998c8354da03759ce5607ca8b4dd0f4fcb3d1a83ee442303290792f03a15098610ce2188d452c494a8c76174d9d40fae
6
+ metadata.gz: cac208d6e71ed50107ccc6895b24671281b8659b2cb41a4dfea59be9c4e695715126c9d61244067d2e5978f735a5d38b1483db85d0bf58fc9311cc8c4b797487
7
+ data.tar.gz: 8105b58ee606a0666db8c29b2e85c810fb042561f64fcbcf1110d7586a1ce68096908e0bb6a293c98bee12024488adffb492b41ae13a1b09460df5b6609c5749
data/Gemfile.lock CHANGED
@@ -1,32 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_api_logger (0.2.0)
4
+ rails_api_logger (0.2.5)
5
5
  activerecord (>= 4.1.0)
6
6
  railties (>= 4.1.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actionpack (6.1.1)
12
- actionview (= 6.1.1)
13
- activesupport (= 6.1.1)
11
+ actionpack (6.1.3)
12
+ actionview (= 6.1.3)
13
+ activesupport (= 6.1.3)
14
14
  rack (~> 2.0, >= 2.0.9)
15
15
  rack-test (>= 0.6.3)
16
16
  rails-dom-testing (~> 2.0)
17
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
- actionview (6.1.1)
19
- activesupport (= 6.1.1)
18
+ actionview (6.1.3)
19
+ activesupport (= 6.1.3)
20
20
  builder (~> 3.1)
21
21
  erubi (~> 1.4)
22
22
  rails-dom-testing (~> 2.0)
23
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
- activemodel (6.1.1)
25
- activesupport (= 6.1.1)
26
- activerecord (6.1.1)
27
- activemodel (= 6.1.1)
28
- activesupport (= 6.1.1)
29
- activesupport (6.1.1)
24
+ activemodel (6.1.3)
25
+ activesupport (= 6.1.3)
26
+ activerecord (6.1.3)
27
+ activemodel (= 6.1.3)
28
+ activesupport (= 6.1.3)
29
+ activesupport (6.1.3)
30
30
  concurrent-ruby (~> 1.0, >= 1.0.2)
31
31
  i18n (>= 1.6, < 2)
32
32
  minitest (>= 5.1)
@@ -45,7 +45,7 @@ GEM
45
45
  nokogiri (>= 1.5.9)
46
46
  method_source (1.0.0)
47
47
  minitest (5.14.4)
48
- nokogiri (1.11.1-x86_64-darwin)
48
+ nokogiri (1.11.2-x86_64-darwin)
49
49
  racc (~> 1.4)
50
50
  parallel (1.20.1)
51
51
  parser (3.0.0.0)
@@ -59,9 +59,9 @@ GEM
59
59
  nokogiri (>= 1.6)
60
60
  rails-html-sanitizer (1.3.0)
61
61
  loofah (~> 2.3)
62
- railties (6.1.1)
63
- actionpack (= 6.1.1)
64
- activesupport (= 6.1.1)
62
+ railties (6.1.3)
63
+ actionpack (= 6.1.3)
64
+ activesupport (= 6.1.3)
65
65
  method_source
66
66
  rake (>= 0.8.7)
67
67
  thor (~> 1.0)
@@ -4,7 +4,7 @@ module InboundRequestsLogger
4
4
  private
5
5
 
6
6
  def attach_inbound_request_loggable(loggable)
7
- request.env["inbound_request_log"].loggable = loggable if loggable&.persisted?
7
+ request.env["inbound_request_log"].update(loggable: loggable) if loggable&.persisted?
8
8
  end
9
9
  end
10
10
 
@@ -9,22 +9,23 @@ class InboundRequestLoggerMiddleware
9
9
 
10
10
  def call(env)
11
11
  request = ActionDispatch::Request.new(env)
12
- if log?(request)
12
+ logging = log?(env, request)
13
+ if logging
13
14
  @inbound_request_log = InboundRequestLog.from_request(request)
14
15
  env["inbound_request_log"] = @inbound_request_log
15
16
  request.body.rewind
16
17
  end
17
18
  status, headers, body = @app.call(env)
18
- if log?(request)
19
- @inbound_request_log.update(response_body: parsed_body(body), response_code: status)
19
+ if logging
20
+ @inbound_request_log.update_columns(response_body: parsed_body(body), response_code: status)
20
21
  end
21
22
  [status, headers, body]
22
23
  end
23
24
 
24
25
  private
25
26
 
26
- def log?(request)
27
- request.path =~ path_regexp && (!only_state_change || request_with_state_change?(request))
27
+ def log?(env, request)
28
+ env["REQUEST_URI"] =~ path_regexp && (!only_state_change || request_with_state_change?(request))
28
29
  end
29
30
 
30
31
  def parsed_body(body)
@@ -8,12 +8,11 @@ class RequestLog < ActiveRecord::Base
8
8
 
9
9
  scope :failed, -> { where("response_code not like '2%'") }
10
10
 
11
- validates :request_body, presence: true
12
11
  validates :method, presence: true
13
12
  validates :path, presence: true
14
13
 
15
14
  def self.from_request(request)
16
- body = (request.body.respond_to?(:read) ? request.body.read : request.body).force_encoding("UTF-8")
15
+ body = (request.body.respond_to?(:read) ? request.body.read : request.body).dup.force_encoding("UTF-8")
17
16
  begin
18
17
  body = JSON.parse(body) if body.present?
19
18
  rescue JSON::ParserError
@@ -1,3 +1,3 @@
1
1
  module RailsApiLogger
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_api_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Rodi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-02 00:00:00.000000000 Z
11
+ date: 2021-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties