apimatic_core 0.3.7 → 0.3.8

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: d6999e5f75a815faf7120e5f551b3ea2661e6d146a84e087426f64b27863d2fc
4
- data.tar.gz: f9c63258f67b4798393569aa35ca04c54bd70b0109f32d2f3bd756b6aed7838d
3
+ metadata.gz: 3c4d7987cd14dba534fc21ecff7af13a00e80d0dc83c87bcdf3ac88f38e74ae4
4
+ data.tar.gz: 7c9ad8e1dc5944172bb0fbd8e34d55555f6e9e9292de818000f4d2de9c5ae6b1
5
5
  SHA512:
6
- metadata.gz: c86684bed17cbe67d0750a78bda0bc03b2385414a8ebba30088fa7990d45ae2471426cb8c0457ead6d3d1dbcbb5a11003e435fc2105917e234b6e13cd2a292b2
7
- data.tar.gz: 5c539fe7981f7aa5196ad81e9f0e76ffaa3d3729d536f824ab3b5c2170e5cce61300f3f6018db93785121487b18db580d0eed60c67443ed4c2b72c8445a89899
6
+ metadata.gz: edbb96486fd7db0982e0d1d43247b839d015c799fc59d6493687d128b5952999f82d5c95752c15dc7aff2829c2f4f5e2a10ae42b882992bb00a5255e41321402
7
+ data.tar.gz: cc683617c4117e1fdb58ca1da197af7873ad29b985a3ca7e135ef8db3d54d1113908821877d126fd74d4a1be0d9041942e5142a2dcf70d8223447f010aabb2fc
@@ -13,7 +13,8 @@ module CoreLibrary
13
13
  content_type_header = LoggerHelper.get_content_type(request.headers)
14
14
  url = @request_logging_config.include_query_in_path ? request.query_url : request.query_url.split('?').first
15
15
 
