infusionsoft 1.1.8 → 1.1.9
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 +6 -0
- data/.travis.yml +9 -0
- data/Gemfile +12 -0
- data/LICENSE.md +0 -2
- data/README.md +17 -21
- data/Rakefile +12 -2
- data/infusionsoft.gemspec +2 -2
- data/lib/infusionsoft/client.rb +2 -0
- data/lib/infusionsoft/client/contact.rb +15 -5
- data/lib/infusionsoft/client/email.rb +1 -1
- data/lib/infusionsoft/client/funnel.rb +18 -0
- data/lib/infusionsoft/client/invoice.rb +1 -1
- data/lib/infusionsoft/connection.rb +1 -1
- data/lib/infusionsoft/request.rb +1 -0
- data/lib/infusionsoft/version.rb +1 -1
- data/test/client/contact_test.rb +79 -0
- data/test/client/data_test.rb +102 -0
- data/test/client/email_test.rb +89 -0
- data/test/exceptions_test.rb +131 -0
- data/test/test_helper.rb +47 -0
- data/test/vcr_cassettes/add_to_group.yml +49 -0
- data/test/vcr_cassettes/contact_add.yml +93 -0
- data/test/vcr_cassettes/contact_add_dup_check_no_dup.yml +93 -0
- data/test/vcr_cassettes/contact_add_dup_check_with_dup.yml +186 -0
- data/test/vcr_cassettes/contact_load.yml +49 -0
- data/test/vcr_cassettes/contact_merge.yml +49 -0
- data/test/vcr_cassettes/contact_update.yml +95 -0
- data/test/vcr_cassettes/data_add.yml +49 -0
- data/test/vcr_cassettes/data_add_custom_field.yml +49 -0
- data/test/vcr_cassettes/data_auth_user_failure.yml +50 -0
- data/test/vcr_cassettes/data_auth_user_success.yml +49 -0
- data/test/vcr_cassettes/data_delete.yml +49 -0
- data/test/vcr_cassettes/data_find_by_field.yml +51 -0
- data/test/vcr_cassettes/data_get_app_setting.yml +50 -0
- data/test/vcr_cassettes/data_load.yml +51 -0
- data/test/vcr_cassettes/data_query.yml +51 -0
- data/test/vcr_cassettes/data_query_order_by.yml +51 -0
- data/test/vcr_cassettes/data_update.yml +96 -0
- data/test/vcr_cassettes/data_update_custom_field.yml +49 -0
- data/test/vcr_cassettes/email_add.yml +50 -0
- data/test/vcr_cassettes/email_attach.yml +50 -0
- data/test/vcr_cassettes/email_get_available_merge_fields.yml +52 -0
- data/test/vcr_cassettes/email_get_opt_status.yml +50 -0
- data/test/vcr_cassettes/email_get_template.yml +118 -0
- data/test/vcr_cassettes/email_optin.yml +50 -0
- data/test/vcr_cassettes/email_optout.yml +50 -0
- data/test/vcr_cassettes/email_send.yml +50 -0
- data/test/vcr_cassettes/email_send_template.yml +50 -0
- data/test/vcr_cassettes/email_update_template.yml +50 -0
- data/test/vcr_cassettes/find_by_email.yml +49 -0
- data/test/vcr_cassettes/remove_from_group.yml +49 -0
- metadata +50 -17
- data/test/api_infusion_test.rb +0 -8
- data/test/test_exceptions.rb +0 -113
@@ -0,0 +1,89 @@
|
|
1
|
+
require_relative('../test_helper')
|
2
|
+
|
3
|
+
class EmailTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_email_add
|
6
|
+
VCR.use_cassette('email_add') do
|
7
|
+
result = Infusionsoft.email_add('Test Via API', 'test,api', 'noreply@test.com',
|
8
|
+
'test@test.com', 'test2@test.com', 'test3@test.com',
|
9
|
+
'Test Subject', 'Text Body', '<p> HTML body',
|
10
|
+
'Multipart', 'Contact')
|
11
|
+
assert_instance_of Fixnum, result
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_email_attach
|
16
|
+
VCR.use_cassette('email_attach') do
|
17
|
+
result = Infusionsoft.email_attach(304, 'The Dude', 'the_dude@lebowski.com',
|
18
|
+
'hagglundized@gmail.com', 'hagglundized+cc@gmail.com',
|
19
|
+
'hagglundized+bcc@gmail.com', 'Multipart', 'Question',
|
20
|
+
"<em>Where's the money?</em>", "Where's the money?",
|
21
|
+
'Test Header', DateTime.now.to_s, DateTime.now.to_s)
|
22
|
+
assert_true result
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_email_get_available_merge_fields
|
27
|
+
VCR.use_cassette('email_get_available_merge_fields') do
|
28
|
+
result = Infusionsoft.email_get_available_merge_fields('Contact')
|
29
|
+
assert_instance_of Array, result
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_email_get_template
|
34
|
+
VCR.use_cassette('email_get_template') do
|
35
|
+
result = Infusionsoft.email_get_template(3649)
|
36
|
+
assert_instance_of Hash, result
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_email_get_opt_status
|
41
|
+
VCR.use_cassette('email_get_opt_status') do
|
42
|
+
result = Infusionsoft.email_get_opt_status('hagglundized@gmail.com')
|
43
|
+
assert_instance_of Fixnum, result
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_email_optin
|
48
|
+
VCR.use_cassette('email_optin') do
|
49
|
+
result = Infusionsoft.email_optin('hagglundized@gmail.com', 'because i said so')
|
50
|
+
assert_true [true, false].include? result
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_email_optout
|
55
|
+
VCR.use_cassette('email_optout') do
|
56
|
+
result = Infusionsoft.email_optout('boutthat@ction.boss', 'because i said so')
|
57
|
+
assert_true [true, false].include? result
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_email_send
|
62
|
+
VCR.use_cassette('email_send') do
|
63
|
+
result = Infusionsoft.email_send([304], 'the_dude@lebowski.com',
|
64
|
+
'hagglundized@gmail.com', 'hagglundized+cc@gmail.com',
|
65
|
+
'hagglundized+bcc@gmail.com', 'Multipart', 'Question',
|
66
|
+
"<em>Where's the money?</em>", "Where's the money?")
|
67
|
+
assert_true [true, false].include? result
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_email_send_template
|
72
|
+
VCR.use_cassette('email_send_template') do
|
73
|
+
result = Infusionsoft.email_send_template([304], '3649')
|
74
|
+
assert_true [true, false].include? result
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_email_update_template
|
79
|
+
VCR.use_cassette('email_update_template') do
|
80
|
+
result = Infusionsoft.email_update_template(3649, 'Testingness Testagram', '', '',
|
81
|
+
'hagglundized@gmail.com',
|
82
|
+
'hagglundized+cc@gmail.com',
|
83
|
+
'hagglundized+bcc@gmail.com',
|
84
|
+
'Testingness Testagrams', 'Stuff',
|
85
|
+
'<em>Stuff</em>', 'Multipart', 'Contact')
|
86
|
+
assert_true [true, false].include? result
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
require_relative('test_helper')
|
2
|
+
|
3
|
+
class ExceptionsTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
@test_exc_msg = 'Some error message'
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_should_raise_invalid_config
|
11
|
+
stub_client_call(1)
|
12
|
+
assert_raise_kind_of Infusionsoft::InvalidConfigError do
|
13
|
+
run_exceptional_data_query
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_should_raise_invalid_key
|
18
|
+
stub_client_call(2)
|
19
|
+
assert_raise_kind_of Infusionsoft::InvalidKeyError do
|
20
|
+
run_exceptional_data_query
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_should_raise_unexpected_error
|
25
|
+
stub_client_call(3)
|
26
|
+
assert_raise_kind_of Infusionsoft::UnexpectedError do
|
27
|
+
run_exceptional_data_query
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_should_raise_database_error
|
32
|
+
stub_client_call(4)
|
33
|
+
assert_raise_kind_of Infusionsoft::DatabaseError do
|
34
|
+
run_exceptional_data_query
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_should_raise_record_not_found
|
39
|
+
stub_client_call(5)
|
40
|
+
assert_raise_kind_of Infusionsoft::RecordNotFoundError do
|
41
|
+
run_exceptional_data_query
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_should_raise_loading_error
|
46
|
+
stub_client_call(6)
|
47
|
+
assert_raise_kind_of Infusionsoft::LoadingError do
|
48
|
+
run_exceptional_data_query
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_should_raise_no_table_access
|
53
|
+
stub_client_call(7)
|
54
|
+
assert_raise_kind_of Infusionsoft::NoTableAccessError do
|
55
|
+
run_exceptional_data_query
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_should_raise_no_field_access
|
60
|
+
stub_client_call(8)
|
61
|
+
assert_raise_kind_of Infusionsoft::NoFieldAccessError do
|
62
|
+
run_exceptional_data_query
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_should_raise_no_table_found
|
67
|
+
stub_client_call(9)
|
68
|
+
assert_raise_kind_of Infusionsoft::NoTableFoundError do
|
69
|
+
run_exceptional_data_query
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_should_raise_no_field_found
|
74
|
+
stub_client_call(10)
|
75
|
+
assert_raise_kind_of Infusionsoft::NoFieldFoundError do
|
76
|
+
run_exceptional_data_query
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_should_raise_no_fields_error
|
81
|
+
stub_client_call(11)
|
82
|
+
assert_raise_kind_of Infusionsoft::NoFieldsError do
|
83
|
+
run_exceptional_data_query
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_should_raise_invalid_parameter_error
|
88
|
+
stub_client_call(12)
|
89
|
+
assert_raise_kind_of Infusionsoft::InvalidParameterError do
|
90
|
+
run_exceptional_data_query
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_should_raise_failed_login_attempt
|
95
|
+
stub_client_call(13)
|
96
|
+
assert_raise_kind_of Infusionsoft::FailedLoginAttemptError do
|
97
|
+
run_exceptional_data_query
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_should_raise_no_access_error
|
102
|
+
stub_client_call(14)
|
103
|
+
assert_raise_kind_of Infusionsoft::NoAccessError do
|
104
|
+
run_exceptional_data_query
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_should_raise_failed_login_attempt_password_expired
|
109
|
+
stub_client_call(15)
|
110
|
+
assert_raise_kind_of Infusionsoft::FailedLoginAttemptPasswordExpiredError do
|
111
|
+
run_exceptional_data_query
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_should_raise_infusionapierror_when_fault_code_unknown
|
116
|
+
stub_client_call(42)
|
117
|
+
assert_raise_kind_of InfusionAPIError do
|
118
|
+
run_exceptional_data_query
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
private
|
123
|
+
|
124
|
+
def stub_client_call(exception_num)
|
125
|
+
XMLRPC::Client.any_instance.stubs(:call).raises(XMLRPC::FaultException.new(exception_num, @test_exc_msg))
|
126
|
+
end
|
127
|
+
|
128
|
+
def run_exceptional_data_query
|
129
|
+
Infusionsoft.data_query(:Contact, 1, 0, {}, [:BlahdyDah])
|
130
|
+
end
|
131
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
3
|
+
|
4
|
+
require 'simplecov'
|
5
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
6
|
+
SimpleCov::Formatter::HTMLFormatter,
|
7
|
+
Coveralls::SimpleCov::Formatter
|
8
|
+
]
|
9
|
+
SimpleCov.start do
|
10
|
+
add_filter '/vendor/'
|
11
|
+
add_filter '/.bundle/'
|
12
|
+
add_filter '/test'
|
13
|
+
add_group 'Clients', 'lib/infusionsoft/client'
|
14
|
+
end
|
15
|
+
|
16
|
+
require 'test/unit'
|
17
|
+
require 'infusionsoft'
|
18
|
+
|
19
|
+
require 'vcr'
|
20
|
+
require 'webmock/test_unit'
|
21
|
+
require 'mocha/test_unit'
|
22
|
+
|
23
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
24
|
+
|
25
|
+
VCR.configure do |c|
|
26
|
+
c.cassette_library_dir = 'test/vcr_cassettes'
|
27
|
+
c.hook_into :webmock
|
28
|
+
c.default_cassette_options = { record: :once, match_requests_on: [:method] }
|
29
|
+
end
|
30
|
+
|
31
|
+
class Test::Unit::TestCase
|
32
|
+
class TestLogger
|
33
|
+
def info(msg); end
|
34
|
+
def warn(msg); end
|
35
|
+
def error(msg); end
|
36
|
+
def debug(msg); end
|
37
|
+
def fatal(msg); end
|
38
|
+
end
|
39
|
+
|
40
|
+
def setup
|
41
|
+
Infusionsoft.configure do |config|
|
42
|
+
config.api_url = 'test.infusionsoft.com'
|
43
|
+
config.api_key = 'not_a_real_key'
|
44
|
+
config.api_logger = TestLogger.new
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://test.infusionsoft.com/api/xmlrpc
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: |
|
9
|
+
<?xml version="1.0" ?><methodCall><methodName>ContactService.addToGroup</methodName><params><param><value><string>not_a_real_key</string></value></param><param><value><i4>3794</i4></value></param><param><value><i4>382</i4></value></param></params></methodCall>
|
10
|
+
headers:
|
11
|
+
User-Agent:
|
12
|
+
- Infusionsoft-1.1.8 (RubyGem)
|
13
|
+
Content-Type:
|
14
|
+
- text/xml; charset=utf-8
|
15
|
+
Content-Length:
|
16
|
+
- '279'
|
17
|
+
Connection:
|
18
|
+
- keep-alive
|
19
|
+
Accept-Encoding:
|
20
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
21
|
+
Accept:
|
22
|
+
- "*/*"
|
23
|
+
response:
|
24
|
+
status:
|
25
|
+
code: 200
|
26
|
+
message: OK
|
27
|
+
headers:
|
28
|
+
Server:
|
29
|
+
- Apache-Coyote/1.1
|
30
|
+
Pragma:
|
31
|
+
- no-cache
|
32
|
+
Cache-Control:
|
33
|
+
- no-cache, no-store
|
34
|
+
Expires:
|
35
|
+
- Sat, 30 May 2015 19:30:00 GMT
|
36
|
+
Content-Type:
|
37
|
+
- text/xml;charset=UTF-8
|
38
|
+
Content-Length:
|
39
|
+
- '138'
|
40
|
+
Date:
|
41
|
+
- Sat, 30 May 2015 07:29:59 GMT
|
42
|
+
Set-Cookie:
|
43
|
+
- app-lb=2466578442.20480.0000; path=/
|
44
|
+
body:
|
45
|
+
encoding: UTF-8
|
46
|
+
string: <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><boolean>1</boolean></value></param></params></methodResponse>
|
47
|
+
http_version:
|
48
|
+
recorded_at: Sat, 30 May 2015 07:30:00 GMT
|
49
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,93 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://test.infusionsoft.com/api/xmlrpc
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: |
|
9
|
+
<?xml version="1.0" ?><methodCall><methodName>ContactService.add</methodName><params><param><value><string>not_a_real_key</string></value></param><param><value><struct><member><name>Email</name><value><string>test@tester.com</string></value></member><member><name>FirstName</name><value><string>Severus</string></value></member><member><name>LastName</name><value><string>Snape</string></value></member></struct></value></param></params></methodCall>
|
10
|
+
headers:
|
11
|
+
User-Agent:
|
12
|
+
- Infusionsoft-1.1.8 (RubyGem)
|
13
|
+
Content-Type:
|
14
|
+
- text/xml; charset=utf-8
|
15
|
+
Content-Length:
|
16
|
+
- '469'
|
17
|
+
Connection:
|
18
|
+
- keep-alive
|
19
|
+
Accept-Encoding:
|
20
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
21
|
+
Accept:
|
22
|
+
- "*/*"
|
23
|
+
response:
|
24
|
+
status:
|
25
|
+
code: 200
|
26
|
+
message: OK
|
27
|
+
headers:
|
28
|
+
Server:
|
29
|
+
- Apache-Coyote/1.1
|
30
|
+
Pragma:
|
31
|
+
- no-cache
|
32
|
+
Cache-Control:
|
33
|
+
- no-cache, no-store
|
34
|
+
Expires:
|
35
|
+
- Thu, 09 Apr 2015 19:14:00 GMT
|
36
|
+
Content-Type:
|
37
|
+
- text/xml;charset=UTF-8
|
38
|
+
Content-Length:
|
39
|
+
- '131'
|
40
|
+
Date:
|
41
|
+
- Thu, 09 Apr 2015 07:14:00 GMT
|
42
|
+
Set-Cookie:
|
43
|
+
- app-lb=2466578442.20480.0000; path=/
|
44
|
+
body:
|
45
|
+
encoding: UTF-8
|
46
|
+
string: <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><i4>3602</i4></value></param></params></methodResponse>
|
47
|
+
http_version:
|
48
|
+
recorded_at: Thu, 09 Apr 2015 07:14:00 GMT
|
49
|
+
- request:
|
50
|
+
method: post
|
51
|
+
uri: https://test.infusionsoft.com/api/xmlrpc
|
52
|
+
body:
|
53
|
+
encoding: UTF-8
|
54
|
+
string: |
|
55
|
+
<?xml version="1.0" ?><methodCall><methodName>APIEmailService.optIn</methodName><params><param><value><string>not_a_real_key</string></value></param><param><value><string>testing@test.com</string></value></param><param><value><string>requested information</string></value></param></params></methodCall>
|
56
|
+
headers:
|
57
|
+
User-Agent:
|
58
|
+
- Infusionsoft-1.1.8 (RubyGem)
|
59
|
+
Content-Type:
|
60
|
+
- text/xml; charset=utf-8
|
61
|
+
Content-Length:
|
62
|
+
- '321'
|
63
|
+
Connection:
|
64
|
+
- keep-alive
|
65
|
+
Accept:
|
66
|
+
- "*/*"
|
67
|
+
response:
|
68
|
+
status:
|
69
|
+
code: 200
|
70
|
+
message: OK
|
71
|
+
headers:
|
72
|
+
Server:
|
73
|
+
- Apache-Coyote/1.1
|
74
|
+
Pragma:
|
75
|
+
- no-cache
|
76
|
+
Cache-Control:
|
77
|
+
- no-cache, no-store
|
78
|
+
Expires:
|
79
|
+
- Fri, 31 Jul 2015 11:55:20 GMT
|
80
|
+
Content-Type:
|
81
|
+
- text/xml;charset=UTF-8
|
82
|
+
Content-Length:
|
83
|
+
- '138'
|
84
|
+
Date:
|
85
|
+
- Thu, 30 Jul 2015 23:55:20 GMT
|
86
|
+
Set-Cookie:
|
87
|
+
- app-lb=2466578442.20480.0000; path=/
|
88
|
+
body:
|
89
|
+
encoding: US-ASCII
|
90
|
+
string: <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><boolean>1</boolean></value></param></params></methodResponse>
|
91
|
+
http_version:
|
92
|
+
recorded_at: Thu, 30 Jul 2015 23:55:21 GMT
|
93
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,93 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://test.infusionsoft.com/api/xmlrpc
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: |
|
9
|
+
<?xml version="1.0" ?><methodCall><methodName>ContactService.addWithDupCheck</methodName><params><param><value><string>not_a_real_key</string></value></param><param><value><struct><member><name>Email</name><value><string>new@tester.com</string></value></member><member><name>FirstName</name><value><string>Albus</string></value></member><member><name>LastName</name><value><string>Dumbledore</string></value></member><member><name>Company</name><value><string>Hogwarts</string></value></member></struct></value></param><param><value><string>EmailAndNameAndCompany</string></value></param></params></methodCall>
|
10
|
+
headers:
|
11
|
+
User-Agent:
|
12
|
+
- Infusionsoft-1.1.8 (RubyGem)
|
13
|
+
Content-Type:
|
14
|
+
- text/xml; charset=utf-8
|
15
|
+
Content-Length:
|
16
|
+
- '629'
|
17
|
+
Connection:
|
18
|
+
- keep-alive
|
19
|
+
Accept-Encoding:
|
20
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
21
|
+
Accept:
|
22
|
+
- "*/*"
|
23
|
+
response:
|
24
|
+
status:
|
25
|
+
code: 200
|
26
|
+
message: OK
|
27
|
+
headers:
|
28
|
+
Server:
|
29
|
+
- Apache-Coyote/1.1
|
30
|
+
Pragma:
|
31
|
+
- no-cache
|
32
|
+
Cache-Control:
|
33
|
+
- no-cache, no-store
|
34
|
+
Expires:
|
35
|
+
- Fri, 10 Apr 2015 20:13:43 GMT
|
36
|
+
Content-Type:
|
37
|
+
- text/xml;charset=UTF-8
|
38
|
+
Content-Length:
|
39
|
+
- '131'
|
40
|
+
Date:
|
41
|
+
- Fri, 10 Apr 2015 08:13:43 GMT
|
42
|
+
Set-Cookie:
|
43
|
+
- app-lb=2466578442.20480.0000; path=/
|
44
|
+
body:
|
45
|
+
encoding: UTF-8
|
46
|
+
string: <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><i4>3612</i4></value></param></params></methodResponse>
|
47
|
+
http_version:
|
48
|
+
recorded_at: Fri, 10 Apr 2015 08:13:43 GMT
|
49
|
+
- request:
|
50
|
+
method: post
|
51
|
+
uri: https://test.infusionsoft.com/api/xmlrpc
|
52
|
+
body:
|
53
|
+
encoding: UTF-8
|
54
|
+
string: |
|
55
|
+
<?xml version="1.0" ?><methodCall><methodName>APIEmailService.optIn</methodName><params><param><value><string>not_a_real_key</string></value></param><param><value><string>testing@test.com</string></value></param><param><value><string>requested information</string></value></param></params></methodCall>
|
56
|
+
headers:
|
57
|
+
User-Agent:
|
58
|
+
- Infusionsoft-1.1.8 (RubyGem)
|
59
|
+
Content-Type:
|
60
|
+
- text/xml; charset=utf-8
|
61
|
+
Content-Length:
|
62
|
+
- '321'
|
63
|
+
Connection:
|
64
|
+
- keep-alive
|
65
|
+
Accept:
|
66
|
+
- "*/*"
|
67
|
+
response:
|
68
|
+
status:
|
69
|
+
code: 200
|
70
|
+
message: OK
|
71
|
+
headers:
|
72
|
+
Server:
|
73
|
+
- Apache-Coyote/1.1
|
74
|
+
Pragma:
|
75
|
+
- no-cache
|
76
|
+
Cache-Control:
|
77
|
+
- no-cache, no-store
|
78
|
+
Expires:
|
79
|
+
- Fri, 31 Jul 2015 11:55:20 GMT
|
80
|
+
Content-Type:
|
81
|
+
- text/xml;charset=UTF-8
|
82
|
+
Content-Length:
|
83
|
+
- '138'
|
84
|
+
Date:
|
85
|
+
- Thu, 30 Jul 2015 23:55:20 GMT
|
86
|
+
Set-Cookie:
|
87
|
+
- app-lb=2466578442.20480.0000; path=/
|
88
|
+
body:
|
89
|
+
encoding: US-ASCII
|
90
|
+
string: <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><boolean>1</boolean></value></param></params></methodResponse>
|
91
|
+
http_version:
|
92
|
+
recorded_at: Thu, 30 Jul 2015 23:55:21 GMT
|
93
|
+
recorded_with: VCR 2.9.3
|