istox 0.1.157.7 → 0.1.158

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: 8b2d25cfc82f9d7bf7bf206709b4e7fce25b0a08969182214b7c21cf2de9b438
4
- data.tar.gz: 3da94d7e1152dc79773eadc6f8a9926d475ec68a112aa9ca5b5bc24abfb3daf9
3
+ metadata.gz: 7846d50bc5ee84ddd5e20993c97de34d498498f88b08632aadfec6108fa1c214
4
+ data.tar.gz: f3baf261d398da6f3f2813e85195ca03db07a3d72137fe15bcd9cd65ab43ef75
5
5
  SHA512:
6
- metadata.gz: e1784d28886f44447a7a0655ab744b22c2ecaf8c85a35db582aaaa34d6ca8788a76b312d2297d90079576376a6a59b0412ba58830ceaaae4c37aabf585d6e7cb
7
- data.tar.gz: 426c27cf433ebc5f37ce3477dfcc0b90e86bb0a485d674ca1c42ccfae8f1f394f8c084df41b67e61a3453b103aeff36bbdfb2ce34e591df3168eedfd344cb472
6
+ metadata.gz: 861464f5af57e78042e07d9427f6a205b1a7358ae1e266f16eeee6e35fe60529f7ffffc4e0b1dcd35fda4eb0029e2ecb1b7c64f2926f4f815e6a9a826cca9261
7
+ data.tar.gz: 0032fe6b5d0dd9d10fdc66d29cb08e5a3fcd36133db0a73c685dc350062a4aaaf92fb134e50bd71a8161e586d46a5eb090193406c53e727424b0d2bd5bf2eeb0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- istox (0.1.157.5)
4
+ istox (0.1.157.9)
5
5
  amazing_print
6
6
  awesome_print
7
7
  aws-sdk-sns (~> 1)
@@ -86,14 +86,13 @@ GEM
86
86
  aws-xray-sdk (0.11.4)
87
87
  aws-sdk-xray (~> 1.4.0)
88
88
  multi_json (~> 1)
89
- bigdecimal (2.0.0)
90
89
  binding_of_caller (0.8.0)
91
90
  debug_inspector (>= 0.0.1)
92
91
  builder (3.2.4)
93
92
  bullet (5.7.6)
94
93
  activesupport (>= 3.0.0)
95
94
  uniform_notifier (~> 1.11.0)
96
- bunny (2.16.1)
95
+ bunny (2.17.0)
97
96
  amq-protocol (~> 2.3, >= 2.3.1)
98
97
  byebug (11.1.3)
99
98
  coderay (1.1.2)
@@ -127,14 +126,14 @@ GEM
127
126
  faraday (>= 1.0)
128
127
  faraday_middleware
129
128
  graphql-client
130
- graphql (1.11.3)
129
+ graphql (1.11.4)
131
130
  graphql-client (0.16.0)
132
131
  activesupport (>= 3.0)
133
132
  graphql (~> 1.8)
134
- grpc (1.31.1-universal-darwin)
135
- google-protobuf (~> 3.12)
133
+ grpc (1.32.0-universal-darwin)
134
+ google-protobuf (~> 3.13)
136
135
  googleapis-common-protos-types (~> 1.0)
137
- grpc-tools (1.31.1)
136
+ grpc-tools (1.32.0)
138
137
  gruf (2.8.1)
139
138
  activesupport (> 4)
140
139
  concurrent-ruby (> 1)
@@ -171,8 +170,7 @@ GEM
171
170
  nio4r (2.3.1)
172
171
  nokogiri (1.10.9)
173
172
  mini_portile2 (~> 2.4.0)
174
- oj (3.10.9)
175
- bigdecimal (~> 2.0)
173
+ oj (3.10.14)
176
174
  ougai (1.8.5)
177
175
  oj (~> 3.10)
178
176
  paranoia (2.4.2)
@@ -26,7 +26,12 @@ module Istox
26
26
  txhash: transaction.txn_hashes.present? ? transaction.txn_hashes.join(',') : nil)
27
27
 
28
28
  resource = begin
