zuora_connect 3.0.2.pre.d → 3.0.2.pre.e

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: 527f334aa53550fcb76ec478571ff72b4d93a3b1dac00b72e44bd675b377ae2a
4
- data.tar.gz: 555db3194402d86913d295ce38a74dc1983f65cd8ac0521ab88960d8d96c99cf
3
+ metadata.gz: 7d1be219ec34e867fe4e4b368cc47cf32331199fb75fba7b13e48b8302698899
4
+ data.tar.gz: 693fcb0a597f5e4430d1ea71916034f0d8bf0ba1b6af24390d6c189c79db105f
5
5
  SHA512:
6
- metadata.gz: b6880e4c9ae5aba34292326f6f78e2d60011ccb85bb3d0e1523b617ca61e975f3cf8b2616cdf3813e78f4a3254867e8fd5f1a0e8d46989d2674b387c499f56ba
7
- data.tar.gz: 548da9f9da6499333c850257e928fe639444040d18127af630d224f9322622d3493ab7aa6b70640034fb35f5586348b1de219425a799bc177cb26b3157c36336
6
+ metadata.gz: 6e9758779261866d0bf013a3c27aafafc1e250310f43dcb4fb029b6602e54f00cfb29efcf903cd57d35a973decfbb1be33c7400ee9de148d860cd1bff4b51b77
7
+ data.tar.gz: 669ca1f044f2b783288c7fe15e50a2f6c322278cda00e8fba0a0fe744ec5dc10ec6b95506ff4378b4f989af43aeb48a2662296e84d2d24d554f990f0eaf3a69c
@@ -46,19 +46,10 @@ module ZuoraConnect
46
46
  if !ActionDispatch::Request::HTTP_METHODS.include?(env["REQUEST_METHOD"].upcase)
47
47
  [405, {"Content-Type" => "text/plain"}, ["Method Not Allowed"]]
48
48
  else
49
- if (env['HTTP_ZUORA_LAYOUT_FETCH_TEMPLATE_ID'].present?)
50
- Thread.current[:isHallway] = "/#{env['HTTP_ZUORA_LAYOUT_FETCH_TEMPLATE_ID']}"
51
- env['PATH_INFO'] = env['PATH_INFO'].gsub(Thread.current[:isHallway], '')
52
- env['REQUEST_URI'] = env['REQUEST_URI'].gsub(Thread.current[:isHallway], '')
53
- env['REQUEST_PATH'] = env['REQUEST_PATH'].gsub(Thread.current[:isHallway], '')
54
-
55
- #We need the forwarded host header to identify location of tenant
49
+ if Thread.current[:isHallway]
50
+ # We need the forwarded host header to identify location of tenant
56
51
  whitelist = Regexp.new(".*[\.]zuora[\.]com$|^zuora[\.]com$")
57
- if whitelist.match(env['HTTP_X_FORWARDED_HOST']).present?
58
- @bad_headers.delete('HTTP_X_FORWARDED_HOST')
59
- end
60
- else
61
- Thread.current[:isHallway] = nil
52
+ @bad_headers.delete('HTTP_X_FORWARDED_HOST') if whitelist.match(env['HTTP_X_FORWARDED_HOST']).present?
62
53
  end
63
54
 
64
55
  #Remove bad headers
@@ -88,28 +79,18 @@ module ZuoraConnect
88
79
  begin
89
80
  @status, @headers, @response = @app.call(env)
90
81
  ensure
82
+ # Writing to telegraf: Handle 404
83
+ if [404, 500].include?(@status)
84
+ content_type = @headers['Content-Type'].split(';')[0] if @headers['Content-Type']
85
+ content_type = content_type.gsub('text/javascript', 'application/javascript')
86
+ tags = { status: @status, content_type: content_type }
91
87
 
