mailjet 0.0.5 → 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 +81 -259
- data/Rakefile +5 -4
- data/lib/mailjet.rb +7 -11
- data/lib/mailjet/api_error.rb +9 -5
- data/lib/mailjet/collection_proxy.rb +15 -0
- data/lib/mailjet/configuration.rb +4 -8
- data/lib/mailjet/connection.rb +72 -0
- data/lib/mailjet/gem_extensions/rest_client.rb +19 -0
- data/lib/mailjet/mailer.rb +37 -2
- data/lib/mailjet/message_delivery.rb +9 -0
- data/lib/mailjet/reporting.rb +10 -7
- data/lib/mailjet/resource.rb +199 -0
- data/lib/mailjet/resources/apikey.rb +12 -0
- data/lib/mailjet/resources/apikeyaccess.rb +12 -0
- data/lib/mailjet/resources/apikeytotals.rb +14 -0
- data/lib/mailjet/resources/apitoken.rb +12 -0
- data/lib/mailjet/resources/batchjob.rb +12 -0
- data/lib/mailjet/resources/bouncestatistics.rb +14 -0
- data/lib/mailjet/resources/campaign.rb +12 -0
- data/lib/mailjet/resources/campaignstatistics.rb +14 -0
- data/lib/mailjet/resources/clickstatistics.rb +14 -0
- data/lib/mailjet/resources/contact.rb +12 -0
- data/lib/mailjet/resources/contactdata.rb +12 -0
- data/lib/mailjet/resources/contactfilter.rb +12 -0
- data/lib/mailjet/resources/contacthistorydata.rb +12 -0
- data/lib/mailjet/resources/contactmetadata.rb +12 -0
- data/lib/mailjet/resources/contactslist.rb +12 -0
- data/lib/mailjet/resources/contactslistsignup.rb +12 -0
- data/lib/mailjet/resources/contactstatistics.rb +14 -0
- data/lib/mailjet/resources/csvimport.rb +12 -0
- data/lib/mailjet/resources/domainstatistics.rb +14 -0
- data/lib/mailjet/resources/eventcallbackurl.rb +12 -0
- data/lib/mailjet/resources/geostatistics.rb +14 -0
- data/lib/mailjet/resources/graphstatistics.rb +14 -0
- data/lib/mailjet/resources/listrecipient.rb +12 -0
- data/lib/mailjet/resources/listrecipientstatistics.rb +14 -0
- data/lib/mailjet/resources/liststatistics.rb +14 -0
- data/lib/mailjet/resources/manycontacts.rb +12 -0
- data/lib/mailjet/resources/message.rb +12 -0
- data/lib/mailjet/resources/messagehistory.rb +14 -0
- data/lib/mailjet/resources/messageinformation.rb +14 -0
- data/lib/mailjet/resources/messagesentstatistics.rb +14 -0
- data/lib/mailjet/resources/messagestate.rb +12 -0
- data/lib/mailjet/resources/messagestatistics.rb +14 -0
- data/lib/mailjet/resources/metadata.rb +14 -0
- data/lib/mailjet/resources/metasender.rb +12 -0
- data/lib/mailjet/resources/myprofile.rb +12 -0
- data/lib/mailjet/resources/newsletter.rb +12 -0
- data/lib/mailjet/resources/newsletterblock.rb +12 -0
- data/lib/mailjet/resources/newsletterproperties.rb +12 -0
- data/lib/mailjet/resources/newslettertemplate.rb +12 -0
- data/lib/mailjet/resources/newslettertemplateblock.rb +12 -0
- data/lib/mailjet/resources/newslettertemplatecategory.rb +12 -0
- data/lib/mailjet/resources/newslettertemplateproperties.rb +12 -0
- data/lib/mailjet/resources/openinformation.rb +14 -0
- data/lib/mailjet/resources/openstatistics.rb +14 -0
- data/lib/mailjet/resources/parseroute.rb +12 -0
- data/lib/mailjet/resources/preferences.rb +12 -0
- data/lib/mailjet/resources/sender.rb +12 -0
- data/lib/mailjet/resources/senderstatistics.rb +14 -0
- data/lib/mailjet/resources/toplinkclicked.rb +14 -0
- data/lib/mailjet/resources/trigger.rb +12 -0
- data/lib/mailjet/resources/user.rb +12 -0
- data/lib/mailjet/resources/useragentstatistics.rb +14 -0
- data/lib/mailjet/resources/widget.rb +12 -0
- data/lib/mailjet/resources/widgetcustomvalue.rb +12 -0
- data/lib/mailjet/version.rb +1 -1
- metadata +155 -44
- data/lib/mailjet/api.rb +0 -20
- data/lib/mailjet/api_request.rb +0 -70
- data/lib/mailjet/campaign.rb +0 -67
- data/lib/mailjet/click.rb +0 -15
- data/lib/mailjet/contact.rb +0 -18
- data/lib/mailjet/email.rb +0 -4
- data/lib/mailjet/list.rb +0 -58
- data/lib/mailjet/template_category.rb +0 -13
- data/lib/mailjet/template_model.rb +0 -13
- data/test/mailjet/api_request_test.rb +0 -72
- data/test/mailjet/api_test.rb +0 -13
- data/test/mailjet/campaign_test.rb +0 -66
- data/test/mailjet/configuration_test.rb +0 -16
- data/test/mailjet/contact_test.rb +0 -24
- data/test/mailjet/list_test.rb +0 -67
- data/test/mailjet/rack/endpoint_test.rb +0 -30
- data/test/mailjet/reporting_test.rb +0 -26
- data/test/mailjet/template_category_test.rb +0 -13
- data/test/mailjet/template_model_test.rb +0 -13
- data/test/mailjet_test.rb +0 -17
- data/test/minitest_helper.rb +0 -22
data/lib/mailjet/api.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module Mailjet
|
2
|
-
class Api
|
3
|
-
def initialize(api_key = Mailjet.config.api_key, secret_key = Mailjet.config.secret_key)
|
4
|
-
@api_key = api_key
|
5
|
-
@secret_key = secret_key
|
6
|
-
end
|
7
|
-
|
8
|
-
def method_missing(method_name, *args, &block)
|
9
|
-
params, request_type = args
|
10
|
-
request = ApiRequest.new(method_name, params, request_type, @api_key, @secret_key)
|
11
|
-
request.response
|
12
|
-
end
|
13
|
-
|
14
|
-
class << self
|
15
|
-
def singleton
|
16
|
-
@@singleton ||= self.new
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/lib/mailjet/api_request.rb
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'active_support/core_ext/string'
|
3
|
-
require 'net/http'
|
4
|
-
require "net/https"
|
5
|
-
require 'json'
|
6
|
-
require 'cgi'
|
7
|
-
|
8
|
-
module Mailjet
|
9
|
-
class ApiRequest
|
10
|
-
MAILJET_HOST = 'api.mailjet.com'
|
11
|
-
|
12
|
-
def initialize(method_name, params = {}, request_type = nil, auth_user = Mailjet.config.api_key, auth_password = Mailjet.config.secret_key)
|
13
|
-
@method_name = method_name.to_s.camelize(:lower)
|
14
|
-
@params = (params || {}).merge(:output => 'json')
|
15
|
-
@request_type = (request_type || guess_request_type).camelize
|
16
|
-
@auth_user = auth_user
|
17
|
-
@auth_password = auth_password
|
18
|
-
end
|
19
|
-
|
20
|
-
def response
|
21
|
-
@response ||= begin
|
22
|
-
http = Net::HTTP.new(MAILJET_HOST, request_port)
|
23
|
-
http.use_ssl = Mailjet.config.use_https
|
24
|
-
res = http.request(request)
|
25
|
-
|
26
|
-
case res
|
27
|
-
when Net::HTTPSuccess
|
28
|
-
JSON.parse(res.body || '{}')
|
29
|
-
when Net::HTTPNotModified
|
30
|
-
{"status" => "NotModified"}
|
31
|
-
else
|
32
|
-
raise ApiError.new(res.code, JSON.parse(res.body.presence || '{}'), request, request_path, @params)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
def request
|
39
|
-
@request ||= begin
|
40
|
-
req = "Net::HTTP::#{@request_type}".constantize.new(request_path)
|
41
|
-
Net::HTTP::Get
|
42
|
-
req.basic_auth @auth_user, @auth_password
|
43
|
-
req.set_form_data(@params)
|
44
|
-
req
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def request_path
|
49
|
-
@request_path ||= begin
|
50
|
-
path = "/#{Mailjet.config.api_version}/#{@method_name}"
|
51
|
-
if @request_type == 'Get'
|
52
|
-
path << '?' + @params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&')
|
53
|
-
end
|
54
|
-
path
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def request_port
|
59
|
-
Mailjet.config.use_https ? 443 : 80
|
60
|
-
end
|
61
|
-
|
62
|
-
def guess_request_type
|
63
|
-
if @method_name =~ /(?:Create|Add|Remove|Delete|Update)(?:[A-Z]|$)/
|
64
|
-
'Post'
|
65
|
-
else
|
66
|
-
'Get'
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
data/lib/mailjet/campaign.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'mailjet/api'
|
2
|
-
require 'mailjet/list'
|
3
|
-
require 'mailjet/contact'
|
4
|
-
|
5
|
-
module Mailjet
|
6
|
-
class Campaign < OpenStruct
|
7
|
-
|
8
|
-
def update(options = {})
|
9
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageUpdatecampaign(options.reverse_merge(:id => self.id), 'Post')["status"]
|
10
|
-
end
|
11
|
-
|
12
|
-
def contacts(options = {})
|
13
|
-
((options.delete(:api) || Mailjet::Api.singleton).messageContacts(options.reverse_merge(:id => self.stats_campaign_id))["result"] || []).map do |contact|
|
14
|
-
Mailjet::Contact.new(contact)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def send!(options = {})
|
19
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageSendcampaign(options.reverse_merge(:id => self.id), 'Post')["status"]
|
20
|
-
end
|
21
|
-
|
22
|
-
def test(*params)
|
23
|
-
options = params.last.is_a?(Hash) ? params.pop : {}
|
24
|
-
email = params.first
|
25
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageTestcampaign(options.reverse_merge(:id => self.id, :email => email), 'Post')["status"]
|
26
|
-
end
|
27
|
-
|
28
|
-
def statistics(options = {})
|
29
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageStatistics(options.reverse_merge(:id => self.stats_campaign_id))["result"]
|
30
|
-
end
|
31
|
-
|
32
|
-
def html(options = {})
|
33
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageHtmlcampaign(options.reverse_merge(:id => self.id))["html"]
|
34
|
-
end
|
35
|
-
|
36
|
-
def set_html(*params)
|
37
|
-
options = params.extract_options!
|
38
|
-
html = params.first
|
39
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageSethtmlcampaign(options.reverse_merge(:id => self.id, :html => html), 'Post')["status"]
|
40
|
-
end
|
41
|
-
|
42
|
-
def duplicate(options = {})
|
43
|
-
new_id = (options.delete(:api) || Mailjet::Api.singleton).messageDuplicatecampaign(options.reverse_merge(:id => self.id), 'Post')['new_id']
|
44
|
-
self.class.new(:id => new_id)
|
45
|
-
end
|
46
|
-
|
47
|
-
class << self
|
48
|
-
def create(options = {})
|
49
|
-
campaign_attr = (options.delete(:api) || Mailjet::Api.singleton).messageCreatecampaign(options, 'Post')["campaign"]
|
50
|
-
campaign = find(campaign_attr["id"]).tap{ |c| campaign_attr.each{ |k, v| c.send("#{k}=", v) } }
|
51
|
-
campaign
|
52
|
-
end
|
53
|
-
|
54
|
-
def all(options = {})
|
55
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageCampaigns(options)["result"].map do |result_hash|
|
56
|
-
self.new(result_hash)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def find(*params)
|
61
|
-
options = params.last.is_a?(Hash) ? params.pop : {}
|
62
|
-
ids = params.flatten.map(&:to_s).reject(&:blank?)
|
63
|
-
self.all(options).find{|c| c.id.to_s.in?(ids)}
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
data/lib/mailjet/click.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'mailjet/api'
|
2
|
-
require 'mailjet/contact'
|
3
|
-
require 'mailjet/email'
|
4
|
-
|
5
|
-
module Mailjet
|
6
|
-
class Click < OpenStruct
|
7
|
-
def contact
|
8
|
-
Mailjet::Contact.new(:email => self.by_email, :id => self.by_id)
|
9
|
-
end
|
10
|
-
|
11
|
-
def email
|
12
|
-
Mailjet::Email.new(:id => self.email_id)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/mailjet/contact.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'mailjet/api'
|
2
|
-
|
3
|
-
module Mailjet
|
4
|
-
class Contact < OpenStruct
|
5
|
-
def infos(options = {})
|
6
|
-
(options.delete(:api) || Mailjet::Api.singleton).contactInfos(options.reverse_merge(:contact => (self.id || self.email)))["contact"]
|
7
|
-
end
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def all(options = {})
|
11
|
-
verb = options.delete(:openers) ? 'contactOpeners' : 'contactList'
|
12
|
-
(options.delete(:api) || Mailjet::Api.singleton).send(verb, options)["result"].map do |result_hash|
|
13
|
-
self.new(result_hash)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/lib/mailjet/email.rb
DELETED
data/lib/mailjet/list.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'mailjet/api'
|
2
|
-
require 'mailjet/contact'
|
3
|
-
|
4
|
-
module Mailjet
|
5
|
-
class List < OpenStruct
|
6
|
-
def update(options = {})
|
7
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsUpdate(options.reverse_merge(:id => self.id), 'Post')["status"]
|
8
|
-
end
|
9
|
-
|
10
|
-
def add_contacts(*params)
|
11
|
-
options = params.last.is_a?(Hash) ? params.pop : {}
|
12
|
-
contacts = params.map{|p| p.is_a?(Mailjet::Contact) ? p.email.to_s : p.to_s }.reject(&:blank?)
|
13
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsAddmanycontacts(options.reverse_merge(:contacts => contacts.to_json, :id => self.id), 'Post')["status"]
|
14
|
-
end
|
15
|
-
|
16
|
-
def unsubscribe_contact(*params)
|
17
|
-
options = params.last.is_a?(Hash) ? params.pop : {}
|
18
|
-
contact = params.map{|p| p.is_a?(Mailjet::Contact) ? p.email.to_s : p.to_s }.reject(&:blank?).first
|
19
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsUnsubcontact(options.reverse_merge(:contact => contact, :id => self.id), 'Post')["status"]
|
20
|
-
end
|
21
|
-
|
22
|
-
def remove_contacts(*params)
|
23
|
-
options = params.last.is_a?(Hash) ? params.pop : {}
|
24
|
-
contacts = params.map{|p| p.is_a?(Mailjet::Contact) ? p.email.to_s : p.to_s }.reject(&:blank?)
|
25
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsRemovemanycontacts(options.reverse_merge(:contacts => contacts.to_json, :id => self.id), 'Post')["status"]
|
26
|
-
end
|
27
|
-
|
28
|
-
def contacts(options = {})
|
29
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsContacts(options.reverse_merge(:id => self.id))["result"].map do |contact|
|
30
|
-
Mailjet::Contact.new(contact)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def email(options = {})
|
35
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsEmail(options.reverse_merge(:id => self.id))["email"]
|
36
|
-
end
|
37
|
-
|
38
|
-
def statistics(options = {})
|
39
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsStatistics(options.reverse_merge(:id => self.id))["statistics"]
|
40
|
-
end
|
41
|
-
|
42
|
-
def delete(options = {})
|
43
|
-
(options.delete(:api) || Mailjet::Api.singleton).listsDelete(options.reverse_merge(:id => self.id))["status"]
|
44
|
-
end
|
45
|
-
|
46
|
-
class << self
|
47
|
-
def create(options = {})
|
48
|
-
self.new(options.merge(:id => (options.delete(:api) || Mailjet::Api.singleton).listsCreate(options)["list_id"].to_s))
|
49
|
-
end
|
50
|
-
|
51
|
-
def all(options = {})
|
52
|
-
((options.delete(:api) || Mailjet::Api.singleton).listsAll(options)["lists"] || []).map do |result_hash|
|
53
|
-
self.new(result_hash)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'mailjet/api'
|
2
|
-
|
3
|
-
module Mailjet
|
4
|
-
class TemplateCategory < OpenStruct
|
5
|
-
class << self
|
6
|
-
def all(options = {})
|
7
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageTplcategories(options)["categories"].map do |result_hash|
|
8
|
-
self.new(result_hash)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'mailjet/api'
|
2
|
-
|
3
|
-
module Mailjet
|
4
|
-
class TemplateModel < OpenStruct
|
5
|
-
class << self
|
6
|
-
def all(options = {})
|
7
|
-
(options.delete(:api) || Mailjet::Api.singleton).messageTplmodels(options)["templates"].map do |result_hash|
|
8
|
-
self.new(result_hash)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'minitest_helper'
|
4
|
-
|
5
|
-
describe Mailjet::ApiRequest do
|
6
|
-
|
7
|
-
describe "#request_path" do
|
8
|
-
it "should return the path of the method" do
|
9
|
-
Mailjet::ApiRequest.new('method_name').send(:request_path).must_equal '/0.1/methodName?output=json'
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should respect api_version" do
|
13
|
-
Mailjet.config.expects(:api_version).returns(0.2)
|
14
|
-
Mailjet::ApiRequest.new('method_name').send(:request_path).must_equal '/0.2/methodName?output=json'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#request_port" do
|
19
|
-
it "should return 80 if use_https is false" do
|
20
|
-
Mailjet.config.use_https = false
|
21
|
-
Mailjet::ApiRequest.new('method_name').send(:request_port).must_equal 80
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should return 443 if use_https is true" do
|
25
|
-
Mailjet.config.use_https = true
|
26
|
-
Mailjet::ApiRequest.new('method_name').send(:request_port).must_equal 443
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "#request" do
|
31
|
-
it "should return an Http request" do
|
32
|
-
request = Mailjet::ApiRequest.new('method_name', {}, 'Post')
|
33
|
-
request.send(:request).must_be_kind_of(Net::HTTP::Post)
|
34
|
-
|
35
|
-
request = Mailjet::ApiRequest.new('method_name', {}, 'Get')
|
36
|
-
request.send(:request).must_be_kind_of(Net::HTTP::Get)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe "#response" do
|
41
|
-
it "should raise an ApiError if authentication fails" do
|
42
|
-
request = Mailjet::ApiRequest.new('method_name', {}, 'Get')
|
43
|
-
lambda {
|
44
|
-
request.response
|
45
|
-
}.must_raise(Mailjet::ApiError)
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should return a Hash with response values if request is ok" do
|
49
|
-
request = Mailjet::ApiRequest.new('user_infos', {}, 'Get')
|
50
|
-
response = request.response
|
51
|
-
response.must_be_kind_of(Hash)
|
52
|
-
response['infos']['username'].must_equal 'benoit.benezech@gmail.com'
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe "#guess_request_type" do
|
57
|
-
it "should return 'Post' if method_name contains a special verb" do
|
58
|
-
Mailjet::ApiRequest.new('lists_add_contact').send(:guess_request_type).must_equal 'Post'
|
59
|
-
Mailjet::ApiRequest.new('lists_create').send(:guess_request_type).must_equal 'Post'
|
60
|
-
Mailjet::ApiRequest.new('lists_delete').send(:guess_request_type).must_equal 'Post'
|
61
|
-
Mailjet::ApiRequest.new('lists_remove_contact').send(:guess_request_type).must_equal 'Post'
|
62
|
-
Mailjet::ApiRequest.new('lists_update').send(:guess_request_type).must_equal 'Post'
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should return 'Get' if method_name does not contain a verb" do
|
66
|
-
Mailjet::ApiRequest.new('key_list').send(:guess_request_type).must_equal 'Get'
|
67
|
-
Mailjet::ApiRequest.new('contact_list').send(:guess_request_type).must_equal 'Get'
|
68
|
-
Mailjet::ApiRequest.new('lists_all').send(:guess_request_type).must_equal 'Get'
|
69
|
-
Mailjet::ApiRequest.new('lists_email').send(:guess_request_type).must_equal 'Get'
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
data/test/mailjet/api_test.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'minitest_helper'
|
3
|
-
|
4
|
-
describe Mailjet::Api do
|
5
|
-
describe "#method_missing" do
|
6
|
-
it "should create an ApiRequest" do
|
7
|
-
|
8
|
-
request = mock(:response => true)
|
9
|
-
Mailjet::ApiRequest.expects(:new).with(:user_infos ,{:param1 => 1}, 'Post', Mailjet.config.api_key, Mailjet.config.secret_key).returns(request)
|
10
|
-
Mailjet::Api.new.user_infos({:param1 => 1}, 'Post')
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'minitest_helper'
|
2
|
-
|
3
|
-
describe Mailjet::Campaign do
|
4
|
-
it 'has an integration suite, tested directly against Mailjet service' do
|
5
|
-
|
6
|
-
# init
|
7
|
-
Mailjet::List.all.each do |list|
|
8
|
-
list.delete
|
9
|
-
end
|
10
|
-
list = Mailjet::List.create(:label => 'My Mailjet list', :name => "mymailjetlist")
|
11
|
-
list.add_contacts("c1@contacts.com", "c2@contacts.com")
|
12
|
-
|
13
|
-
# Mailjet::Campaign.create
|
14
|
-
campaign = Mailjet::Campaign.create(
|
15
|
-
:title => "My Mailjet Campaign",
|
16
|
-
:list_id => list.id,
|
17
|
-
:from => Mailjet.config.default_from, # must be valid
|
18
|
-
:from_name => "Sender Name",
|
19
|
-
:subject => "Our new product",
|
20
|
-
:template_id => Mailjet::TemplateModel.all.first.id,
|
21
|
-
:lang => "en",
|
22
|
-
:footer => "default"
|
23
|
-
)
|
24
|
-
campaign.url.must_match /^https\:\/\/www\.mailjet\.com\/campaigns\/template\/[0-9]+$/
|
25
|
-
|
26
|
-
# Mailjet::Campaign.all
|
27
|
-
campaigns = Mailjet::Campaign.all
|
28
|
-
campaigns.wont_be_empty # we can't empty the whole campaign list...
|
29
|
-
campaigns.first.must_be_instance_of Mailjet::Campaign
|
30
|
-
|
31
|
-
# Mailjet::Campaign.find
|
32
|
-
Mailjet::Campaign.find(campaign.id).must_be_instance_of Mailjet::Campaign
|
33
|
-
Mailjet::Campaign.find(0).must_be_nil
|
34
|
-
|
35
|
-
# Mailjet::Campaign#update
|
36
|
-
campaign.update(:title => "My *new* Mailjet Campaign")
|
37
|
-
|
38
|
-
# Mailjet::Campaign#duplicate
|
39
|
-
dup = campaign.duplicate(:title => "My *new* Mailjet Campaign")
|
40
|
-
dup.must_be_instance_of Mailjet::Campaign
|
41
|
-
dup.id.wont_be_same_as campaign.id
|
42
|
-
|
43
|
-
# Mailjet::Campaign#send!
|
44
|
-
campaign.send!.must_equal 'OK'
|
45
|
-
|
46
|
-
# Mailjet::Campaign#test
|
47
|
-
campaign.test('benoit.benezech@gmail.com').must_equal 'OK'
|
48
|
-
|
49
|
-
# Mailjet::Campaign#html
|
50
|
-
campaign.html.must_be_nil
|
51
|
-
|
52
|
-
# Mailjet::Campaign#set_html
|
53
|
-
html_test = "<html><head><title>Test</title></head><body>Test <a href=\"[[UNSUB_LINK_EN]]\">[[UNSUB_LINK_EN]]</a></body></html>"
|
54
|
-
dup.set_html(html_test).must_equal 'OK'
|
55
|
-
dup.html.must_equal html_test
|
56
|
-
|
57
|
-
sleep 20 # wait for the campaign to be send
|
58
|
-
campaign = Mailjet::Campaign.find(campaign.id)
|
59
|
-
|
60
|
-
# Mailjet::Campaign#contacts
|
61
|
-
campaign.contacts.wont_be_empty
|
62
|
-
|
63
|
-
# Mailjet::Campaign#statistics
|
64
|
-
campaign.statistics.keys.must_include "blocked"
|
65
|
-
end
|
66
|
-
end
|