istox 0.1.158.2 → 0.2.0

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: 97f303881190d40e32795203028cfc7e21c68a5e34f4240c63f09cacbc116ee5
4
- data.tar.gz: '01196f2df3a75a91f969d04585b0683176d3624e5bb14894be61074025f33fbe'
3
+ metadata.gz: 32b60e5cea8c89edc2c9d9a9b4a9aaefeb026351d68ed6898b578f04213f7e81
4
+ data.tar.gz: e969dc0c25653d64d0de4173bd59178e3f2da8b080fe7db9d34f7c56b67bb791
5
5
  SHA512:
6
- metadata.gz: 349210e9975fde52b911856fae0602bd92d55a2350a809bc6e6f8bf59f2fa9d47b43b5a9f88ddc2c0e57b4cea7eb5bc4be90b9a817155cd606b72b37e4bdbf5d
7
- data.tar.gz: b4c3249825bf6eb114ce7d8d40ed3265b422b258722c449991b2eecc2b30e1b6ac98de6035730294f0c328465f4c640dafa7e6b7426a7e2652a256246927f11e
6
+ metadata.gz: 88109a86cc415878a19a461ed56252c42562fd44a40861eebe04f5a65a57c4b59df823851a047e59db49f78a5873e63eb99a27cf91f2e4a1c56646660b5f3e67
7
+ data.tar.gz: 9106e4ba0fd8bc5a965fcee3d3e78f1c6cf89ab5f2dcb1c3cbd7762913d6c6382b73c0173985c5f358aca6c58e697bfb78574c7c2c1b88af1b8a2702e89b5aea
data/lib/istox.rb CHANGED
@@ -45,12 +45,6 @@ module Istox
45
45
  require 'istox/helpers/xray/rabbitmq_consumer_interceptor'
46
46
  require 'istox/helpers/xray/xray_initializer'
47
47
 
48
- require 'istox/helpers/integration_test/grpc_client_interceptor'
49
- require 'istox/helpers/integration_test/grpc_server_interceptor'
50
- require 'istox/helpers/integration_test/rabbitmq_publisher_interceptor'
51
- require 'istox/helpers/integration_test/rabbitmq_consumer_interceptor'
52
- require 'istox/helpers/integration_test/settings'
53
-
54
48
  require 'istox/models/blockchain_receipt'
55
49
  require 'istox/models/concerns/blockchain_receipt_query'
56
50
  require 'istox/consumers/blockchain_status_handler'
@@ -58,5 +58,11 @@ module Istox
58
58
  obj
59
59
  end
60
60
  end
61
+
62
+ def self.get_currency_decimal(currency)
63
+ return 0 if currency&.downcase == 'jpy'
64
+
65
+ 2
66
+ end
61
67
  end
62
68
  end
@@ -17,8 +17,18 @@ module Istox
17
17
  end
18
18
 
19
19
  # format a money, eg. 20000.134 > SGD 20,000.14, position can be :front or :behind, abs_num: whether to absolute the number
20
- def money(input, round_mode: :half_up, precision: 2, currency:, position: :front, abs_num: false)
21
- result = number(input, round_mode: round_mode, precision: precision, abs_num: abs_num)
20
+ def money(input, round_mode: :half_up, precision: nil, currency:, position: :front, abs_num: false, hide_currency: false)
21
+ # precision = ::Istox::CommonHelper.get_currency_decimal(currency, precision)
22
+
23
+ decimal_place = if precision.present?
24
+ precision
25
+ else
26
+ ::Istox::CommonHelper.get_currency_decimal(currency)
27
+ end
28
+
29
+ result = number(input, round_mode: round_mode, precision: decimal_place, abs_num: abs_num)
30
+
31
+ return result if hide_currency
22
32
 
23
33
  return currency + ' ' + result if position == :front
24
34
 
@@ -14,7 +14,7 @@ module Istox
14
14
 
15
15
  message = JSON.generate(message) unless message.is_a? String
16
16
 
17
- sns_client.publish({ topic_arn: topic_arn || ENV.fetch('PUSHER_TOPIC_ARN', ''), message: message })
17
+ sns_client.publish(topic_arn: topic_arn || ENV.fetch('SNS_CLIENT_TOPIC', ''), message: message)
18
18
 
19
19
  log.info('Publish to SNS successfully.')
20
20
  rescue StandardError => e
@@ -28,8 +28,15 @@ module Istox
28
28
  def sns_client
29
29
  return @sns_client if @sns_client.present?
30
30
 
31
- Aws.config.update({ region: ENV.fetch('AWS_REGION', 'ap-southeast-1'),
32
- credentials: Aws::Credentials.new(ENV.fetch('AWS_STS_ACCESS_KEY_ID'), ENV.fetch('AWS_STS_SECRET_ACCESS_KEY')) })
31
+ access_key = ENV.fetch('AWS_STS_ACCESS_KEY_ID', nil)
32
+
33
+ if access_key.present?
34
+ credentials = Aws::Credentials.new(ENV.fetch('AWS_STS_ACCESS_KEY_ID', nil), ENV.fetch('AWS_STS_SECRET_ACCESS_KEY', nil))
35
+ Aws.config.update(region: ENV.fetch('AWS_REGION', 'ap-southeast-1'),
36
+ credentials: credentials)
37
+ else
38
+ Aws.config.update(region: ENV.fetch('AWS_REGION', 'ap-southeast-1'))
39
+ end
33
40
 