92
- # Uncomment following block of code for handling engine requests/requests without controller
93
- # else
94
- # # Handling requests which do not have controllers (engines)
95
- if env["SCRIPT_NAME"].present?
96
- controller_path = "#{env['SCRIPT_NAME'][1..-1]}"
97
- controller_path = controller_path.sub("/", "::")
98
- request_path = "#{controller_path}#UnknownAction"
99
- else
100
- # Writing to telegraf: Handle 404
101
- if [404, 500].include?(@status)
102
- content_type = @headers['Content-Type'].split(';')[0] if @headers['Content-Type']
103
- content_type = content_type.gsub('text/javascript', 'application/javascript')
104
- tags = {status: @status, content_type: content_type}
105
-
106
- tags = tags.merge({controller: 'ActionController'})
107
- tags = tags.merge({action: 'RoutingError' }) if @status == 404
108
-
109
- values = {response_time: ((Time.now - start_time)*1000).round(2) }
110
-
111
- ZuoraConnect::AppInstanceBase.write_to_telegraf(direction: :inbound, tags: tags, values: values)
112
- end
88
+ tags = tags.merge({ controller: 'ActionController' })
89
+ tags = tags.merge({ action: 'RoutingError' }) if @status == 404
90
+
91
+ values = { response_time: ((Time.now - start_time) * 1000).round(2) }
92
+
93
+ ZuoraConnect::AppInstanceBase.write_to_telegraf(direction: :inbound, tags: tags, values: values)
113
94
  end
114
95
  Thread.current[:inbound_metric] = nil
115
96
  end
data/lib/zuora_connect.rb CHANGED
@@ -2,6 +2,7 @@ require 'zuora_connect/configuration'
2
2
  require "zuora_connect/engine"
3
3
  require 'zuora_connect/exceptions'
4
4
  require 'zuora_connect/controllers/helpers'
5
+ require 'zuora_connect/middleware/hallway'
5
6
  require 'zuora_connect/railtie'
6
7
  require 'resque/additions'
7
8
  require 'resque/dynamic_queues'
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ZuoraConnect
4
+ module Middleware
5
+ # Enables requests to be served from dynamic paths, determined by headers
6
+ class Hallway
7
+ UI_PATH = 'HTTP_ZUORA_UI_PATH'
8
+ LAYOUT_ID = 'HTTP_ZUORA_LAYOUT_FETCH_TEMPLATE_ID'
9
+
10
+ def initialize(app)
11
+ @app = app
12
+ end
13
+
14
+ def call(env)
15
+ dynamic_path = env[UI_PATH].presence || layout_id(env)
16
+
17
+ Thread.current[:isHallway] = dynamic_path
18
+
19
+ if dynamic_path.present?
20
+ env['SCRIPT_NAME'] = dynamic_path
21
+ env['PATH_INFO'] = env['PATH_INFO'].sub(dynamic_path, '')
22
+ end
23
+
24
+ @app.call(env)
25
+ end
26
+
27
+ private
28
+
29
+ def layout_id(env)
30
+ "/#{env[LAYOUT_ID]}" if env[LAYOUT_ID].present?
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'middleware/metrics_middleware'
2
4
  require 'middleware/request_id_middleware'
3
5
  require 'middleware/json_parse_errors'
@@ -17,7 +19,8 @@ module ZuoraConnect
17
19
  end
18
20
 
19
21
  initializer "zuora_connect.configure_rails_initialization" do |app|
20
- app.middleware.insert_after Rack::Sendfile, ZuoraConnect::MetricsMiddleware
22
+ app.middleware.insert_after Rack::Sendfile, ZuoraConnect::Middleware::Hallway
23
+ app.middleware.insert_after ZuoraConnect::Middleware::Hallway, ZuoraConnect::MetricsMiddleware
21
24
  app.middleware.insert_after ActionDispatch::RequestId, ZuoraConnect::RequestIdMiddleware
22
25
  app.config.middleware.use ZuoraConnect::JsonParseErrors
23
26
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ZuoraConnect
2
- VERSION = "3.0.2-d"
4
+ VERSION = '3.0.2-e'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2.pre.d
4
+ version: 3.0.2.pre.e
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2021-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment
@@ -424,6 +424,7 @@ files:
424
424
  - lib/zuora_connect/controllers/helpers.rb
425
425
  - lib/zuora_connect/engine.rb
426
426
  - lib/zuora_connect/exceptions.rb
427
+ - lib/zuora_connect/middleware/hallway.rb
427
428
  - lib/zuora_connect/railtie.rb
428
429
  - lib/zuora_connect/version.rb
429
430
  homepage: