zuora_connect 3.1.0.pre.c → 3.1.0.pre.d

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: 97665e840ec7fc2825cecb5a32829f13f6424e7d69aabffefce2826f8107ce4d
4
- data.tar.gz: 9667455c3c021995b8037b3dbccffb988fb70c0f4dfebfae852313f0b9a6fdaf
3
+ metadata.gz: 8a5ca7980f0c3e5418bbd8b34d277421c00bbe709870ca1f17088c16e65a7454
4
+ data.tar.gz: 5465170884c82258888725799568a8d43e70ddceb968652c284335397023875f
5
5
  SHA512:
6
- metadata.gz: 3eec1dd133e3274fd09f0817d1aea463a3fbf0a266b51a320273a8fc5628fda91c4fd365647909691e32b062f389522db63400ebc56e73c4aaa4e0d9a7bb2f2b
7
- data.tar.gz: 52ddcd7e7cbcb39adebe2f718306d7acb75ca3269221e4bff80524a15d9ab58a03ec4a51cccaec5e659d7672a2e39829353f9a31c120323b4b5bc4abba4576e9
6
+ metadata.gz: 623b63683caba7ac18d08da2fba2b9d5db96eb24b9d0e0b833b85d4d707a2f2c34f1dc687248b9e034271cae4a4f402e0a78ce227cecfbbf9e467de07189771f
7
+ data.tar.gz: 2f27d2fe72ad6abe199a49b8872c6ed1e581257d62a62576452331e215f46f48ec17a88c13d75491573c27a71d151d3c1b0bb2f9258d3e1cd458213ed3f5b1b4
@@ -43,7 +43,12 @@ module ZuoraConnect
43
43
 
44
44
  def cache_bust
45
45
  if defined?(Redis.current)
46
+ @appinstance.fetch_connect_data #Fetch data and set in database if kms key is used
47
+ @appinstance.cache_app_instance(force_cache: true) #Update cache in redis
46
48
  Redis.current.del("AppInstance:#{@appinstance.id}")
49
+ @appinstance.cache_app_instance(force_cache: true) #Update cache in redis
50
+ #TODO: Could be a chance another thread cache back to old value, but will eventually cache will get consitent, move to nolonger needing redis cache
51
+
47
52
  respond_to do |format|
48
53
  format.json {render json: {}, status: :ok}
49
54
  end
@@ -351,28 +351,33 @@ module ZuoraConnect
351
351
  self.id >= 25000000
352
352
  end
353
353
 
354
+ def fetch_connect_data
355
+ self.check_oauth_state
356
+ response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token})
357
+
358
+ if response.code == 200
359
+ begin
360
+ parsed_json = JSON.parse(response.body)
361
+ rescue JSON::ParserError => ex
362
+ raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("JSON parse error", response.body, response.code)
363
+ end
364
+
365
+ self.build_task(task_data: parsed_json, session: session)
366
+ self.set_backup_creds
367
+ self.save(validate: false) if self.changed?
368
+ else
369
+ raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code)
370
+ end
371
+ end
372
+
373
+
354
374
  def refresh(session: {})
355
375
  refresh_count ||= 0
356
376
  skip_connect ||= ZuoraConnect.configuration.skip_connect
357
377
  begin
358
378
  #Check how app was deployed
359
- if !self.auto_deployed? && !skip_connect
360
- self.check_oauth_state
361
- response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token})
362
-
363
- if response.code == 200
364
- begin
365
- parsed_json = JSON.parse(response.body)
366
- rescue JSON::ParserError => ex
367
- raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("JSON parse error", response.body, response.code)
368
- end
369
-
370
- self.build_task(task_data: parsed_json, session: session)
371
- self.set_backup_creds
372
- self.save(validate: false) if self.changed?
373
- else
374
- raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code)
375
- end
379
+ if !self.auto_deployed? && (!skip_connect || self['zuora_logins'].blank?)
380
+ self.fetch_connect_data
376
381
  else
377
382
  self.build_task(task_data: self.zuora_logins, session: session)
378
383
  end
@@ -775,10 +780,10 @@ module ZuoraConnect
775
780
  Redis.current.del("AppInstance:#{self.id}")
776
781
  end
777
782
 
778
- def cache_app_instance
783
+ def cache_app_instance(force_cache: false)
779
784
  if defined?(Redis.current)
780
785
  #Task data must be present and the last refresh cannot be old. We dont want to overwite new cache data with old
781
- if self.task_data.present? && (self.last_refresh.to_i > INSTANCE_REFRESH_WINDOW.ago.to_i)
786
+ if self.task_data.present? && ((self.last_refresh.to_i > INSTANCE_REFRESH_WINDOW.ago.to_i ) || force_cache)
782
787
  ZuoraConnect.logger.debug("Caching AppInstance", self.default_ougai_items)
783
788
  Redis.current.setex("AppInstance:#{self.id}", INSTANCE_REDIS_CACHE_PERIOD.to_i, self.encrypt_data(data: self.save_data))
784
789
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZuoraConnect
4
- VERSION = "3.1.0-c"
4
+ VERSION = "3.1.0-d"
5
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.1.0.pre.c
4
+ version: 3.1.0.pre.d
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-03 00:00:00.000000000 Z
11
+ date: 2022-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment