zuora_connect 3.0.2.pre.b → 3.0.2.pre.f

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: 88383fb37eab881d442eb16520cc71cf11c98456c4b66e6cc59bc46f8f60e625
4
- data.tar.gz: 741a1f55b33c8045d57902ed937fe98cfbfb63fa422f109228ac4d4bebef5cc8
3
+ metadata.gz: 31c1a3b38114cb85dc6f1b9f5fffdd1d57dde786e642f3531885a54eca98a1a3
4
+ data.tar.gz: 3e04d13019bdcdf7b223a71bc2b32ff076f49f4f885cb5fe9b0baf63ce359973
5
5
  SHA512:
6
- metadata.gz: 7d23d6d4c59108331e07c2e7c2003fa2c297ae166b5b7317d982220dff5a1845e99adc30cb93ff6d93976c5eec6442b6986e1db318e5f8f3353746d4d2d66704
7
- data.tar.gz: 6954dee8718c38bce95971b3f31e91cc377392bc83019ff6b0ca1964baaf91890c2b57a319edf208051b725b79a11a7dc44fb64ad54792f23c6733cf4b910373
6
+ metadata.gz: 850e2451907b60c25bc37186385711abd6b8ecab6d21e0603d5e02f168fad878f0753309cfbbc5164fb828ca3049f2a7d0260b4ada7ffa58ac2d23ded82b3770
7
+ data.tar.gz: c58b317c291c246bb30f030ba37edd4f225064b7d1b00f27f4ced7650c802d88253b0350ea966ea6e30886c514a05383c332a2cdb95c2e327b88a75065d81f59
@@ -1 +1 @@
1
- $('body').html('<%= escape_javascript render(:file=> "zuora_connect/static/error_handled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
1
+ $('body').html('<%= escape_javascript render(:template=> "zuora_connect/static/error_handled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
@@ -1 +1 @@
1
- $('body').html('<%= escape_javascript render(:file=> "zuora_connect/static/error_unhandled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
1
+ $('body').html('<%= escape_javascript render(:template=> "zuora_connect/static/error_unhandled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
@@ -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
@@ -28,6 +28,8 @@ module ZuoraConnect
28
28
  check_instance
29
29
  elsif ZuoraConnect::AppInstance::INTERNAL_HOSTS.include?(request.headers.fetch("HOST", nil)) && request.headers['zuora-host'].present?
30
30
  zuora_host, zuora_entity_id, zuora_instance_id = [request.headers['zuora-host'], (request.headers['zuora-entity-ids'] || "").gsub('-',''), request.headers['zuora-instance-id']]
31
+ zuora_host_mapping = {'origin-gateway.sbx.auw2.zuora.com' => 'rest.apisandbox.zuora.com', 'origin-gateway.prod.auw2.zuora.com' => 'rest.zuora.com'}
32
+ zuora_host = zuora_host_mapping[zuora_host] if zuora_host_mapping.keys.include?(zuora_host)
31
33
 
32
34
  #Validate entity-ids present
33
35
  if zuora_entity_id.blank?
@@ -306,7 +308,7 @@ module ZuoraConnect
306
308
  if zuora_entity_id.present?
307
309
  zuora_tenant_id = cookies['Zuora-Tenant-Id']
308
310
  zuora_user_id = cookies['Zuora-User-Id']
309
- zuora_host = request.headers['HTTP_X_FORWARDED_HOST'] || request.headers['Zuora-Host'] || 'apisandbox.zuora.com'
311
+ zuora_host = request.headers['HTTP_X_FORWARDED_HOST'] || request.headers['HTTP_ZUORA_HOST'] || 'apisandbox.zuora.com'
310
312
 
311
313
  zuora_details = {'host' => zuora_host, 'user_id' => zuora_user_id, 'tenant_id' => zuora_tenant_id, 'entity_id' => zuora_entity_id}
312
314
  auth_headers = {}
@@ -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-b"
4
+ VERSION = "3.0.2-f"
3
5
  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'
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.b
4
+ version: 3.0.2.pre.f
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-07-27 00:00:00.000000000 Z
11
+ date: 2021-08-23 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: