mailup 1.1.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 +7 -0
- data/.gitignore +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +79 -0
- data/Rakefile +7 -0
- data/lib/mailup.rb +206 -0
- data/lib/mailup/console/base.rb +115 -0
- data/lib/mailup/console/email.rb +35 -0
- data/lib/mailup/console/group.rb +111 -0
- data/lib/mailup/console/images.rb +69 -0
- data/lib/mailup/console/import.rb +38 -0
- data/lib/mailup/console/list.rb +863 -0
- data/lib/mailup/console/recipient.rb +69 -0
- data/lib/mailup/console/user.rb +77 -0
- data/lib/mailup/errors.rb +18 -0
- data/lib/mailup/public/base.rb +18 -0
- data/lib/mailup/public/console.rb +75 -0
- data/lib/mailup/stats/base.rb +41 -0
- data/lib/mailup/stats/message.rb +284 -0
- data/lib/mailup/stats/recipient.rb +303 -0
- data/lib/mailup/version.rb +4 -0
- data/mailup.gemspec +25 -0
- data/rails/init.rb +1 -0
- data/spec/mailup/console/base_spec.rb +33 -0
- data/spec/mailup/console/email_spec.rb +19 -0
- data/spec/mailup/console/group_spec.rb +42 -0
- data/spec/mailup/console/images_spec.rb +29 -0
- data/spec/mailup/console/import_spec.rb +17 -0
- data/spec/mailup/console/list_spec.rb +164 -0
- data/spec/mailup/console/recipient_spec.rb +11 -0
- data/spec/mailup/console/user_spec.rb +16 -0
- data/spec/mailup/mailup_spec.rb +36 -0
- data/spec/mailup/public/base_spec.rb +22 -0
- data/spec/mailup/public/console_spec.rb +24 -0
- data/spec/mailup/stats/base_spec.rb +22 -0
- data/spec/mailup/stats/message_spec.rb +35 -0
- data/spec/mailup/stats/recipient_spec.rb +40 -0
- data/spec/spec_helper.rb +37 -0
- metadata +138 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
module MailUp
|
2
|
+
module Console
|
3
|
+
class Recipient
|
4
|
+
attr_accessor :api
|
5
|
+
|
6
|
+
def initialize(api)
|
7
|
+
@api = api
|
8
|
+
end
|
9
|
+
|
10
|
+
# Update a recipient with the specified details into address book.
|
11
|
+
#
|
12
|
+
# @param [Hash] recipient A hash of recipient attributes:
|
13
|
+
# @option recipient [String] :Name of the recipient (required).
|
14
|
+
# @option recipient [String] :Email of the recipient (required).
|
15
|
+
# @option recipient [String] :MobilePrefix of the recipient.
|
16
|
+
# @option recipient [String] :MobileNumber of the recipient.
|
17
|
+
# @option recipient [Array] :Fields to include.
|
18
|
+
#
|
19
|
+
# @return [JSON] The updated Recipient object with the following attributes:
|
20
|
+
# * idRecipient [Integer]
|
21
|
+
# * Name [String]
|
22
|
+
# * Email [String]
|
23
|
+
# * MobilePrefix [String]
|
24
|
+
# * MobileNumber [String]
|
25
|
+
# * Fields [Array]
|
26
|
+
#
|
27
|
+
# @see http://help.mailup.com/display/mailupapi/Console+methods+v1.1#Consolemethodsv1.1-UpdateRecipientDetail
|
28
|
+
#
|
29
|
+
# @example
|
30
|
+
#
|
31
|
+
# recipient = {
|
32
|
+
# :Name => "Joe Public",
|
33
|
+
# :Email => "joe@public.com"
|
34
|
+
# }
|
35
|
+
# updated_recipient = mailup.console.recipient.update(recipient)
|
36
|
+
# updated_recipient.Name
|
37
|
+
# => "Joe Public"
|
38
|
+
#
|
39
|
+
def update(recipient)
|
40
|
+
@api.put("#{@api.path}/Recipient/Detail", body: recipient)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Retrieve recipient dynamic field definitions.
|
44
|
+
#
|
45
|
+
# @return [JSON] Results and data including:
|
46
|
+
# * IsPaginated [Boolean]
|
47
|
+
# * Items [Array<Hash>]
|
48
|
+
# * PageNumber [Integer]
|
49
|
+
# * PageSize [Integer]
|
50
|
+
# * Skipped [Integer]
|
51
|
+
# * TotalElementsCount [Integer]
|
52
|
+
#
|
53
|
+
# @see http://help.mailup.com/display/mailupapi/Console+methods+v1.1#Consolemethodsv1.1-GetDynamicFields
|
54
|
+
#
|
55
|
+
# @example
|
56
|
+
#
|
57
|
+
# fields = mailup.console.recipient.fields
|
58
|
+
# fields.size
|
59
|
+
# => 10
|
60
|
+
# fields['Items'].first['Description']
|
61
|
+
# => "Field description..."
|
62
|
+
#
|
63
|
+
def fields
|
64
|
+
@api.get("#{@api.path}/Recipient/DynamicFields")
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module MailUp
|
2
|
+
module Console
|
3
|
+
class User
|
4
|
+
attr_accessor :api
|
5
|
+
|
6
|
+
def initialize(api)
|
7
|
+
@api = api
|
8
|
+
end
|
9
|
+
|
10
|
+
# Retrieve the admin console lists for the current user.
|
11
|
+
#
|
12
|
+
# @param [Hash] params Optional params or filters:
|
13
|
+
# @option params [Integer] :pageNumber The page number to return.
|
14
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
15
|
+
# @option params [String] :filterby A filtering expression.
|
16
|
+
# @option params [String] :orderby The sorting condition for the results.
|
17
|
+
#
|
18
|
+
# @return [JSON] Results and data including:
|
19
|
+
# * IsPaginated [Boolean]
|
20
|
+
# * Items [Array<Hash>]
|
21
|
+
# * PageNumber [Integer]
|
22
|
+
# * PageSize [Integer]
|
23
|
+
# * Skipped [Integer]
|
24
|
+
# * TotalElementsCount [Integer]
|
25
|
+
#
|
26
|
+
# @see http://help.mailup.com/display/mailupapi/Console+methods+v1.1#Consolemethodsv1.1-GetConsoleListsByUser
|
27
|
+
#
|
28
|
+
# @example
|
29
|
+
#
|
30
|
+
# lists = mailup.console.user.lists
|
31
|
+
# lists = mailup.console.user.lists
|
32
|
+
# lists['TotalElementsCount']
|
33
|
+
# => 10
|
34
|
+
# lists['Items'].first['Name']
|
35
|
+
# => "Test List"
|
36
|
+
#
|
37
|
+
# lists = mailup.console.user.lists(pageNumber: 0, pageSize: 250)
|
38
|
+
#
|
39
|
+
def lists(params = {})
|
40
|
+
@api.get("#{@api.path}/User/Lists", params: params)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Retrieve the email messages (cloned and not cloned) for the current user.
|
44
|
+
#
|
45
|
+
# @param [Hash] params Optional params or filters:
|
46
|
+
# @option params [Integer] :pageNumber The page number to return.
|
47
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
48
|
+
# @option params [String] :filterby A filtering expression.
|
49
|
+
# @option params [String] :orderby The sorting condition for the results.
|
50
|
+
#
|
51
|
+
# @return [JSON] Results and data including:
|
52
|
+
# * IsPaginated [Boolean]
|
53
|
+
# * Items [Array<Hash>]
|
54
|
+
# * PageNumber [Integer]
|
55
|
+
# * PageSize [Integer]
|
56
|
+
# * Skipped [Integer]
|
57
|
+
# * TotalElementsCount [Integer]
|
58
|
+
#
|
59
|
+
# @see http://help.mailup.com/display/mailupapi/Console+methods+v1.1#Consolemethodsv1.1-GetMailMessagesByUser
|
60
|
+
#
|
61
|
+
# @example
|
62
|
+
#
|
63
|
+
# emails = mailup.console.user.emails
|
64
|
+
# emails['TotalElementsCount']
|
65
|
+
# => 10
|
66
|
+
# emails['Items'].first['Subject']
|
67
|
+
# => "Test Subject"
|
68
|
+
#
|
69
|
+
# emails = mailup.console.user.emails(pageNumber: 0, pageSize: 1)
|
70
|
+
#
|
71
|
+
def emails(params={})
|
72
|
+
@api.get("#{@api.path}/User/Emails", params: params)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module MailUp
|
2
|
+
class Error < StandardError
|
3
|
+
end
|
4
|
+
class BadRequest < Error
|
5
|
+
end
|
6
|
+
class ClientError < Error
|
7
|
+
end
|
8
|
+
class NotFound < Error
|
9
|
+
end
|
10
|
+
class ServerError < Error
|
11
|
+
end
|
12
|
+
class TooManyRequests < Error
|
13
|
+
end
|
14
|
+
class Unauthorized < Error
|
15
|
+
end
|
16
|
+
class Unavailable < Error
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module MailUp
|
2
|
+
module Public
|
3
|
+
class Base
|
4
|
+
attr_accessor :api
|
5
|
+
|
6
|
+
def initialize(api) # :nodoc:
|
7
|
+
@api = api
|
8
|
+
@api.path = "/API/v#{MailUp::API_VERSION}/Rest/PublicService.svc"
|
9
|
+
end
|
10
|
+
|
11
|
+
# Resource nodes
|
12
|
+
def console
|
13
|
+
Console.new @api
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module MailUp
|
2
|
+
module Public
|
3
|
+
class Console
|
4
|
+
attr_accessor :api
|
5
|
+
|
6
|
+
def initialize(api)
|
7
|
+
@api = api
|
8
|
+
end
|
9
|
+
|
10
|
+
# Create a new trial console.
|
11
|
+
#
|
12
|
+
# @param [Hash] account A hash of account attributes.
|
13
|
+
# @option params [String] :NameAndSurname The company name.
|
14
|
+
# @option params [String] :Email The email address for the trial account.
|
15
|
+
# @option params [String] :Company The company name.
|
16
|
+
# @option params [String] :Language The account language.
|
17
|
+
# @option params [Boolean] :IsUSA Is this a US account?
|
18
|
+
# @option params [Boolean] :RegisterToNewsletter Does this account accept marketing?
|
19
|
+
#
|
20
|
+
# @return [JSON] The trial console including:
|
21
|
+
# * Hash [String]
|
22
|
+
# * Id [Integer]
|
23
|
+
#
|
24
|
+
# @see http://help.mailup.com/display/mailupapi/Public+methods+v1.1#Publicmethodsv1.1-RequestNewTrialConsole
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
#
|
28
|
+
# account = {
|
29
|
+
# NameAndSurname: "Joe Public",
|
30
|
+
# Email: "joe@public.com",
|
31
|
+
# Company: "ACME",
|
32
|
+
# PhoneNumber: "15555551212",
|
33
|
+
# Language: "En",
|
34
|
+
# IsUSA: true,
|
35
|
+
# RegisterToNewsletter: true
|
36
|
+
# }
|
37
|
+
# trial = mailup.public.console.new(account)
|
38
|
+
# trial['id']
|
39
|
+
# => 1329874
|
40
|
+
#
|
41
|
+
def new(account = {})
|
42
|
+
@api.post("#{@api.path}/Console/TrialActivation", body: account)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Retrieve the information about current trial activation status.
|
46
|
+
#
|
47
|
+
# @param [Hash] account A hash of account attributes.
|
48
|
+
# @option params [String] :Hash The Hash of the trial activation request.
|
49
|
+
# @option params [Integer] :Id The Id of the trial activation request.
|
50
|
+
#
|
51
|
+
# @return [JSON] An activation status object including:
|
52
|
+
# * Code [Integer]
|
53
|
+
# * Descriptin [String]
|
54
|
+
#
|
55
|
+
# @see http://help.mailup.com/display/mailupapi/Public+methods+v1.1#Publicmethodsv1.1-RequestTrialConsoleActivationStatus
|
56
|
+
#
|
57
|
+
# @example
|
58
|
+
#
|
59
|
+
# account = {
|
60
|
+
# Hash: "1k23hj432jh4kh3j24k",
|
61
|
+
# Id: "1324"
|
62
|
+
# }
|
63
|
+
# status = mailup.public.console.status(account)
|
64
|
+
# status['Code']
|
65
|
+
# => 1234
|
66
|
+
# status['Description']
|
67
|
+
# => "Status description..."
|
68
|
+
#
|
69
|
+
def status(account = {})
|
70
|
+
@api.post("#{@api.path}/Console/TrialActivationStatus", body: account)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module MailUp
|
2
|
+
module Stats
|
3
|
+
class Base
|
4
|
+
attr_accessor :api
|
5
|
+
|
6
|
+
def initialize(api) # :nodoc:
|
7
|
+
@api = api
|
8
|
+
@api.path = "/API/v#{MailUp::API_VERSION}/Rest/MailStatisticsService.svc"
|
9
|
+
end
|
10
|
+
|
11
|
+
# Create a message object
|
12
|
+
#
|
13
|
+
# @param [Integer] id The message_id of the message to access.
|
14
|
+
#
|
15
|
+
# @return [MailUp::Stats::Message]
|
16
|
+
#
|
17
|
+
# @example
|
18
|
+
#
|
19
|
+
# message = mailup.stats.message(1)
|
20
|
+
#
|
21
|
+
def message(id)
|
22
|
+
Message.new id, @api
|
23
|
+
end
|
24
|
+
|
25
|
+
# Create a recipient object
|
26
|
+
#
|
27
|
+
# @param [Integer] id The recipient_id of the recipient to access.
|
28
|
+
#
|
29
|
+
# @return [MailUp::Stats::Recipient]
|
30
|
+
#
|
31
|
+
# @example
|
32
|
+
#
|
33
|
+
# recipient = mailup.stats.recipient(154)
|
34
|
+
#
|
35
|
+
def recipient(id)
|
36
|
+
Recipient.new id, @api
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,284 @@
|
|
1
|
+
module MailUp
|
2
|
+
module Stats
|
3
|
+
class Message
|
4
|
+
attr_accessor :api
|
5
|
+
|
6
|
+
def initialize(id, api)
|
7
|
+
@api = api
|
8
|
+
@id = id
|
9
|
+
end
|
10
|
+
|
11
|
+
# Paged list of recipients who received the specified email.
|
12
|
+
#
|
13
|
+
# @param [Hash] params Optional params or filters:
|
14
|
+
# @option params [Integer] :pageNumber The page number to return.
|
15
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
16
|
+
# @option params [String] :filterby A filtering expression.
|
17
|
+
# @option params [String] :orderby The sorting condition for the results.
|
18
|
+
#
|
19
|
+
# @return [JSON] Results and data including:
|
20
|
+
# * IsPaginated [Boolean]
|
21
|
+
# * Items [Array<Hash>]
|
22
|
+
# * PageNumber [Integer]
|
23
|
+
# * PageSize [Integer]
|
24
|
+
# * Skipped [Integer]
|
25
|
+
# * TotalElementsCount [Integer]
|
26
|
+
#
|
27
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-ListMessageRecipients
|
28
|
+
#
|
29
|
+
# @example
|
30
|
+
#
|
31
|
+
# recipients = mailup.stats.message(9).recipients
|
32
|
+
# recipients['TotalElementsCount']
|
33
|
+
# => 10
|
34
|
+
# recipients['Items'].first['Email']
|
35
|
+
# => "joe@public.com"
|
36
|
+
#
|
37
|
+
def recipients(params = {})
|
38
|
+
@api.get("#{@api.path}/Message/#{@id}/List/Recipients", params: params)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Count of recipients who received the specified email.
|
42
|
+
#
|
43
|
+
#
|
44
|
+
# @return [Integer] Count of recipients.
|
45
|
+
#
|
46
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-CountMessageRecipients
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
#
|
50
|
+
# recipients = mailup.stats.message(9).recipients_count
|
51
|
+
# => 10
|
52
|
+
#
|
53
|
+
def recipients_count
|
54
|
+
@api.get("#{@api.path}/Message/#{@id}/Count/Recipients")
|
55
|
+
end
|
56
|
+
alias_method :received_count, :recipients_count
|
57
|
+
|
58
|
+
# Paged list of views of the specified email.
|
59
|
+
#
|
60
|
+
# @param [Hash] params Optional params or filters:
|
61
|
+
# @option params [Integer] :pageNumber The page number to return.
|
62
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
63
|
+
# @option params [String] :filterby A filtering expression.
|
64
|
+
# @option params [String] :orderby The sorting condition for the results.
|
65
|
+
#
|
66
|
+
# @return [JSON] Results and data including:
|
67
|
+
# * IsPaginated [Boolean]
|
68
|
+
# * Items [Array<Hash>]
|
69
|
+
# * PageNumber [Integer]
|
70
|
+
# * PageSize [Integer]
|
71
|
+
# * Skipped [Integer]
|
72
|
+
# * TotalElementsCount [Integer]
|
73
|
+
#
|
74
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-ListMessageViews
|
75
|
+
#
|
76
|
+
# @example
|
77
|
+
#
|
78
|
+
# views = mailup.stats.message(9).views
|
79
|
+
# views['TotalElementsCount']
|
80
|
+
# => 10
|
81
|
+
#
|
82
|
+
def views(params = {})
|
83
|
+
@api.get("#{@api.path}/Message/#{@id}/List/Views", params: params)
|
84
|
+
end
|
85
|
+
|
86
|
+
# Count of views of the specified email.
|
87
|
+
#
|
88
|
+
#
|
89
|
+
# @return [Integer] Count of views.
|
90
|
+
#
|
91
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-CountMessageViews
|
92
|
+
#
|
93
|
+
# @example
|
94
|
+
#
|
95
|
+
# views = mailup.stats.message(9).views_count
|
96
|
+
# => 3453
|
97
|
+
#
|
98
|
+
def views_count
|
99
|
+
@api.get("#{@api.path}/Message/#{@id}/Count/Views")
|
100
|
+
end
|
101
|
+
|
102
|
+
# Paged list of bounces from the specified email.
|
103
|
+
#
|
104
|
+
# @param [Hash] params Optional params or filters:
|
105
|
+
# @option params [Integer] :pageNumber The page number to return.
|
106
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
107
|
+
# @option params [String] :filterby A filtering expression.
|
108
|
+
# @option params [String] :orderby The sorting condition for the results.
|
109
|
+
#
|
110
|
+
# @return [JSON] Results and data including:
|
111
|
+
# * IsPaginated [Boolean]
|
112
|
+
# * Items [Array<Hash>]
|
113
|
+
# * PageNumber [Integer]
|
114
|
+
# * PageSize [Integer]
|
115
|
+
# * Skipped [Integer]
|
116
|
+
# * TotalElementsCount [Integer]
|
117
|
+
#
|
118
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-ListMessageBounces
|
119
|
+
#
|
120
|
+
# @example
|
121
|
+
#
|
122
|
+
# bounces = mailup.stats.message(9).bounces
|
123
|
+
# bounces['TotalElementsCount']
|
124
|
+
# => 10
|
125
|
+
#
|
126
|
+
def bounces(params = {})
|
127
|
+
@api.get("#{@api.path}/Message/#{@id}/List/Bounces", params: params)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Count of bounces from the specified mail.
|
131
|
+
#
|
132
|
+
#
|
133
|
+
# @return [Integer] Count of bounces.
|
134
|
+
#
|
135
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-CountMessageBounces
|
136
|
+
#
|
137
|
+
# @example
|
138
|
+
#
|
139
|
+
# bounces = mailup.stats.message(9).bounces_count
|
140
|
+
# => 3453
|
141
|
+
#
|
142
|
+
def bounces_count
|
143
|
+
@api.get("#{@api.path}/Message/#{@id}/Count/Bounces")
|
144
|
+
end
|
145
|
+
|
146
|
+
# Paged list of unsubscriptions from the specified email.
|
147
|
+
#
|
148
|
+
# @param [Hash] params Optional params or filters:
|
149
|
+
# @option params [Integer] :pageNumber The page number to return.
|
150
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
151
|
+
# @option params [String] :filterby A filtering expression.
|
152
|
+
# @option params [String] :orderby The sorting condition for the results.
|
153
|
+
#
|
154
|
+
# @return [JSON] Results and data including:
|
155
|
+
# * IsPaginated [Boolean]
|
156
|
+
# * Items [Array<Hash>]
|
157
|
+
# * PageNumber [Integer]
|
158
|
+
# * PageSize [Integer]
|
159
|
+
# * Skipped [Integer]
|
160
|
+
# * TotalElementsCount [Integer]
|
161
|
+
#
|
162
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-ListMessageUnsubscriptions
|
163
|
+
#
|
164
|
+
# @example
|
165
|
+
#
|
166
|
+
# unsubs = mailup.stats.message(9).unsubscribes
|
167
|
+
# unsubs['TotalElementsCount']
|
168
|
+
# => 10
|
169
|
+
#
|
170
|
+
def unsubscribes(params = {})
|
171
|
+
@api.get("#{@api.path}/Message/#{@id}/List/Unsubscriptions", params: params)
|
172
|
+
end
|
173
|
+
|
174
|
+
# Count of unsubscriptions from the specified email.
|
175
|
+
#
|
176
|
+
#
|
177
|
+
# @return [Integer] Count of unsubscribes.
|
178
|
+
#
|
179
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-CountMessageUnsubscriptions
|
180
|
+
#
|
181
|
+
# @example
|
182
|
+
#
|
183
|
+
# unsubs = mailup.stats.message(9).unsubscribes_count
|
184
|
+
# => 234
|
185
|
+
#
|
186
|
+
def unsubscribes_count
|
187
|
+
@api.get("#{@api.path}/Message/#{@id}/Count/Unsubscriptions")
|
188
|
+
end
|
189
|
+
|
190
|
+
# Paged list of clicks on a link in the specified email.
|
191
|
+
#
|
192
|
+
# @param [Hash] params Optional params or filters:
|
193
|
+
# @option params [Integer] :pageNumber The page number to return.
|
194
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
195
|
+
# @option params [String] :filterby A filtering expression.
|
196
|
+
# @option params [String] :orderby The sorting condition for the results.
|
197
|
+
#
|
198
|
+
# @return [JSON] Results and data including:
|
199
|
+
# * IsPaginated [Boolean]
|
200
|
+
# * Items [Array<Hash>]
|
201
|
+
# * PageNumber [Integer]
|
202
|
+
# * PageSize [Integer]
|
203
|
+
# * Skipped [Integer]
|
204
|
+
# * TotalElementsCount [Integer]
|
205
|
+
#
|
206
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-ListMessageClicks
|
207
|
+
#
|
208
|
+
# @example
|
209
|
+
#
|
210
|
+
# clicks = mailup.stats.message(9).clicks
|
211
|
+
# clicks['TotalElementsCount']
|
212
|
+
# => 10
|
213
|
+
# clicks['Items'].first['Count']
|
214
|
+
# => 3
|
215
|
+
#
|
216
|
+
def clicks(params = {})
|
217
|
+
@api.get("#{@api.path}/Message/#{@id}/List/Clicks", params: params)
|
218
|
+
end
|
219
|
+
|
220
|
+
# Count of clicks on a link in the specified email.
|
221
|
+
#
|
222
|
+
#
|
223
|
+
# @return [Integer] Count of bounces.
|
224
|
+
#
|
225
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-CountMessageClicks
|
226
|
+
#
|
227
|
+
# @example
|
228
|
+
#
|
229
|
+
# clicks = mailup.stats.message(9).clicks_count
|
230
|
+
# => 3453
|
231
|
+
#
|
232
|
+
def clicks_count
|
233
|
+
@api.get("#{@api.path}/Message/#{@id}/Count/Clicks")
|
234
|
+
end
|
235
|
+
|
236
|
+
# Paged list of clicks on a link in the specified email.
|
237
|
+
#
|
238
|
+
# @param [Hash] params Optional params or filters:
|
239
|
+
# @option params [Integer] :pageNumber The page number to return.
|
240
|
+
# @option params [Integer] :pageSize The number of results to per page.
|
241
|
+
# @option params [String] :filterby A filtering expression.
|
242
|
+
# @option params [String] :orderby The sorting condition for the results.
|
243
|
+
#
|
244
|
+
# @return [JSON] Results and data including:
|
245
|
+
# * IsPaginated [Boolean]
|
246
|
+
# * Items [Array<Hash>]
|
247
|
+
# * PageNumber [Integer]
|
248
|
+
# * PageSize [Integer]
|
249
|
+
# * Skipped [Integer]
|
250
|
+
# * TotalElementsCount [Integer]
|
251
|
+
#
|
252
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-ListMessageUrlClicks
|
253
|
+
#
|
254
|
+
# @example
|
255
|
+
#
|
256
|
+
# url_clicks = mailup.stats.message(9).url_clicks
|
257
|
+
# url_clicks['TotalElementsCount']
|
258
|
+
# => 10
|
259
|
+
# url_clicks['Items'].first['Count']
|
260
|
+
# => 3
|
261
|
+
#
|
262
|
+
def url_clicks(params = {})
|
263
|
+
@api.get("#{@api.path}/Message/#{@id}/List/UrlClicks", params: params)
|
264
|
+
end
|
265
|
+
|
266
|
+
# Count of clicks on a link in the specified email.
|
267
|
+
#
|
268
|
+
#
|
269
|
+
# @return [Integer] Count of bounces.
|
270
|
+
#
|
271
|
+
# @see http://help.mailup.com/display/mailupapi/Email+statistics+methods+v1.1#Emailstatisticsmethodsv1.1-CountMessageClicks
|
272
|
+
#
|
273
|
+
# @example
|
274
|
+
#
|
275
|
+
# url_clicks = mailup.stats.message(9).url_clicks_count
|
276
|
+
# => 3453
|
277
|
+
#
|
278
|
+
def url_clicks_count
|
279
|
+
@api.get("#{@api.path}/Message/#{@id}/Count/UrlClicks")
|
280
|
+
end
|
281
|
+
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|