unione-ruby 0.0.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +90 -9
- data/Rakefile +49 -0
- data/config/response_schema/domain.yml +74 -0
- data/config/response_schema/email.yml +23 -0
- data/config/response_schema/event_dump.yml +75 -0
- data/config/response_schema/project.yml +59 -0
- data/config/response_schema/suppression.yml +71 -0
- data/config/response_schema/system.yml +33 -0
- data/config/response_schema/tag.yml +26 -0
- data/config/response_schema/template.yml +134 -0
- data/config/response_schema/unsubscribed.yml +45 -0
- data/config/response_schema/webhook.yml +141 -0
- data/examples/api/custom_api.rb +14 -0
- data/examples/api/domain.rb +14 -7
- data/examples/api/email/attachments.rb +28 -0
- data/examples/api/email/multiple_recipients.rb +24 -0
- data/examples/api/email/send.rb +25 -0
- data/examples/api/email/settings.rb +41 -0
- data/examples/api/email/subscribe.rb +14 -0
- data/examples/api/email/template.rb +26 -0
- data/examples/api/event_dump.rb +44 -0
- data/examples/api/project.rb +30 -23
- data/examples/api/suppression.rb +34 -0
- data/examples/api/system.rb +6 -6
- data/examples/api/tag.rb +15 -0
- data/examples/api/template.rb +40 -28
- data/examples/api/unsubscribed.rb +17 -11
- data/examples/api/webhook.rb +28 -25
- data/examples/helpers.rb +29 -0
- data/examples/send_mail.rb +44 -0
- data/examples/setup.rb +21 -14
- data/lib/unione/client/domain.rb +21 -45
- data/lib/unione/client/email.rb +16 -15
- data/lib/unione/client/event_dump.rb +37 -0
- data/lib/unione/client/project.rb +19 -61
- data/lib/unione/client/suppression.rb +38 -0
- data/lib/unione/client/system.rb +12 -17
- data/lib/unione/client/tag.rb +24 -0
- data/lib/unione/client/template.rb +19 -66
- data/lib/unione/client/unsubscribed.rb +18 -31
- data/lib/unione/client/webhook.rb +19 -65
- data/lib/unione/client.rb +33 -11
- data/lib/unione/connection.rb +7 -3
- data/lib/unione/helpers.rb +22 -0
- data/lib/unione/response/raise_error.rb +4 -5
- data/lib/unione/validation.rb +34 -9
- data/lib/unione/version.rb +1 -1
- data/lib/unione-ruby.rb +0 -3
- data/test/CONFIGFILE.yml +71 -0
- data/unione-ruby.gemspec +2 -2
- metadata +32 -10
- data/examples/api/email.rb +0 -51
- data/examples/sending_mail.rb +0 -32
- data/lib/unione/helpers/mail/mail.rb +0 -42
- data/lib/unione/helpers/template/template.rb +0 -32
- data/lib/unione/helpers/webhook/webhook.rb +0 -18
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unione-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- UniOne developer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '4.0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '4.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: hashie
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,31 +103,53 @@ files:
|
|
103
103
|
- LICENSE
|
104
104
|
- README.md
|
105
105
|
- Rakefile
|
106
|
+
- config/response_schema/domain.yml
|
107
|
+
- config/response_schema/email.yml
|
108
|
+
- config/response_schema/event_dump.yml
|
109
|
+
- config/response_schema/project.yml
|
110
|
+
- config/response_schema/suppression.yml
|
111
|
+
- config/response_schema/system.yml
|
112
|
+
- config/response_schema/tag.yml
|
113
|
+
- config/response_schema/template.yml
|
114
|
+
- config/response_schema/unsubscribed.yml
|
115
|
+
- config/response_schema/webhook.yml
|
116
|
+
- examples/api/custom_api.rb
|
106
117
|
- examples/api/domain.rb
|
107
|
-
- examples/api/email.rb
|
118
|
+
- examples/api/email/attachments.rb
|
119
|
+
- examples/api/email/multiple_recipients.rb
|
120
|
+
- examples/api/email/send.rb
|
121
|
+
- examples/api/email/settings.rb
|
122
|
+
- examples/api/email/subscribe.rb
|
123
|
+
- examples/api/email/template.rb
|
124
|
+
- examples/api/event_dump.rb
|
108
125
|
- examples/api/project.rb
|
126
|
+
- examples/api/suppression.rb
|
109
127
|
- examples/api/system.rb
|
128
|
+
- examples/api/tag.rb
|
110
129
|
- examples/api/template.rb
|
111
130
|
- examples/api/unsubscribed.rb
|
112
131
|
- examples/api/webhook.rb
|
113
|
-
- examples/
|
132
|
+
- examples/helpers.rb
|
133
|
+
- examples/send_mail.rb
|
114
134
|
- examples/setup.rb
|
115
135
|
- lib/unione-ruby.rb
|
116
136
|
- lib/unione/client.rb
|
117
137
|
- lib/unione/client/domain.rb
|
118
138
|
- lib/unione/client/email.rb
|
139
|
+
- lib/unione/client/event_dump.rb
|
119
140
|
- lib/unione/client/project.rb
|
141
|
+
- lib/unione/client/suppression.rb
|
120
142
|
- lib/unione/client/system.rb
|
143
|
+
- lib/unione/client/tag.rb
|
121
144
|
- lib/unione/client/template.rb
|
122
145
|
- lib/unione/client/unsubscribed.rb
|
123
146
|
- lib/unione/client/webhook.rb
|
124
147
|
- lib/unione/connection.rb
|
125
|
-
- lib/unione/helpers
|
126
|
-
- lib/unione/helpers/template/template.rb
|
127
|
-
- lib/unione/helpers/webhook/webhook.rb
|
148
|
+
- lib/unione/helpers.rb
|
128
149
|
- lib/unione/response/raise_error.rb
|
129
150
|
- lib/unione/validation.rb
|
130
151
|
- lib/unione/version.rb
|
152
|
+
- test/CONFIGFILE.yml
|
131
153
|
- unione-ruby.gemspec
|
132
154
|
homepage: https://github.com/unione-repo/unione-ruby
|
133
155
|
licenses:
|
@@ -141,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
163
|
requirements:
|
142
164
|
- - ">="
|
143
165
|
- !ruby/object:Gem::Version
|
144
|
-
version: '2.
|
166
|
+
version: '2.5'
|
145
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
168
|
requirements:
|
147
169
|
- - ">="
|
data/examples/api/email.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'unione-ruby'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
unione = UniOne::Client.new(data_center: 'eu1', lang: 'en', api_key: ENV['UNIONE_API_KEY'])
|
5
|
-
|
6
|
-
# sending mail
|
7
|
-
mail = UniOne::Mail.new
|
8
|
-
|
9
|
-
mail.subject = 'Email Subject'
|
10
|
-
mail.from = { from_email: 'test@qadns.net', from_name: 'userName' }
|
11
|
-
|
12
|
-
# Using body
|
13
|
-
mail.body = { html: '<b>Hello {{substitutionName}}</b>' }
|
14
|
-
|
15
|
-
# Using template
|
16
|
-
# mail.template = { template_engine: 'simple', template_id: 'template_id' }
|
17
|
-
|
18
|
-
substitutions = { 'substitutionName' => 'substitutionVal', to_name: 'Name Surname 1' }
|
19
|
-
recipient1 = { email: 'test1@example.com', substitutions: substitutions, metadata: { key1: 'val1' } }
|
20
|
-
mail.recipients << recipient1
|
21
|
-
|
22
|
-
substitutions = { 'substitutionName' => 'substitutionVal', to_name: 'Name Surname 2' }
|
23
|
-
recipient2 = { email: 'test2@example.com', substitutions: substitutions, metadata: { key1: 'val1' } }
|
24
|
-
mail.recipients << recipient2
|
25
|
-
|
26
|
-
mail.global_metadata = { key1: 'val1' }
|
27
|
-
mail.headers = { 'X-ReplyTo' => 'reply@qadns.net' }
|
28
|
-
mail.track = { track_links: 1, track_read: 1 }
|
29
|
-
mail.options = { unsubscribe_url: 'someurl' }
|
30
|
-
|
31
|
-
# Should have rights to use this option
|
32
|
-
# mail.skip_unsubscribe = 1
|
33
|
-
mail.force_send = 0
|
34
|
-
|
35
|
-
mail.attachments << { type: 'text/plain', name: 'myfile.txt', content: 'ZXhhbXBsZSBmaWxl' }
|
36
|
-
mail.inline_attachments << { type: 'image/png', name: 'IMAGECID', content: 'iVBORw0KGgo' }
|
37
|
-
|
38
|
-
puts mail.to_json
|
39
|
-
|
40
|
-
response = unione.send_email(mail.to_json)
|
41
|
-
|
42
|
-
puts response.status
|
43
|
-
puts response.body
|
44
|
-
puts response.headers
|
45
|
-
|
46
|
-
# subscribe email
|
47
|
-
response = unione.subscribe_email(
|
48
|
-
from_email: 'from@qadns.net',
|
49
|
-
from_name: 'Example Sender',
|
50
|
-
to_email: 'blackhole@example.com'
|
51
|
-
)
|
data/examples/sending_mail.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'unione-ruby'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
unione = UniOne::Client.new(data_center: 'eu1', lang: 'en', api_key: ENV['UNIONE_API_KEY'])
|
5
|
-
|
6
|
-
mail = UniOne::Mail.new
|
7
|
-
|
8
|
-
template_id = "bc0372d4-69f2-11eb-9d14-366b3a36c9e1"
|
9
|
-
mail.template = { template_engine: 'simple', template_id: template_id }
|
10
|
-
|
11
|
-
mail.from = { from_email: 'test@qadns.net', from_name: 'userName' }
|
12
|
-
|
13
|
-
substitutions = { 'substitutionName' => 'substitutionVal', to_name: 'Name Surname 1' }
|
14
|
-
recipient = { email: 'test1@example.com', substitutions: substitutions, metadata: { key1: 'val1' } }
|
15
|
-
mail.recipients << recipient
|
16
|
-
|
17
|
-
substitutions = { 'substitutionName' => 'substitutionVal', to_name: 'Name Surname 2' }
|
18
|
-
recipient = { email: 'test2@example.com', substitutions: substitutions, metadata: { key1: 'val1' } }
|
19
|
-
mail.recipients << recipient
|
20
|
-
|
21
|
-
mail.global_metadata = { key1: 'val1' }
|
22
|
-
mail.headers = { 'X-ReplyTo' => 'reply@example.com' }
|
23
|
-
mail.options = { unsubscribe_url: 'someurl' }
|
24
|
-
|
25
|
-
mail.attachments << { type: 'text/plain', name: 'myfile.txt', content: 'ZXhhbXBsZSBmaWxl' }
|
26
|
-
mail.inline_attachments << { type: 'image/png', name: 'IMAGECID', content: 'iVBORw0KGgo' }
|
27
|
-
|
28
|
-
response = unione.send_email(mail.to_json)
|
29
|
-
|
30
|
-
puts response.status
|
31
|
-
puts response.body.to_h
|
32
|
-
puts response.headers
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module UniOne
|
2
|
-
class Mail
|
3
|
-
attr_accessor :template, :body, :track, :from, :subject, :global_metadata, :headers, :options,
|
4
|
-
:global_substitutions, :recipients, :attachments, :inline_attachments,
|
5
|
-
:reply_to, :skip_unsubscribe, :force_send
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@template = {}
|
9
|
-
@from = {}
|
10
|
-
@track = {}
|
11
|
-
@global_substitutions = {}
|
12
|
-
@recipients = []
|
13
|
-
@attachments = []
|
14
|
-
@inline_attachments = []
|
15
|
-
end
|
16
|
-
|
17
|
-
# backward compatibility
|
18
|
-
alias_method :"metadata=", :"global_metadata="
|
19
|
-
|
20
|
-
def to_json(*)
|
21
|
-
{
|
22
|
-
message: {
|
23
|
-
global_substitutions: self.global_substitutions,
|
24
|
-
body: self.body,
|
25
|
-
subject: self.subject,
|
26
|
-
reply_to: self.reply_to,
|
27
|
-
recipients: self.recipients,
|
28
|
-
global_metadata: self.global_metadata,
|
29
|
-
headers: self.headers,
|
30
|
-
attachments: self.attachments,
|
31
|
-
inline_attachments: self.inline_attachments,
|
32
|
-
options: self.options,
|
33
|
-
skip_unsubscribe: self.skip_unsubscribe,
|
34
|
-
force_send: self.force_send
|
35
|
-
}.merge(self.template)
|
36
|
-
.merge(self.from)
|
37
|
-
.merge(self.track)
|
38
|
-
.delete_if { |_, value| value.to_s.strip == '' || value == [] || value == {}}
|
39
|
-
}
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module UniOne
|
2
|
-
class Template
|
3
|
-
attr_accessor :name, :editor_type, :subject, :template_engine, :global_substitutions, :from,
|
4
|
-
:headers, :body, :attachments, :inline_attachments, :options
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@global_substitutions = {}
|
8
|
-
@from = {}
|
9
|
-
@attachments = []
|
10
|
-
@inline_attachments = []
|
11
|
-
end
|
12
|
-
|
13
|
-
def to_json(*)
|
14
|
-
{
|
15
|
-
template: {
|
16
|
-
id: '',
|
17
|
-
name: self.name,
|
18
|
-
editor_type: self.editor_type,
|
19
|
-
subject: self.subject,
|
20
|
-
template_engine: self.template_engine,
|
21
|
-
global_substitutions: self.global_substitutions,
|
22
|
-
headers: self.headers,
|
23
|
-
body: self.body,
|
24
|
-
attachments: self.attachments,
|
25
|
-
inline_attachments: self.inline_attachments,
|
26
|
-
options: self.options
|
27
|
-
}.merge(self.from)
|
28
|
-
.delete_if { |_, value| value.to_s.strip == '' || value == [] || value == {}}
|
29
|
-
}
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module UniOne
|
2
|
-
class Webhook
|
3
|
-
attr_accessor :url, :status, :settings, :events
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@settings = {}
|
7
|
-
end
|
8
|
-
|
9
|
-
def to_json(*)
|
10
|
-
{
|
11
|
-
url: self.url,
|
12
|
-
status: self.status,
|
13
|
-
events: self.events
|
14
|
-
}.merge(self.settings)
|
15
|
-
.delete_if { |_, value| value.to_s.strip == '' || value == [] || value == {}}
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|