istox 0.1.115 → 0.1.116
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 +4 -4
- data/Gemfile.lock +3 -3
- data/lib/istox.rb +1 -1
- data/lib/istox/helpers/messaging.rb +111 -0
- data/lib/istox/helpers/rate_limit.rb +2 -2
- data/lib/istox/version.rb +1 -1
- metadata +3 -3
- data/lib/istox/helpers/message_service.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f29d1b7e68de95eeefa9c2b9b6360d12df362c84c4c237157e57bda9bd93b582
|
4
|
+
data.tar.gz: a9f0a6349a081d0b3628cc200a5dd44e50b4a4908af8b1de8f1ee3b3f71f9d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa32e45a7a16f59f6f2d65851eb403f277ff30d27bf39aaa574550725f811360f18e0fb40b5c4702bb6bce7b5762b9e6e73dffd8c89e97c9f757a7fc3e11c61e
|
7
|
+
data.tar.gz: 6b8cb8ab35f24ff0bb9701c8215ffefc6ed098127ed71434fec663488cc2debba2f72fb2d2331fa3fcbc24ad16c1619585ace9ca805fbc5d7cbd85b4631208fb
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
istox (0.1.
|
4
|
+
istox (0.1.115)
|
5
5
|
awesome_print
|
6
6
|
binding_of_caller
|
7
7
|
bunny (>= 2.12.0)
|
@@ -95,7 +95,7 @@ GEM
|
|
95
95
|
ffi (1.11.3)
|
96
96
|
globalid (0.4.2)
|
97
97
|
activesupport (>= 4.2.0)
|
98
|
-
google-protobuf (3.11.2
|
98
|
+
google-protobuf (3.11.2)
|
99
99
|
googleapis-common-protos-types (1.0.4)
|
100
100
|
google-protobuf (~> 3.0)
|
101
101
|
graphlient (0.3.7)
|
@@ -106,7 +106,7 @@ GEM
|
|
106
106
|
graphql-client (0.16.0)
|
107
107
|
activesupport (>= 3.0)
|
108
108
|
graphql (~> 1.8)
|
109
|
-
grpc (1.26.0
|
109
|
+
grpc (1.26.0)
|
110
110
|
google-protobuf (~> 3.8)
|
111
111
|
googleapis-common-protos-types (~> 1.0)
|
112
112
|
grpc-tools (1.26.0)
|
data/lib/istox.rb
CHANGED
@@ -24,7 +24,7 @@ module Istox
|
|
24
24
|
require 'istox/helpers/grpc_client'
|
25
25
|
require 'istox/helpers/graphql_client'
|
26
26
|
require 'istox/helpers/gruf_listener_hook'
|
27
|
-
require 'istox/helpers/
|
27
|
+
require 'istox/helpers/messaging'
|
28
28
|
require 'istox/helpers/blockchain_service'
|
29
29
|
require 'istox/helpers/f_math'
|
30
30
|
require 'istox/helpers/my_open_struct'
|
@@ -0,0 +1,111 @@
|
|
1
|
+
module Istox
|
2
|
+
class Messaging
|
3
|
+
class << self
|
4
|
+
# sms, numbers can be an array of multiple phone numbers or just string of single phone number
|
5
|
+
def sms(numbers, content, subject: nil)
|
6
|
+
targets = []
|
7
|
+
if numbers.is_a?(Array)
|
8
|
+
targets = numbers
|
9
|
+
else
|
10
|
+
targets << numbers
|
11
|
+
end
|
12
|
+
|
13
|
+
targets = targets.compact
|
14
|
+
|
15
|
+
raise ArgumentError, 'Target numbers cannot be empty or nil' if targets.empty?
|
16
|
+
raise ArgumentError, 'SMS message content cannot be empty' if content.blank?
|
17
|
+
|
18
|
+
::Istox::Publisher.manual_publish(
|
19
|
+
exchange: 'message',
|
20
|
+
exchange_type: 'direct',
|
21
|
+
routing_key: 'sms.message',
|
22
|
+
message: {
|
23
|
+
type: 'SEND_SMS',
|
24
|
+
data: {
|
25
|
+
to: targets,
|
26
|
+
subject: subject || 'Message from iSTOX',
|
27
|
+
body: content
|
28
|
+
}
|
29
|
+
}
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
# sample template data, it should be an array
|
34
|
+
# [{
|
35
|
+
# mobile: mobile,
|
36
|
+
# istoxP1: auth.first_name,
|
37
|
+
# <more other sample template attributes>: <other sample template data>,
|
38
|
+
# }]
|
39
|
+
def sms_template(template_name, template_data_arr)
|
40
|
+
raise ArgumentError, 'Template name and template data arr cannot be empty' if template_name.blank? || template_data_arr.nil? ||
|
41
|
+
template_data_arr.empty?
|
42
|
+
|
43
|
+
::Istox::Publisher.manual_publish(
|
44
|
+
exchange: 'message',
|
45
|
+
exchange_type: 'direct',
|
46
|
+
routing_key: 'sms.message',
|
47
|
+
message: {
|
48
|
+
type: 'SEND_SMS_TEMPLATE',
|
49
|
+
data: {
|
50
|
+
template_name: template_name,
|
51
|
+
template_data_arr: template_data_arr
|
52
|
+
}
|
53
|
+
}
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
# email, email can be an array of multiple emails or just string of single email address
|
58
|
+
def email(emails, subject:, content:)
|
59
|
+
targets = []
|
60
|
+
if emails.is_a?(Array)
|
61
|
+
targets = emails
|
62
|
+
else
|
63
|
+
targets << emails
|
64
|
+
end
|
65
|
+
|
66
|
+
targets = targets.compact
|
67
|
+
|
68
|
+
raise ArgumentError, 'Target emails cannot be empty or nil' if targets.empty?
|
69
|
+
raise ArgumentError, 'Email subject and content cannot be empty' if content.blank? || subject.blank?
|
70
|
+
|
71
|
+
::Istox::Publisher.manual_publish(
|
72
|
+
exchange: 'message',
|
73
|
+
exchange_type: 'direct',
|
74
|
+
routing_key: 'email.message',
|
75
|
+
message: {
|
76
|
+
type: 'SEND_EMAIL',
|
77
|
+
data: {
|
78
|
+
to: targets,
|
79
|
+
subject: subject,
|
80
|
+
body: content
|
81
|
+
}
|
82
|
+
}
|
83
|
+
)
|
84
|
+
end
|
85
|
+
|
86
|
+
# sample template data, it should be an array
|
87
|
+
# [{
|
88
|
+
# email: email,
|
89
|
+
# istoxP1: auth.first_name,
|
90
|
+
# <more other sample template attributes>: <other sample template data>,
|
91
|
+
# }]
|
92
|
+
def email_template(template_name, template_data_arr)
|
93
|
+
raise ArgumentError, 'Template name and template data arr cannot be empty' if template_name.blank? || template_data_arr.nil? ||
|
94
|
+
template_data_arr.empty?
|
95
|
+
|
96
|
+
::Istox::Publisher.manual_publish(
|
97
|
+
exchange: 'message',
|
98
|
+
exchange_type: 'direct',
|
99
|
+
routing_key: 'email.message',
|
100
|
+
message: {
|
101
|
+
type: 'SEND_EMAIL_TEMPLATE',
|
102
|
+
data: {
|
103
|
+
template_name: template_name,
|
104
|
+
template_data_arr: template_data_arr
|
105
|
+
}
|
106
|
+
}
|
107
|
+
)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -85,7 +85,7 @@ module Istox
|
|
85
85
|
!exceeded?(subject, options)
|
86
86
|
end
|
87
87
|
|
88
|
-
#
|
88
|
+
# Raise error if exceeded the limit
|
89
89
|
#
|
90
90
|
# @param [String] subject Subject to check
|
91
91
|
# @param [Hash] options Options hash
|
@@ -97,7 +97,7 @@ module Istox
|
|
97
97
|
add(subject)
|
98
98
|
end
|
99
99
|
|
100
|
-
#
|
100
|
+
# Return false if exceeded the limit, else return true
|
101
101
|
#
|
102
102
|
# @param [String] subject Subject to check
|
103
103
|
# @param [Hash] options Options hash
|
data/lib/istox/version.rb
CHANGED
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.
|
4
|
+
version: 0.1.116
|
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-01-
|
11
|
+
date: 2020-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -383,7 +383,7 @@ files:
|
|
383
383
|
- lib/istox/helpers/grpc_client.rb
|
384
384
|
- lib/istox/helpers/gruf_listener_hook.rb
|
385
385
|
- lib/istox/helpers/logger.rb
|
386
|
-
- lib/istox/helpers/
|
386
|
+
- lib/istox/helpers/messaging.rb
|
387
387
|
- lib/istox/helpers/my_open_struct.rb
|
388
388
|
- lib/istox/helpers/order_book_price_time.rb
|
389
389
|
- lib/istox/helpers/order_book_prorate.rb
|
@@ -1,51 +0,0 @@
|
|
1
|
-
module Istox
|
2
|
-
class MessageService
|
3
|
-
class << self
|
4
|
-
def send_sms(number, subject, content)
|
5
|
-
publish('sms', data: {
|
6
|
-
to: number,
|
7
|
-
subject: subject,
|
8
|
-
body: content
|
9
|
-
},
|
10
|
-
type: __method__.to_s.upcase!)
|
11
|
-
end
|
12
|
-
|
13
|
-
def send_sms_template(number, template)
|
14
|
-
publish('sms', data: {
|
15
|
-
to: number,
|
16
|
-
template: template
|
17
|
-
},
|
18
|
-
type: __method__.to_s.upcase!)
|
19
|
-
end
|
20
|
-
|
21
|
-
def send_email(email, subject, content)
|
22
|
-
publish('email', data: {
|
23
|
-
to: email,
|
24
|
-
subject: subject,
|
25
|
-
type: 'text/plain',
|
26
|
-
body: content
|
27
|
-
},
|
28
|
-
type: __method__.to_s.upcase!)
|
29
|
-
end
|
30
|
-
|
31
|
-
def send_email_template(email, template)
|
32
|
-
publish('email', data: {
|
33
|
-
to: email,
|
34
|
-
template: template
|
35
|
-
},
|
36
|
-
type: __method__.to_s.upcase!)
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
|
41
|
-
def publish(type, payload)
|
42
|
-
::Istox::Publisher.manual_publish(
|
43
|
-
exchange: 'message',
|
44
|
-
exchange_type: 'direct',
|
45
|
-
routing_key: "#{type}.message",
|
46
|
-
message: payload
|
47
|
-
)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|