zuora_connect 1.5.30 → 1.5.32

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.
@@ -0,0 +1,27 @@
1
+ class Object
2
+ def self.method_hook(*args)
3
+ options = args.extract_options!
4
+ return unless (options[:before].present? or options[:after].present?)
5
+ args.each do |method_name|
6
+ old_method = instance_method(method_name) rescue next
7
+
8
+ define_method(method_name) do |*args|
9
+ # invoke before callback
10
+ if options[:before].present?
11
+ options[:before].is_a?(Proc) ? options[:before].call(method_name, self):
12
+ send(options[:before], method_name)
13
+ end
14
+
15
+ # you can modify the code to call after callback
16
+ # only when the old method returns true etc..
17
+ old_method.bind(self).call(*args)
18
+
19
+ # invoke after callback
20
+ if options[:after].present?
21
+ options[:after].is_a?(Proc) ? options[:after].call(method_name, self):
22
+ send(options[:after], method_name)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,6 +1,6 @@
1
- redis_url = ENV["REDIS_URL"].present? ? ENV["REDIS_URL"] : 'redis://localhost:6379/1'
1
+ redis_url = ENV["REDIS_URL"].present? ? ENV["REDIS_URL"] : defined?(Rails.application.secrets.redis) ? Rails.application.secrets.redis : 'redis://localhost:6379/1'
2
2
  if defined?(Redis.current)
3
- Redis.current = Redis.new(:url => redis_url, :timeout => 10)
3
+ Redis.current = Redis.new(:url => redis_url, :timeout => 10, :reconnect_attempts => 2)
4
4
  if defined?(Resque.redis)
5
5
  Resque.redis = Redis.current
6
6
  end
@@ -0,0 +1,5 @@
1
+ class AddCatalogAttemptedAt < ActiveRecord::Migration
2
+ def change
3
+ add_column :zuora_connect_app_instances, :catalog_update_attempt_at, :datetime unless column_exists? :zuora_connect_app_instances, :catalog_update_attempt_at
4
+ end
5
+ end
@@ -3,7 +3,6 @@ module ZuoraConnect
3
3
  attr_accessor :oauth_client_id, :oauth_client_secret, :oauth_client_redirect_uri,:use_s3, :default_locale,:dev_mode_appinstance ,:dev_mode_admin, :dev_mode_user, :dev_mode_pass, :default_time_zone,:delayed_job,:url, :private_key, :dev_mode_logins,:dev_mode_mode, :dev_mode_options, :mode, :timeout,:dev_mode_secret_access_key,:dev_mode_access_key_id,:aws_region, :s3_bucket_name, :s3_folder_name, :additional_apartment_models
4
4
 
5
5
  def initialize
6
- @timeout = 30.minutes
7
6
  @default_locale = :en
8
7
  @default_time_zone = Time.zone
9
8
  @url = "https://connect.zuora.com"
@@ -8,7 +8,7 @@ module ZuoraConnect
8
8
  #Skip session for api requests
9
9
  request.session_options[:skip] = true
10
10
  start_time = Time.now
11
- if !request.headers["API-Token"].blank?
11
+ if request.headers["API-Token"].present?
12
12
  @appinstance = ZuoraConnect::AppInstance.where(:api_token => request.headers["API-Token"]).first
13
13
  Rails.logger.debug("[#{@appinstance.id}] API REQUEST - API token") if @appinstance.present?
14
14
  check_instance
@@ -38,7 +38,9 @@ module ZuoraConnect
38
38
  #Call .data_lookup with the current session to retrieve session. In some cases session may be stored/cache in redis
39
39
  #so data lookup provides a model method that can be overriden per app.
40
40
  if params[:controller] != 'zuora_connect/api/v1/app_instance' && params[:action] != 'drop'
41
- @appinstance.new_session(:session => @appinstance.data_lookup(:session => session))
41
+ if @appinstance.new_session_for_ui_requests(:params => params)
42
+ @appinstance.new_session(:session => @appinstance.data_lookup(:session => session))
43
+ end
42
44
  end
43
45
  PaperTrail.whodunnit = session["#{@appinstance.id}::user::email"] if defined?(PaperTrail) && session["#{@appinstance.id}::user::email"].present?
44
46
  begin
@@ -52,7 +54,7 @@ module ZuoraConnect
52
54
 
53
55
  def persist_connect_app_session
54
56
  if @appinstance.present?
55
- if defined?(Redis.current) && Rails.application.config.session_store.to_s == "RedisSessionStore"
57
+ if defined?(Redis.current)
56
58
  @appinstance.cache_app_instance
57
59
  else
58
60
  session.merge!(@appinstance.save_data)
@@ -138,8 +140,8 @@ module ZuoraConnect
138
140
  @appinstance = ZuoraConnect::AppInstance.new(:id => values[:appinstance].to_i, :access_token => values[:user], :refresh_token => values[:key], :token => "#{values[:key]}#{values[:key]}", :api_token => "#{values[:key]}#{values[:key]}")
139
141
  @appinstance.save(:validate => false)
140
142
  end
141
- if @appinstance.access_token.blank? || @appinstance.refresh_token.blank?
142
- @appinstance.update_attributes(:access_token => values["user"], :refresh_token => values["key"], :token => "#{values[:key]}#{values[:key]}", :api_token => "#{values[:key]}#{values[:key]}")
143
+ if @appinstance.access_token.blank? || @appinstance.refresh_token.blank? || @appinstance.token.blank? || @appinstance.api_token.blank?
144
+ @appinstance.update_attributes!(:access_token => values["user"], :refresh_token => values["key"], :token => "#{values[:key]}#{values[:key]}", :api_token => "#{values[:key]}#{values[:key]}")
143
145
  end
144
146
  session["#{@appinstance.id}::admin"] = ZuoraConnect.configuration.dev_mode_admin
145
147
  end
@@ -147,7 +149,9 @@ module ZuoraConnect
147
149
  #API ONLY
148
150
  def check_instance
149
151
  if @appinstance.present?
150
- @appinstance.new_session(:session => @appinstance.data_lookup(:session => session))
152
+ if @appinstance.new_session_for_api_requests(:params => params)
153
+ @appinstance.new_session(:session => @appinstance.data_lookup(:session => session))
154
+ end
151
155
  Thread.current[:appinstance] = @appinstance
152
156
  PaperTrail.whodunnit = "API User" if defined?(PaperTrail)
153
157
  return true
@@ -1,5 +1,7 @@
1
1
  module ZuoraConnect
2
2
  module Exceptions
3
+
4
+ class HoldingPattern < StandardError; end
3
5
  class Error < StandardError; end
4
6
  class AuthorizationNotPerformed < Error; end
5
7
 
@@ -1,4 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "1.5.30"
2
+ VERSION = "1.5.32"
3
3
  end
4
-
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: 1.5.30
4
+ version: 1.5.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-16 00:00:00.000000000 Z
11
+ date: 2018-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment
@@ -170,6 +170,20 @@ dependencies:
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: derailed
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
173
187
  - !ruby/object:Gem::Dependency
174
188
  name: pg
175
189
  requirement: !ruby/object:Gem::Requirement
@@ -211,6 +225,7 @@ files:
211
225
  - app/views/zuora_connect/static/invalid_app_instance_error.html.erb
212
226
  - app/views/zuora_connect/static/session_error.html.erb
213
227
  - config/initializers/apartment.rb
228
+ - config/initializers/object_method_hooks.rb
214
229
  - config/initializers/redis.rb
215
230
  - config/initializers/resque.rb
216
231
  - config/initializers/to_bool.rb
@@ -224,6 +239,7 @@ files:
224
239
  - db/migrate/20110503003602_add_catalog_data_to_app_instance.rb
225
240
  - db/migrate/20110503003603_add_catalog_mappings_to_app_instance.rb
226
241
  - db/migrate/20110503003604_catalog_default.rb
242
+ - db/migrate/20180301052853_add_catalog_attempted_at.rb
227
243
  - lib/resque/additions.rb
228
244
  - lib/resque/dynamic_queues.rb