29
- class_eval("::#{receipt.resource_name}", __FILE__, __LINE__).find(receipt.resource_id)
29
+ cls = class_eval("::#{receipt.resource_name}", __FILE__, __LINE__)
30
+ if cls.respond_to?('with_deleted')
31
+ cls.with_deleted.find(receipt.resource_id)
32
+ else
33
+ cls.find(receipt.resource_id)
34
+ end
30
35
  rescue NameError
31
36
  log.warn "Transaction bind to #{receipt.resource_name} with id #{receipt.resource_id} class not found, skipping..."
32
37
  return
@@ -8,8 +8,8 @@ module Istox
8
8
  @@blockchain_receipt_klass
9
9
  end
10
10
 
11
- def self.request(sid:, action:, before:, execute:)
12
- start(sid: sid, action: action, before: before, execute: execute, is_request: true)
11
+ def self.request(sid:, action:, before:, execute:, request_reason: nil)
12
+ start(sid: sid, action: action, before: before, execute: execute, is_request: true, request_reason: request_reason)
13
13
  end
14
14
 
15
15
  def self.run(sid:, action:, before:, execute:)
@@ -19,7 +19,7 @@ module Istox
19
19
  private
20
20
 
21
21
  # before is the proc that will be executed before, must return the main model blockchain receipt will bind to
22
- def start(sid:, action:, before:, execute:, is_request: false)
22
+ def start(sid:, action:, before:, execute:, is_request: false, request_reason: nil)
23
23
  # create blockchain receipt first
24
24
  klass = blockchain_receipt_class
25
25
  uuid = ::SecureRandom.uuid
@@ -27,6 +27,7 @@ module Istox
27
27
  txid: uuid,
28
28
  sid: sid,
29
29
  is_request: is_request,
30
+ request_reason: request_reason,
30
31
  resource_action: action
31
32
  )
32
33
 
@@ -0,0 +1,22 @@
1
+ require 'istox/helpers/logger'
2
+
3
+ module Istox
4
+ module IntegrationTest
5
+ class GrpcClientInterceptor < ::Gruf::Interceptors::ClientInterceptor
6
+ def call(request_context:)
7
+ request_context.metadata[:integration_test] = if ::Istox::IntegrationTest::Settings.enable
8
+ '1'
9
+ else
10
+ '0'
11
+ end
12
+
13
+ result = yield
14
+
15
+ result
16
+ rescue StandardError => e
17
+ log.error e
18
+ raise e
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,31 @@
1
+ require 'istox/helpers/logger'
2
+
3
+ module Istox
4
+ module IntegrationTest
5
+ class GrpcServerInterceptor < ::Gruf::Interceptors::ServerInterceptor
6
+ def call
7
+ meta = request.active_call.metadata
8
+ enable_integration = (meta['integration_test'] if meta.present? && meta.key?('integration_test'))
9
+
10
+ if enable_integration == '1'
11
+ ::Istox::IntegrationTest::Settings.enable = true
12
+ if ActiveRecord::Base.connection.current_database != Rails.configuration.database_configuration['integration']['database']
13
+ ActiveRecord::Base.establish_connection(:integration)
14
+ end
15
+ else
16
+ ::Istox::IntegrationTest::Settings.enable = false
17
+ if ActiveRecord::Base.connection.current_database != Rails.configuration.database_configuration['development']['database']
18
+ ActiveRecord::Base.establish_connection(:development)
19
+ end
20
+ end
21
+
22
+ result = yield # this returns the protobuf message
23
+
24
+ result
25
+ rescue StandardError => e
26
+ log.error e
27
+ raise e
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ require 'istox/helpers/logger'
2
+
3
+ module Istox
4
+ module IntegrationTest
5
+ class RabbitmqConsumerInterceptor
6
+ def call(payload, _metadata, _delivery_info)
7
+ payload_hash = payload.to_h
8
+
9
+ enable_integration_test = (payload_hash[:istox_integration_test] if payload_hash.key?(:istox_integration_test))
10
+
11
+ if enable_integration_test == '1'
12
+ ::Istox::IntegrationTest::Settings.enable = true
13
+ if ActiveRecord::Base.connection.current_database != Rails.configuration.database_configuration['integration']['database']
14
+ ActiveRecord::Base.establish_connection(:integration)
15
+ end
16
+ else
17
+ ::Istox::IntegrationTest::Settings.enable = false
18
+ if ActiveRecord::Base.connection.current_database != Rails.configuration.database_configuration['development']['database']
19
+ ActiveRecord::Base.establish_connection(:development)
20
+ end
21
+ end
22
+
23
+ result = yield # this returns consumer handler message
24
+
25
+ result
26
+ rescue StandardError => e
27
+ log.error e
28
+ raise e
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ require 'istox/helpers/logger'
2
+
3
+ module Istox
4
+ module IntegrationTest
5
+ class RabbitmqPublisherInterceptor
6
+ def call(message, _options)
7
+ message[:istox_integration_test] = '1'
8
+ rescue StandardError => e
9
+ log.error e
10
+ raise e
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ require 'istox/helpers/logger'
2
+
3
+ module Istox
4
+ module IntegrationTest
5
+ class Settings
6
+ class << self
7
+ attr_accessor :enable
8
+ end
9
+ end
10
+ end
11
+ end
@@ -127,8 +127,28 @@ module Istox
127
127
  next unless email_data[:copy_emails].present?