16
- @logger.log(@log_level, "Request {#{METHOD}} {#{URL}} {#{CONTENT_TYPE_HEADER}}", {
16
+ @logger.log(@log_level, "Request {#{METHOD}} {#{URL}} {#{CONTENT_TYPE_HEADER}}",
17
+ {
17
18
  METHOD => request.http_method,
18
19
  URL => url,
19
20
  CONTENT_TYPE_HEADER => content_type_header
@@ -26,7 +27,8 @@ module CoreLibrary
26
27
  content_type_header = LoggerHelper.get_content_type(response.headers)
27
28
  content_length_header = LoggerHelper.get_content_length(response.headers)
28
29
 
29
- @logger.log(@log_level, "Response {#{STATUS_CODE}} {#{CONTENT_LENGTH_HEADER}} {#{CONTENT_TYPE_HEADER}}", {
30
+ @logger.log(@log_level, "Response {#{STATUS_CODE}} {#{CONTENT_LENGTH_HEADER}} {#{CONTENT_TYPE_HEADER}}",
31
+ {
30
32
  STATUS_CODE => response.status_code,
31
33
  CONTENT_LENGTH_HEADER => content_length_header,
32
34
  CONTENT_TYPE_HEADER => content_type_header
@@ -40,39 +42,37 @@ module CoreLibrary
40
42
  def apply_log_request_options(request)
41
43
  headers_to_log = LoggerHelper.extract_headers_to_log(
42
44
  @request_logging_config,
45
+ @mask_sensitive_headers,
43
46
  request.headers
44
47
  )
45
48
 
46
49
  if @request_logging_config.log_headers
47
- @logger.log(@log_level, 'Request headers {headers}', {
48
- headers: headers_to_log
49
- })
50
+ @logger.log(@log_level, 'Request headers {headers}',
51
+ { headers: headers_to_log })
50
52
  end
51
53
 
52
54
  return unless @request_logging_config.log_body
53
55
 
54
- @logger.log(@log_level, 'Request body {body}', {
55
- body: request.parameters
56
- })
56
+ @logger.log(@log_level, 'Request body {body}',
57
+ { body: request.parameters })
57
58
  end
58
59
 
59
60
  def apply_log_response_options(response)
60
61
  headers_to_log = LoggerHelper.extract_headers_to_log(
61
62
  @response_logging_config,
63
+ @mask_sensitive_headers,
62
64
  response.headers
63
65
  )
64
66
 
65
67
  if @response_logging_config.log_headers
66
- @logger.log(@log_level, 'Response headers {headers}', {
67
- headers: headers_to_log
68
- })
68
+ @logger.log(@log_level, 'Response headers {headers}',
69
+ { headers: headers_to_log })
69
70
  end
70
71
 
71
72
  return unless @response_logging_config.log_body
72
73
 
73
- @logger.log(@log_level, 'Response body {body}', {
74
- body: response.raw_body
75
- })
74
+ @logger.log(@log_level, 'Response body {body}',
75
+ { body: response.raw_body })
76
76
  end
77
77
  end
78
78
  end
@@ -16,10 +16,12 @@ module CoreLibrary
16
16
 
17
17
  # Checks if OAuth token has expired.
18
18
  # @param [int] token_expiry The expiring of a token.
19
+ # @param [int|Optional] clock_skew_time A buffer to the calculated expiry.
19
20
  # @return [Boolean] true if token has expired, false otherwise.
20
- def self.token_expired?(token_expiry)
21
+ def self.token_expired?(token_expiry, clock_skew_time = nil)
21
22
  raise ArgumentError, 'Token expiry can not be nil.' if token_expiry.nil?
22
23
 
24
+ token_expiry -= clock_skew_time unless clock_skew_time.nil?
23
25
  token_expiry < Time.now.utc.to_i
24
26
  end
25
27
 
@@ -4,4 +4,5 @@ module CoreLibrary
4
4
  METHOD = 'method'.freeze
5
5
  URL = 'url'.freeze
6
6
  STATUS_CODE = 'status_code'.freeze
7
+ REDACTED = '**Redacted**'.freeze
7
8
  end
@@ -23,7 +23,7 @@ module CoreLibrary
23
23
  headers.find { |key, _| key.downcase == CONTENT_LENGTH_HEADER }&.last || ''
24
24
  end
25
25
 
26
- def self.extract_headers_to_log(http_logging_config, headers)
26
+ def self.extract_headers_to_log(http_logging_config, mask_sensitive_headers, headers)
27
27
  return headers if headers.nil?
28
28
 
29
29
  filtered_headers = if http_logging_config.headers_to_include.any?
@@ -34,7 +34,8 @@ module CoreLibrary
34
34
  headers
35
35
  end
36
36
 
37
- mask_sensitive_headers(filtered_headers, http_logging_config.headers_to_unmask)
37
+ apply_masking_to_sensitive_headers(filtered_headers, mask_sensitive_headers,
38
+ http_logging_config.headers_to_unmask)
38
39
  end
39
40
 
40
41
  def self.include_headers(headers, headers_to_include)
@@ -60,14 +61,16 @@ module CoreLibrary
60
61
  excluded_headers
61
62
  end
62
63
 
63
- def self.mask_sensitive_headers(headers, headers_to_unmask)
64
- return headers unless @mask_sensitive_headers || !headers.nil?
64
+ def self.apply_masking_to_sensitive_headers(headers, mask_sensitive_headers, headers_to_unmask)
65
+ return headers unless mask_sensitive_headers
66
+ return headers if headers.nil?
65
67
 
68
+ masked_headers = {}
66
69
  headers.each do |key, val|
67
- headers[key] = mask_if_sensitive_header(key, val, headers_to_unmask)
70
+ masked_headers[key] = mask_if_sensitive_header(key, val, headers_to_unmask)
68
71
  end
69
72
 
70
- headers
73
+ masked_headers
71
74
  end
72
75
 
73
76
  def self.mask_if_sensitive_header(name, value, headers_to_unmask)
@@ -76,7 +79,7 @@ module CoreLibrary
76
79
  name_downcase = name.downcase
77
80
 
78
81
  NON_SENSITIVE_HEADERS.include?(name_downcase) || headers_to_unmask.include?(name_downcase) ?
79
- value : '**Redacted**'
82
+ value : REDACTED
80
83
  end
81
84
  end
82
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apimatic_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - APIMatic Ltd.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-13 00:00:00.000000000 Z
11
+ date: 2024-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apimatic_core_interfaces