229
245
  - lib/resque/self_lookup.rb
@@ -301,44 +317,44 @@ signing_key:
301
317
  specification_version: 4
302
318
  summary: Summary of Connect.
303
319
  test_files:
304
- - test/lib/generators/zuora_connect/datatable_generator_test.rb
305
320
  - test/models/zuora_connect/app_instance_test.rb
306
321
  - test/test_helper.rb
307
- - test/fixtures/zuora_connect/app_instances.yml
308
322
  - test/controllers/zuora_connect/api/v1/app_instance_controller_test.rb
309
- - test/integration/navigation_test.rb
310
- - test/zuora_connect_test.rb
311
- - test/dummy/Rakefile
312
- - test/dummy/bin/rails
313
- - test/dummy/bin/bundle
314
- - test/dummy/bin/setup
315
- - test/dummy/bin/rake
316
- - test/dummy/README.rdoc
317
- - test/dummy/config/locales/en.yml
318
- - test/dummy/config/environment.rb
319
- - test/dummy/config/secrets.yml
320
- - test/dummy/config/database.yml
321
- - test/dummy/config/application.rb
322
- - test/dummy/config/boot.rb
323
- - test/dummy/config/environments/production.rb
324
- - test/dummy/config/environments/development.rb
325
- - test/dummy/config/environments/test.rb
326
- - test/dummy/config/initializers/cookies_serializer.rb
327
- - test/dummy/config/initializers/wrap_parameters.rb
328
- - test/dummy/config/initializers/session_store.rb
329
- - test/dummy/config/initializers/mime_types.rb
330
- - test/dummy/config/initializers/inflections.rb
331
- - test/dummy/config/initializers/assets.rb
332
- - test/dummy/config/initializers/filter_parameter_logging.rb
333
- - test/dummy/config/initializers/backtrace_silencers.rb
334
- - test/dummy/config/routes.rb
323
+ - test/dummy/public/404.html
335
324
  - test/dummy/public/422.html
336
325
  - test/dummy/public/500.html
337
326
  - test/dummy/public/favicon.ico
338
- - test/dummy/public/404.html
327
+ - test/dummy/Rakefile
328
+ - test/dummy/README.rdoc
329
+ - test/dummy/app/controllers/application_controller.rb
339
330
  - test/dummy/app/helpers/application_helper.rb
340
331
  - test/dummy/app/views/layouts/application.html.erb
341
- - test/dummy/app/controllers/application_controller.rb
342
332
  - test/dummy/app/assets/stylesheets/application.css
343
333
  - test/dummy/app/assets/javascripts/application.js
334
+ - test/dummy/config/routes.rb
335
+ - test/dummy/config/boot.rb
336
+ - test/dummy/config/initializers/assets.rb
337
+ - test/dummy/config/initializers/wrap_parameters.rb
338
+ - test/dummy/config/initializers/session_store.rb
339
+ - test/dummy/config/initializers/filter_parameter_logging.rb
340
+ - test/dummy/config/initializers/inflections.rb
341
+ - test/dummy/config/initializers/mime_types.rb
342
+ - test/dummy/config/initializers/backtrace_silencers.rb
343
+ - test/dummy/config/initializers/cookies_serializer.rb
344
+ - test/dummy/config/environment.rb
345
+ - test/dummy/config/application.rb
346
+ - test/dummy/config/database.yml
347
+ - test/dummy/config/secrets.yml
348
+ - test/dummy/config/environments/production.rb
349
+ - test/dummy/config/environments/test.rb
350
+ - test/dummy/config/environments/development.rb
351
+ - test/dummy/config/locales/en.yml
352
+ - test/dummy/bin/rails
353
+ - test/dummy/bin/rake
354
+ - test/dummy/bin/setup
355
+ - test/dummy/bin/bundle
344
356
  - test/dummy/config.ru
357
+ - test/integration/navigation_test.rb
358
+ - test/zuora_connect_test.rb
359
+ - test/fixtures/zuora_connect/app_instances.yml
360
+ - test/lib/generators/zuora_connect/datatable_generator_test.rb