zuora_connect 3.0.2.pre.a → 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: 6af8cf178f6060ca9e70f81f24505e99f875197d51cb34ddc78de16da46dd81e
4
- data.tar.gz: 4cad94cbd73e4576a6ef4a7567a169b2eb6e4768432a46b8231ff1260df4ebdc
3
+ metadata.gz: 7d1be219ec34e867fe4e4b368cc47cf32331199fb75fba7b13e48b8302698899
4
+ data.tar.gz: 693fcb0a597f5e4430d1ea71916034f0d8bf0ba1b6af24390d6c189c79db105f
5
5
  SHA512:
6
- metadata.gz: 06a45682d61c210d192023ede3408aac2a41654d5046ef44a3ee8083e4259a3a9fc10c19666136eba1917c457cb56accd7418a985dd4aa7883b16766cb339561
7
- data.tar.gz: 76e424517a93b5b5ba0a858c41005c01de1f1f7520e482a7ed727a1d60a59a0c9562ac40795e7a46093014753eb664b89fa89659493956b9de19463770c4320b
6
+ metadata.gz: 6e9758779261866d0bf013a3c27aafafc1e250310f43dcb4fb029b6602e54f00cfb29efcf903cd57d35a973decfbb1be33c7400ee9de148d860cd1bff4b51b77
7
+ data.tar.gz: 669ca1f044f2b783288c7fe15e50a2f6c322278cda00e8fba0a0fe744ec5dc10ec6b95506ff4378b4f989af43aeb48a2662296e84d2d24d554f990f0eaf3a69c
@@ -10,6 +10,7 @@ module ZuoraConnect
10
10
  included do
11
11
  before_create :set_created_by_id
12
12
  before_update :set_updated_by_id
13
+ before_destroy :set_updated_by_id
13
14
 
14
15
  private
15
16
 
@@ -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'
@@ -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-a"
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.a
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-05-26 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:
@@ -444,7 +445,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
444
445
  - !ruby/object:Gem::Version
445
446
  version: 1.3.1
446
447
  requirements: []
447
- rubygems_version: 3.2.15
448
+ rubygems_version: 3.2.22
448
449
  signing_key:
449
450
  specification_version: 4
450
451
  summary: Summary of Connect.