128
128
 
129
129
  email_data[:copy_emails].each do |ce|
130
+ next unless ce.present?
131
+
130
132
  copy_email_data = email_data.clone
131
- copy_email_data[:email] = ce
133
+
134
+ # if it is just email to cc
135
+ if ce.is_a? String
136
+ copy_email_data[:email] = ce
137
+ else
138
+ # if it is a object hash
139
+ # {
140
+ # email: xxxx
141
+ # params: {
142
+ # istoxP1: xxxx,
143
+ # istoxP2: xxxx
144
+ # }
145
+ # }
146
+ next unless ce[:email].present?
147
+
148
+ copy_email_data[:email] = ce[:email]
149
+ copy_email_data = copy_email_data.merge(ce[:params])
150
+ end
151
+
132
152
  copy_email_data.delete(:copy_emails)
133
153
  copy_email_data_arr << copy_email_data
134
154
  end
@@ -1,3 +1,3 @@
1
1
  module Istox
2
- VERSION = '0.1.157.7'.freeze
2
+ VERSION = '0.1.158'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: istox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.157.7
4
+ version: 0.1.158
5
5
  platform: ruby
6
6
  authors:
7
7
  - Siong Leng
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-17 00:00:00.000000000 Z
11
+ date: 2020-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -511,6 +511,11 @@ files:
511
511
  - lib/istox/helpers/graphql_client.rb
512
512
  - lib/istox/helpers/grpc_client.rb
513
513
  - lib/istox/helpers/gruf_listener_hook.rb
514
+ - lib/istox/helpers/integration-test/grpc_client_interceptor.rb
515
+ - lib/istox/helpers/integration-test/grpc_server_interceptor.rb
516
+ - lib/istox/helpers/integration-test/rabbitmq_consumer_interceptor.rb
517
+ - lib/istox/helpers/integration-test/rabbitmq_publisher_interceptor.rb
518
+ - lib/istox/helpers/integration-test/settings.rb
514
519
  - lib/istox/helpers/logger.rb
515
520
  - lib/istox/helpers/messaging.rb
516
521
  - lib/istox/helpers/my_open_struct.rb
@@ -539,7 +544,7 @@ files:
539
544
  homepage: http://www.abc.com
540
545
  licenses: []
541
546
  metadata: {}
542
- post_install_message:
547
+ post_install_message:
543
548
  rdoc_options: []
544
549
  require_paths:
545
550
  - lib
@@ -554,9 +559,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
554
559
  - !ruby/object:Gem::Version
555
560
  version: '0'
556
561
  requirements: []
557
- rubyforge_project:
558
- rubygems_version: 2.7.10
559
- signing_key:
562
+ rubygems_version: 3.0.6
563
+ signing_key:
560
564
  specification_version: 4
561
565
  summary: istox backend shared gem
562
566
  test_files: []