34
41
  @sns_client = Aws::SNS::Client.new(region: ENV.fetch('AWS_REGION', 'ap-southeast-1'))
35
42
  end
@@ -22,6 +22,7 @@ module Istox
22
22
 
23
23
  request_context.metadata[:xray_trace_id] = XRay.recorder.current_segment.trace_id
24
24
  request_context.metadata[:xray_parent_id] = XRay.recorder.current_segment.id
25
+ Thread.current[:tracer_id] = XRay.recorder.current_segment.trace_id
25
26
 
26
27
  result = yield
27
28
 
@@ -7,6 +7,7 @@ module Istox
7
7
  meta = request.active_call.metadata
8
8
  trace_id = (meta['xray_trace_id'] if meta.present? && meta.key?('xray_trace_id'))
9
9
  parent_id = (meta['xray_parent_id'] if meta.present? && meta.key?('xray_parent_id'))
10
+ Thread.current[:tracer_id] = trace_id
10
11
 
11
12
  XRay.recorder.begin_segment("#{::Istox::Xray::XrayInitializer.service_name}.grpc.#{request.method_key}",
12
13
  trace_id: trace_id, parent_id: parent_id)
@@ -8,6 +8,7 @@ module Istox
8
8
 
9
9
  trace_id = (payload_hash[:xray_trace_id] if payload_hash.key?(:xray_trace_id))
10
10
  parent_id = (payload_hash[:xray_parent_id] if payload_hash.key?(:xray_parent_id))
11
+ Thread.current[:tracer_id] = trace_id
11
12
 
12
13
  arr = [delivery_info[:exchange]&.downcase, delivery_info[:routing_key]&.downcase, payload_hash[:type]&.downcase].compact
13
14
 
@@ -22,6 +22,7 @@ module Istox
22
22
 
23
23
  message[:xray_trace_id] = XRay.recorder.current_segment.trace_id
24
24
  message[:xray_parent_id] = XRay.recorder.current_segment.id
25
+ Thread.current[:tracer_id] = XRay.recorder.current_segment.trace_id
25
26
 
26
27
  XRay.recorder.end_subsegment
27
28
 
data/lib/istox/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Istox
2
- VERSION = '0.1.158.2'.freeze
2
+ VERSION = '0.2.0'.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.158.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Siong Leng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-18 00:00:00.000000000 Z
11
+ date: 2021-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -480,14 +480,6 @@ extensions: []
480
480
  extra_rdoc_files: []
481
481
  files:
482
482
  - ".gitignore"
483
- - ".idea/.rakeTasks"
484
- - ".idea/encodings.xml"
485
- - ".idea/inspectionProfiles/Project_Default.xml"
486
- - ".idea/istox-gem.iml"
487
- - ".idea/misc.xml"
488
- - ".idea/modules.xml"
489
- - ".idea/vcs.xml"
490
- - ".idea/workspace.xml"
491
483
  - ".rubocop.yml"
492
484
  - ".solargraph.yml"
493
485
  - CODE_OF_CONDUCT.md
@@ -511,11 +503,6 @@ files:
511
503
  - lib/istox/helpers/graphql_client.rb
512
504
  - lib/istox/helpers/grpc_client.rb
513
505
  - 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
519
506
  - lib/istox/helpers/logger.rb
520
507
  - lib/istox/helpers/messaging.rb
521
508
  - lib/istox/helpers/my_open_struct.rb
data/.idea/.rakeTasks DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Settings><!--This file was automatically generated by Ruby plugin.
3
- You are allowed to:
4
- 1. Remove rake task
5
- 2. Add existing rake tasks
6
- To add existing rake tasks automatically delete this file and reload the project.
7
- --><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
data/.idea/encodings.xml DELETED
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
- </project>
@@ -1,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
5
- </profile>
6
- </component>
data/.idea/istox-gem.iml DELETED
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$" />
8
- <orderEntry type="inheritedJdk" />
9
- <orderEntry type="sourceFolder" forTests="false" />
10
- <orderEntry type="library" scope="PROVIDED" name="bundler (v1.16.6, RVM: ruby-2.5.3 [global]) [gem]" level="application" />
11
- </component>
12
- </module>
data/.idea/misc.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptSettings">
4
- <option name="languageLevel" value="ES6" />
5
- </component>
6
- <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.5.3 [global]" project-jdk-type="RUBY_SDK" />
7
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/istox-gem.iml" filepath="$PROJECT_DIR$/.idea/istox-gem.iml" />
6
- </modules>
7
- </component>
8
- </project>
data/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- </component>
6
- </project>
@@ -1,22 +0,0 @@
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
@@ -1,31 +0,0 @@
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
@@ -1,32 +0,0 @@
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
@@ -1,14 +0,0 @@
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
@@ -1,11 +0,0 @@
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