Skip to content

Commit 9569b7e

Browse files
author
marcel corso gonzalez
authored
Merge pull request #62 from gabrielso/3.0.0-rc.1
Adds support to Verify emails, fixes `verify_delete` method
2 parents ef9455b + 8624d74 commit 9569b7e

15 files changed

+262
-95
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
.DS_Store
12
*.gem
2-
Gemfile.lock
3+
/Gemfile.lock
4+
.rbenv-gemsets
5+
.ruby-version

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
AllCops:
2-
TargetRubyVersion: 2.7
2+
TargetRubyVersion: 2.6.7
33
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
44
# to ignore them, so only the ones explicitly set in this file are enabled.
55
# DisabledByDefault: true

Gemfile.lock

Lines changed: 0 additions & 60 deletions
This file was deleted.

examples/verify.rb

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
5+
require 'messagebird'
6+
7+
# ACCESS_KEY = ''
8+
# VERIFY_ID = ''
9+
10+
unless defined?(ACCESS_KEY)
11+
puts 'You need to set an ACCESS_KEY constant in this file'
12+
exit 1
13+
end
14+
15+
unless defined?(VERIFY_ID)
16+
puts 'You need to set a VERIFY_ID constant in this file'
17+
exit 1
18+
end
19+
20+
begin
21+
# Create a MessageBird client with the specified ACCESS_KEY.
22+
client = MessageBird::Client.new(ACCESS_KEY)
23+
24+
# Generate a new OTP message using an email as recipient
25+
otp = client.verify(VERIFY_ID)
26+
27+
# Print the object information.
28+
puts
29+
puts 'The following information was returned as an OTP object:'
30+
puts
31+
puts " id : #{otp.id}"
32+
puts " href : #{otp.href}"
33+
puts " recipient : #{otp.recipient}"
34+
puts " reference : #{otp.reference}"
35+
puts " messages : #{otp.messages}"
36+
puts " status : #{otp.status}"
37+
puts " createdDatetime : #{otp.created_datetime}"
38+
puts " validUntilDatetime : #{otp.valid_until_datetime}"
39+
puts
40+
rescue MessageBird::ErrorException => e
41+
puts
42+
puts 'An error occured while requesting an OTP object:'
43+
puts
44+
45+
e.errors.each do |error|
46+
puts " code : #{error.code}"
47+
puts " description : #{error.description}"
48+
puts " parameter : #{error.parameter}"
49+
puts
50+
end
51+
end

examples/verify_create.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
55
require 'messagebird'
66

7-
ACCESS_KEY = ''
7+
# ACCESS_KEY = ''
88

99
unless defined?(ACCESS_KEY)
1010
puts 'You need to set an ACCESS_KEY constant in this file'
@@ -23,12 +23,13 @@
2323
puts 'The following information was returned as an OTP object:'
2424
puts
2525
puts " id : #{otp.id}"
26+
puts " href : #{otp.href}"
2627
puts " recipient : #{otp.recipient}"
2728
puts " reference : #{otp.reference}"
29+
puts " messages : #{otp.messages}"
2830
puts " status : #{otp.status}"
29-
puts " href : #{otp.href}"
3031
puts " createdDatetime : #{otp.created_datetime}"
31-
puts " validUntilDatetime : #{otp.valid_until_date_time}"
32+
puts " validUntilDatetime : #{otp.valid_until_datetime}"
3233
puts
3334
rescue MessageBird::ErrorException => e
3435
puts

examples/verify_create_email.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
5+
require 'messagebird'
6+
7+
# ACCESS_KEY = ''
8+
9+
unless defined?(ACCESS_KEY)
10+
puts 'You need to set an ACCESS_KEY constant in this file'
11+
exit 1
12+
end
13+
14+
begin
15+
# Create a MessageBird client with the specified ACCESS_KEY.
16+
client = MessageBird::Client.new(ACCESS_KEY)
17+
18+
# Generate a new OTP message using an email as recipient
19+
otp = client.verify_create('Recipient Name <[email protected]>', # RECIPIENT EMAIL HERE
20+
originator: '[email protected]', # SENDER EMAIL HERE
21+
type: 'email',
22+
subject: 'Your Verify test token',
23+
template: '%token - Use this code to validate your Verify token.',
24+
reference: 'MessageBirdReference')
25+
26+
# Print the object information.
27+
puts
28+
puts 'The following information was returned as an OTP object:'
29+
puts
30+
puts " id : #{otp.id}"
31+
puts " href : #{otp.href}"
32+
puts " recipient : #{otp.recipient}"
33+
puts " reference : #{otp.reference}"
34+
puts " messages : #{otp.messages}"
35+
puts " status : #{otp.status}"
36+
puts " createdDatetime : #{otp.created_datetime}"
37+
puts " validUntilDatetime : #{otp.valid_until_datetime}"
38+
puts
39+
rescue MessageBird::ErrorException => e
40+
puts
41+
puts 'An error occured while requesting an OTP object:'
42+
puts
43+
44+
e.errors.each do |error|
45+
puts " code : #{error.code}"
46+
puts " description : #{error.description}"
47+
puts " parameter : #{error.parameter}"
48+
puts
49+
end
50+
end

