express_pigeon 2.0.2 → 2.4.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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.hound.yml +3 -0
  4. data/CHANGELOG.md +15 -0
  5. data/CONTRIBUTING.md +9 -0
  6. data/Gemfile +1 -0
  7. data/Guardfile +2 -36
  8. data/README.md +57 -0
  9. data/lib/express_pigeon/auto_responders.rb +70 -0
  10. data/lib/express_pigeon/campaigns.rb +120 -0
  11. data/lib/express_pigeon/contacts.rb +15 -4
  12. data/lib/express_pigeon/messages.rb +83 -0
  13. data/lib/express_pigeon/templates.rb +24 -0
  14. data/lib/express_pigeon/version.rb +1 -1
  15. data/lib/express_pigeon.rb +4 -11
  16. data/spec/lib/express_pigeon/auto_responders_spec.rb +2 -0
  17. data/spec/lib/express_pigeon/campaigns_spec.rb +2 -0
  18. data/spec/{express_pigeon → lib/express_pigeon}/contacts_spec.rb +0 -0
  19. data/spec/{express_pigeon → lib/express_pigeon}/lists_spec.rb +0 -0
  20. data/spec/lib/express_pigeon/messages_spec.rb +37 -0
  21. data/spec/lib/express_pigeon/templates_spec.rb +43 -0
  22. data/spec/spec_helper.rb +3 -18
  23. data.tar.gz.sig +2 -2
  24. metadata +19 -22
  25. metadata.gz.sig +0 -0
  26. data/lib/express_pigeon/api/campaigns.rb +0 -62
  27. data/lib/express_pigeon/api/contacts.rb +0 -42
  28. data/lib/express_pigeon/api/lists.rb +0 -49
  29. data/lib/express_pigeon/api/messages.rb +0 -56
  30. data/lib/express_pigeon/api.rb +0 -66
  31. data/lib/express_pigeon/autoresponders.rb +0 -0
  32. data/lib/express_pigeon/meta_hash.rb +0 -20
  33. data/lib/express_pigeon/transactional_emails.rb +0 -4
  34. data/spec/express_pigeon/api/campaigns_spec.rb +0 -100
  35. data/spec/express_pigeon/api/contacts_spec.rb +0 -146
  36. data/spec/express_pigeon/api/lists_spec.rb +0 -23
  37. data/spec/express_pigeon/api/messages_spec.rb +0 -36
