istox 0.1.157.7 → 0.1.158

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: 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: []