alphamail 1.0.1.pre → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/alphamail.rb +30 -8
  2. data/spec/alphamail_test.rb +35 -12
  3. metadata +4 -5
@@ -5,7 +5,7 @@ require 'net/http'
5
5
  require 'json'
6
6
 
7
7
  # Email contact class
8
- class EmailContact
8
+ class AlphaMailEmailContact
9
9
  attr_accessor :name
10
10
  attr_accessor :email
11
11
 
@@ -16,22 +16,27 @@ class EmailContact
16
16
  end
17
17
 
18
18
  # Message payload class
19
- class EmailMessagePayload
19
+ class AlphaMailEmailMessagePayload
20
20
  attr_accessor :project_id
21
21
  attr_accessor :receiver_id
22
22
  attr_accessor :sender
23
23
  attr_accessor :receiver
24
24
  attr_accessor :body
25
25
 
26
- def initialize(project_id = 0, receiver_id = 0, sender = EmailContact.new('', ''), receiver = EmailContact.new('', ''), body = '')
26
+ def initialize(project_id = 0, receiver_id = 0, sender = AlphaMailEmailContact.new('', ''), receiver = AlphaMailEmailContact.new('', ''), body = '')
27
27
  @project_id = project_id
28
28
  @receiver_id = receiver_id
29
29
  @sender = sender
30
30
  @receiver = receiver
31
31
  @body = body
32
+ @body_json = ''
32
33
  end
33
34
 
34
35
  def to_json(*a)
36
+ if @body.respond_to?('to_json')
37
+ @body_json = @body.to_json
38
+ end
39
+
35
40
  {
36
41
  'project_id' => project_id,
37
42
  'receiver_id' => receiver_id,
@@ -39,11 +44,20 @@ class EmailMessagePayload
39
44
  'sender_email' => sender.email,
40
45
  'receiver_name' => receiver.name,
41
46
  'receiver_email' => receiver.email,
42
- 'body' => body
47
+ 'body' => @body_json
43
48
 
44
49
  }.to_json(*a)
45
50
  end
51
+ end
46
52
 
53
+ class AlphaMailResult
54
+ attr_accessor :error_code
55
+ attr_accessor :message
56
+
57
+ def initialize(error_code = 0, message = '')
58
+ @error_code = error_code
59
+ @message = message
60
+ end
47
61
  end
48
62
 
49
63
  # Alpha-mail email service
@@ -60,12 +74,20 @@ class AlphaMailEmailService
60
74
  req.basic_auth '', @api_token
61
75
  req.body = payload.to_json
62
76
  req.content_type = 'application/json'
63
- res = Net::HTTP.start('api.am1.comfirm.se', uri.port) {|http|
77
+ res = Net::HTTP.start(uri.host, uri.port) {|http|
64
78
  http.request(req)
65
79
  }
66
- puts res.body
67
-
68
- puts 'Message was successfully queued!'
80
+
81
+ # Check response
82
+ case res.code
83
+ when '200' then
84
+ am_res = JSON.parse(res.body)
85
+ return AlphaMailResult.new(am_res['error_code'], am_res['message'])
86
+ else
87
+ am_res = JSON.parse(res.body)
88
+ return AlphaMailResult.new(am_res['error_code'], am_res['message'])
89
+ end
90
+ return AlphaMailResult.new(-1, 'Unknown error')
69
91
  end
70
92
  end
71
93
 
@@ -1,11 +1,11 @@
1
1
  require 'rubygems'
2
2
  require 'alphamail'
3
3
 
4
- class Member
4
+ class NewMember
5
5
  attr_accessor :name
6
6
  attr_accessor :password
7
7
 
8
- def initialize(name = 'Unknown', password = '')
8
+ def initialize(name = 'Unknown', password = 'unset1')
9
9
  @name = name
10
10
  @password = password
11
11
  end
@@ -19,15 +19,38 @@ class Member
19
19
  end
20
20
  end
21
21
 
22
- m = Member.new 'Jack', 'my3Pass0rd89'
22
+ # Demo 1 --------------------------------------------------
23
+
24
+ # The email content (in this case, member info)
25
+ myMember = NewMember.new('Ruby Diamond Ruben', 'my3Passw0rd89')
26
+
27
+ # The payload
28
+ myPayload = AlphaMailEmailMessagePayload.new
29
+
30
+ # Set payload fields
31
+ myPayload.project_id = 139
32
+ myPayload.receiver_id = 1
33
+ myPayload.sender.name = 'Jack Sender'
34
+ myPayload.sender.email = 'jack@example.com'
35
+ myPayload.receiver.name = 'John Doe'
36
+ myPayload.receiver.email = 'john.doe@example.com'
37
+ myPayload.body = myMember
38
+
39
+ myService = AlphaMailEmailService.new 'http://api.am1.comfirm.se/v1', 'YOUR-TOKEN-HERE'
40
+ am_res = myService.queue(myPayload)
41
+ puts "#{am_res.error_code} #{am_res.message}"
42
+
43
+
44
+ # Demo 2 ---------------------
45
+
46
+ # The payload
47
+ am_res = myService.queue(AlphaMailEmailMessagePayload.new(
48
+ 139, # Project ID
49
+ 2, # Sender ID
50
+ AlphaMailEmailContact.new('Jack Sender', 'jack@example.com'), # Sender
51
+ AlphaMailEmailContact.new('John Doe', 'john.doe@example.com'), # Receiver
52
+ NewMember.new('John Doe', 'wh4tswhAt') # Body object
53
+ ))
54
+ puts "#{am_res.error_code} #{am_res.message}"
23
55
 
24
- a = EmailMessagePayload.new
25
- a.project_id = 139
26
- a.sender.name = 'Jack'
27
- a.sender.email = 'jack.johansson@comfirm.se'
28
- a.receiver.name = 'Timothy'
29
- a.receiver.email = 'jack@skysel.com'
30
- a.body = m.to_json
31
56
 
32
- service = AlphaMailEmailService.new 'http://api.am1.comfirm.se/v1', '4e8c684c47a2f0-50424246'
33
- service.queue(a)
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alphamail
3
3
  version: !ruby/object:Gem::Version
4
- hash: 961915984
5
- prerelease: true
4
+ hash: 17
5
+ prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- - pre
11
- version: 1.0.1.pre
9
+ - 3
10
+ version: 1.0.3
12
11
  platform: ruby
13
12
  authors:
14
13
  - Jack Engqvist Johansson