examples/verify_delete.rb

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
5+
require 'messagebird'
6+
7+
# ACCESS_KEY = ''
8+
# VERIFY_ID = ''
9+
10+
unless defined?(ACCESS_KEY)
11+
puts 'You need to set an ACCESS_KEY constant in this file'
12+
exit 1
13+
end
14+
15+
unless defined?(VERIFY_ID)
16+
puts 'You need to set a VERIFY_ID constant in this file'
17+
exit 1
18+
end
19+
20+
begin
21+
# Create a MessageBird client with the specified ACCESS_KEY.
22+
client = MessageBird::Client.new(ACCESS_KEY)
23+
24+
# Delete the verify
25+
client.verify_delete(VERIFY_ID)
26+
27+
# Print the object information.
28+
puts
29+
puts 'Success. The delete method has empty return.'
30+
puts
31+
rescue MessageBird::ErrorException => e
32+
puts
33+
puts 'An error occured while requesting an OTP object:'
34+
puts
35+
36+
e.errors.each do |error|
37+
puts " code : #{error.code}"
38+
puts " description : #{error.description}"
39+
puts " parameter : #{error.parameter}"
40+
puts
41+
end
42+
end

examples/verify_email_message.rb

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
5+
require 'messagebird'
6+
7+
# ACCESS_KEY = ''
8+
# MESSAGE_ID = ''
9+
10+
unless defined?(ACCESS_KEY)
11+
puts 'You need to set an ACCESS_KEY constant in this file'
12+
exit 1
13+
end
14+
15+
unless defined?(MESSAGE_ID)
16+
puts 'You need to set a MESSAGE_ID constant in this file'
17+
exit 1
18+
end
19+
20+
begin
21+
# Create a MessageBird client with the specified ACCESS_KEY.
22+
client = MessageBird::Client.new(ACCESS_KEY)
23+
24+
# Generate a new OTP message using an email as recipient
25+
verify_message = client.verify_email_message(MESSAGE_ID)
26+
27+
# Print the object information.
28+
puts
29+
puts 'The following information was returned as Verify Email Message object:'
30+
puts
31+
puts " id : #{verify_message.id}"
32+
puts " status : #{verify_message.status}"
33+
puts
34+
rescue MessageBird::ErrorException => e
35+
puts
36+
puts 'An error occured while requesting an OTP object:'
37+
puts
38+
39+
e.errors.each do |error|
40+
puts " code : #{error.code}"
41+
puts " description : #{error.description}"
42+
puts " parameter : #{error.parameter}"
43+
puts
44+
end
45+
end

examples/verify_token.rb

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
55
require 'messagebird'
66

7-
ACCESS_KEY = ''
8-
VERIFY_ID = ''
9-
TOKEN = ''
7+
# ACCESS_KEY = ''
8+
# VERIFY_ID = ''
9+
# TOKEN = ''
1010

1111
unless defined?(ACCESS_KEY)
1212
puts 'You need to set an ACCESS_KEY constant in this file'
@@ -35,12 +35,13 @@
3535
puts 'The following information was returned as an OTP object:'
3636
puts
3737
puts " id : #{otp.id}"
38+
puts " href : #{otp.href}"
3839
puts " recipient : #{otp.recipient}"
3940
puts " reference : #{otp.reference}"
41+
puts " messages : #{otp.messages}"
4042
puts " status : #{otp.status}"
41-
puts " href : #{otp.href}"
4243
puts " createdDatetime : #{otp.created_datetime}"
43-
puts " validUntilDatetime : #{otp.valid_until_date_time}"
44+
puts " validUntilDatetime : #{otp.valid_until_datetime}"
4445
puts
4546
rescue MessageBird::ErrorException => e
4647
puts

lib/messagebird/client.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
require 'messagebird/number'
2121
require 'messagebird/number_client'
2222
require 'messagebird/verify'
23+
require 'messagebird/verify_email_message'
2324
require 'messagebird/voice/client'
2425
require 'messagebird/voice/list'
2526
require 'messagebird/voice/webhook'
@@ -77,7 +78,7 @@ def voice_request(method, path, params = {})
7778

7879
def request(method, path, params = {})
7980
response_body = @http_client.request(method, path, params)
80-
return if response_body.empty?
81+
return if response_body.nil? || response_body.empty?
8182

8283
parse_body(response_body)
8384
end
@@ -207,6 +208,11 @@ def verify(id)
207208
Verify.new(request(:get, "verify/#{id}"))
208209
end
209210

211+
# Retrieve the information of specific Verify email message
212+
def verify_email_message(id)
213+
VerifyEmailMessage.new(request(:get, "verify/messages/email/#{id}"))
214+
end
215+
210216
# Generate a new One-Time-Password message.
211217
def verify_create(recipient, params = {})
212218
Verify.new(request(
@@ -221,9 +227,9 @@ def verify_token(id, token)
221227
Verify.new(request(:get, "verify/#{id}?token=#{token}"))
222228
end
223229

224-
# Delete a Verify
230+
# Delete a Verify, response is empty
225231
def verify_delete(id)
226-
Verify.new(request(:delete, "verify/#{id}"))
232+
request(:delete, "verify/#{id}")
227233
end
228234

229235
# Retrieve the information of specific message.

lib/messagebird/verify.rb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
# frozen_string_literal: true
22

33
require 'time'
4-
54
require 'messagebird/base'
65

76
module MessageBird
87
class Verify < MessageBird::Base
9-
attr_accessor :id, :recipient, :reference, :status, :href
10-
attr_reader :created_datetime, :valid_until_date_time
8+
attr_accessor :id,
9+
:href,
10+
:recipient,
11+
:reference,
12+
:messages,
13+
:status
14+
attr_reader :created_datetime,
15+
:valid_until_datetime
1116

1217
def created_datetime=(value)
1318
@created_datetime = value_to_time(value)
1419
end
1520

16-
def valid_until_date_time=(value)
17-
@valid_until_date_time = value_to_time(value)
21+
def valid_until_datetime=(value)
22+
@valid_until_datetime = value_to_time(value)
1823
end
1924
end
2025
end

0 commit comments

Comments
 (0)