@@ -1,146 +0,0 @@
1
- # RSpec.describe 'contacts integration test', skip: true do
2
- # include PigeonSpecHelper
3
- #
4
- # it 'should not create contact without contact data' do
5
- # resp = PIGEON.contacts.upsert(-1, {})
6
- # validate_response resp, 400, 'error', /contact and contact.email are required/
7
- # end
8
- # it 'should not create contact without email' do
9
- # resp = PIGEON.contacts.upsert -1, email: '', first_name: 'Marylin', last_name: 'Monroe'
10
- # validate_response resp, 400, 'error', /contact and contact.email are required/
11
- # end
12
- #
13
- # it 'should not add contact with too many custom fields' do
14
- # custom_fields = {}
15
- # (1..25).each { |n| custom_fields["custom_field_#{n}"] = n }
16
- # resp = PIGEON.contacts.upsert -1, email: 'mary@e.e', custom_fields: custom_fields
17
- # validate_response resp, 400, 'error', /You cannot create more than 20 custom fields. Use one of the 'custom_fields'./
18
- # end
19
- #
20
- # it 'should not create new contact without list_id' do
21
- # resp = PIGEON.contacts.upsert '', email: 'ee@e.e', first_name: 'Marylin', last_name: 'Monroe'
22
- # validate_response resp, 404, 'error', /contact=ee@e.e not found/
23
- # end
24
- #
25
- # it 'test_create_with_suppressed_contact' do
26
- # resp = PIGEON.contacts.upsert -1, email: 'suppressed@e.e'
27
- # validate_response resp, 400, 'error', /contact=suppressed@e.e is in suppress list/
28
- # end
29
- #
30
- # it 'cannot create with non-existent_list' do
31
- # resp = PIGEON.contacts.upsert -1, email: 'e@e.e'
32
- # validate_response resp, 404, 'error', /list=-1 not found/
33
- # end
34
- #
35
- # it 'creates list with contacts' do
36
- # list_response = PIGEON.lists.create 'My List', 'John Doe', 'john@doe.com'
37
- # list_id = list_response.list.id
38
- # resp = PIGEON.contacts.upsert list_id, email: 'mary@e.e',
39
- # custom_fields: { custom_field_1: 'custom_value_1' }
40
- # validate_response resp, 200, 'success', /contact=mary@e.e created\/updated successfully/
41
- # resp.contact.custom_fields.custom_field_1.should eq 'custom_value_1'
42
- # resp.contact.email.should eq 'mary@e.e'
43
- # resp.contact.email_format.should eq 'html'
44
- # resp.contact.status.should eq 'ACTIVE'
45
- # PIGEON.lists.delete(list_id)
46
- # end
47
- #
48
- # it 'creates list non-existent custom field' do
49
- # list_response = PIGEON.lists.create 'My List', 'John Doe', 'a@a.a'
50
- # list_id = list_response.list.id
51
- # resp = PIGEON.contacts.upsert(list_id, email: 'mary@e.e', custom_fields: { c: 'c' })
52
- # validate_response resp, 200, 'success', nil
53
- # PIGEON.lists.delete(list_id)
54
- # end
55
- #
56
- # it 'cannot export contacts from list without list_id' do
57
- # content = ''
58
- # PIGEON.lists.csv '-1' do |c|
59
- # content << c
60
- # end
61
- # resp = JSON.parse(content)
62
- # validate_response MetaHash.new(resp), 404, 'error', /list=-1 not found/
63
- # end
64
- #
65
- # it 'should get contacts from suppressed list' do
66
- # content = ''
67
- # PIGEON.lists.csv 'suppress_list' do |c|
68
- # content += c
69
- # end
70
- # resp = content.split /\n/
71
- # resp.size.should eq 2
72
- # resp[1].should =~ /"suppressed@e.e","Suppressed","Doe"/
73
- # end
74
- #
75
- # it 'should get single contact' do
76
- # resp = PIGEON.contacts.find_by_email 'suppressed@e.e'
77
- # resp.email.should eq 'suppressed@e.e'
78
- # end
79
- #
80
- # it 'should not find non existent contact' do
81
- # resp = PIGEON.contacts.find_by_email 'a@a.a'
82
- # validate_response resp, 404, 'error', /contact=a@a.a not found/
83
- # end
84
- #
85
- # it 'should update contact' do
86
- # list_response = PIGEON.lists.create('My List', 'John Doe', 'a@a.a')
87
- # resp = PIGEON.contacts.upsert list_response.list.id,
88
- # email: 'mary@e.e', first_name: 'Mary', last_name: 'Doe'
89
- # validate_response resp, 200, 'success', /contact=mary@e.e created\/updated successfully/
90
- # PIGEON.contacts.find_by_email('mary@e.e').last_name.should eq 'Doe'
91
- #
92
- # resp = PIGEON.contacts.upsert list_response.list.id,
93
- # email: 'mary@e.e', first_name: 'Mary', last_name: 'Johns'
94
- # validate_response resp, 200, 'success', /contact=mary@e.e created\/updated successfully/
95
- # PIGEON.contacts.find_by_email('mary@e.e').last_name.should eq 'Johns'
96
- # end
97
- #
98
- # it 'cannot delete contact with non-existent email' do
99
- # res = PIGEON.contacts.delete('g@g.g')
100
- # validate_response res, 404, 'error', /contact=g@g.g not found/
101
- # end
102
- #
103
- # it 'should not delete suppressed contact' do
104
- # res = PIGEON.contacts.delete('suppressed@e.e')
105
- # validate_response res, 400, 'error', /contact=suppressed@e.e is in suppress list/
106
- # end
107
- #
108
- # it 'should delete single contact from all lists' do
109
- # list_response = PIGEON.lists.create 'My List', 'Jane Doe', 'a@a.a'
110
- # PIGEON.contacts.upsert list_response.list.id, email: 'mary@e.e'
111
- # res = PIGEON.contacts.delete 'mary@e.e'
112
- # validate_response res, 200, 'success', /contact=mary@e.e deleted successfully/
113
- # PIGEON.lists.delete list_response.list.id
114
- # end
115
- #
116
- # it 'deletes single contact from single list' do
117
- # list_response = PIGEON.lists.create 'My List', 'John D.', 'a@a.a'
118
- # list_response_2 = PIGEON.lists.create('My List2', 'Jane D.', 'a@a.a')
119
- # PIGEON.contacts.upsert(list_response.list.id, email: 'mary@e.e')
120
- # PIGEON.contacts.upsert(list_response_2.list.id, email: 'mary@e.e')
121
- #
122
- # res = PIGEON.contacts.delete 'mary@e.e', list_response.list.id
123
- #
124
- # validate_response res, 200, 'success', /contact=mary@e.e deleted successfully/
125
- #
126
- # contacts_exported = ''
127
- # PIGEON.lists.csv list_response.list.id do |c|
128
- # contacts_exported << c
129
- # end
130
- # contacts_exported = contacts_exported.split /\n/
131
- # contacts_exported.size.should eq 1
132
- #
133
- # contacts_exported_2 = ''
134
- # PIGEON.lists.csv list_response_2.list.id do |c|
135
- # contacts_exported_2 << c
136
- # end
137
- #
138
- # contacts_exported_2 = contacts_exported_2.split /\n/
139
- # contacts_exported_2.size.should eq 2
140
- # contacts_exported_2[1].should =~ /"mary@e.e"/
141
- #
142
- # PIGEON.lists.delete(list_response.list.id)
143
- # PIGEON.lists.delete(list_response_2.list.id)
144
- # PIGEON.contacts.delete('mary@e.e')
145
- # end
146
- # #end
@@ -1,23 +0,0 @@
1
- # RSpec.describe 'contacts integration test', skip: true do
2
- # include PigeonSpecHelper
3
- #
4
- # it 'test_create_and_delete_new_list(self):' do
5
- # contact_list = PIGEON.lists.create 'Active customers', 'Bob', 'bob@acmetools.com'
6
- #
7
- # validate_response contact_list, 200, 'success', /list=#{contact_list.list.id} created\/updated successfully/
8
- # contact_list.list.name.should eq 'Active customers'
9
- # contact_list.list.from_name.should eq 'Bob'
10
- # contact_list.list.reply_to.should eq 'bob@acmetools.com'
11
- # contact_list.list.contact_count.should eq 0
12
- #
13
- # res = PIGEON.lists.delete(contact_list.list.id)
14
- # validate_response res, 200, 'success', /list=#{contact_list.list.id} deleted successfully/
15
- # end
16
- #
17
- # it 'should update existing list' do
18
- # existing_list = PIGEON.lists.create('Update', 'Bob', 'bob@acmetools.com')
19
- # end
20
- #
21
- # list_name = "Upload_#{Kernel.rand(9999)}"
22
- # existing_list = PIGEON.lists.create(list_name, 'Bob', 'bob@acmetools.com')
23
- # end
@@ -1,36 +0,0 @@
1
- # RSpec.describe 'transactional messages integration test', skip: true do
2
- # include PigeonSpecHelper
3
- #
4
- # it 'sends a single transactional message' do
5
- # message_response = PIGEON.messages.send_message 4905, ENV['TARGET_EMAIL'], ENV['TARGET_EMAIL'], 'Team ExpressPigeon', 'Hi there!', first_name: 'Igor'
6
- #
7
- # validate_response message_response, 200, 'success', /email queued/
8
- # report = PIGEON.messages.report(message_response.id)
9
- # report.id.should eq message_response.id
10
- # end
11
- #
12
- # it 'test_sending_multiple_messages_and_get_reports_for_today(self):' do
13
- # start = Time.now.utc - 60 # one minute ago
14
- #
15
- # message_response = PIGEON.messages.send_message 4905, ENV['TARGET_EMAIL'], ENV['TARGET_EMAIL'],
16
- # 'Team EP', 'Hi, there!', first_name: 'Bob'
17
- #
18
- # validate_response message_response, 200, 'success', /email queued/
19
- # message_response.id should_not be_nil
20
- #
21
- # message_response2 = PIGEON.messages.send_message 4905, ENV['TARGET_EMAIL'], ENV['TARGET_EMAIL'],
22
- # 'Team EP', 'Hi, there!', first_name: 'Bob'
23
- # validate_response message_response2, 200, 'success', /email queued/
24
- # message_response2.id should_not be_nil
25
- #
26
- # finish = start + 120 # two minutes after start
27
- # reports = PIGEON.messages.reports (message_response.id - 1), start, finish
28
- #
29
- # reports.size.should eq 2
30
- # reports[0]['id'].should eq message_response.id
31
- # reports[1]['id'].should eq message_response2.id
32
- #
33
- # reports[0]['email'].should eq ENV['TARGET_EMAIL']
34
- # reports[1]['email'].should eq ENV['TARGET_EMAIL']
35
- # end
36
- # end