infusionsoft 1.3.2a → 1.3.6b

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3b686d1efc5164b0bba431d6eacde2489cd926bac5e3fe026f53f025371bcbc
4
- data.tar.gz: 18e910421637b87d1a75948725e95aeca05f12dfb69db67fcc1a046a6f016196
3
+ metadata.gz: 670650dc844cbdd14defccbc8e6bc5d35e11589b2b4d7e1fba4b288047714ad9
4
+ data.tar.gz: 3b0deef964d67456723d59941bfd2b2409c9e5122f7728525737a2a88289320b
5
5
  SHA512:
6
- metadata.gz: 3d1fda73ce49ace6109dda85ddf2e5114975dfa11ec6a4227f14c0ec9f724f24fbc61b30f29668b5a506a29b946920dfea5edf6a35d2ebd96ada1198f1704a02
7
- data.tar.gz: 1fd016e8d6c90dfe1c1ae3e71b3e7877fbf11cc2e4c4b9e2cec95f680f632c72775368209ab6edbce4c0055cccc74e4c0c38d7d893ba4ea3e14941edbe328508
6
+ metadata.gz: 00a651703d77d7a60ab327f3ac2b58a93797d4724881189110d994d12c34084c45c1ddf148af38ae7a51bac6c502389b7c224afe4ff18d35eb117c853459778b
7
+ data.tar.gz: 323c11a2b6c05ace3aac8106c3bc20e324d282fb0f4ddf65e36032124b2f169e6f7af1f9b4563b3f210e14d57c2baa7b30f78cc5372dca85e05a50054a5c89cc
data/.travis.yml CHANGED
@@ -1,8 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0.0
4
- - 2.1.5
5
- - 2.2.2
6
- - 2.3.4
7
- # - 2.4.1 need to do more testing
3
+ - 2.3.8
4
+ - 2.4.5
5
+ - 2.5.3
6
+ - 2.6.1
8
7
  - jruby-20mode # JRuby in 2.0 mode
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  A Ruby wrapper for the Infusionsoft API
7
7
 
8
8
  **update notes**
9
- * upcoming - Adding support for rest api
9
+ * v1.3.5 - Rest API is now supported (documentation incoming)
10
10
  * v1.2.2 - Catching Infusionsoft API SSL handshake issues
11
11
  * v1.2.1 - Added OAuth support
12
12
  * v1.2.0 - Added `invoice_add_subscription` call to mirror Infusionsoft API parameters to eventually replace `invoice_add_recurring_order`
@@ -37,7 +37,7 @@ end
37
37
  ```
38
38
  ## OAUTH 2.0
39
39
 
40
- You will need to handle and obtain the access_token on your own.
40
+ You will need to handle and obtain the access_token on your own.
41
41
 
42
42
  ```ruby
43
43
  # You will need to attain the access_token first, then do the config like so:
@@ -98,7 +98,7 @@ features.
98
98
  ## <a name="rubies">Supported Rubies</a>
99
99
  This library aims to support the following Ruby implementations:
100
100
 
101
- * Ruby >= 2.0
101
+ * Ruby >= 2.3.8
102
102
  * [JRuby](http://www.jruby.org/)
103
103
  * [Rubinius](http://rubini.us/)
104
104
  * [Ruby Enterprise Edition](http://www.rubyenterpriseedition.com/)
@@ -122,7 +122,7 @@ time of a major release, support for that Ruby version may be dropped.
122
122
  * Need to add a history log for additional contributers
123
123
 
124
124
  ## <a name="copyright">Copyright</a>
125
- Copyright (c) 2017 Nathan Leavitt
125
+ Copyright (c) 2019 Nathan Leavitt
126
126
 
127
- See [LICENSE](https://github.com/nateleavitt/infusionsoft/blob/master/LICENSE.md) for details.
127
+ See [MIT LICENSE](https://github.com/nateleavitt/infusionsoft/blob/master/LICENSE.md) for details.
128
128
 
data/lib/infusionsoft.rb CHANGED
@@ -15,9 +15,9 @@ module Infusionsoft
15
15
  end
16
16
 
17
17
  # Delegate to ApiInfusionsoft::Client
18
- def method_missing(method, *args, &block)
18
+ def method_missing(method, *args, **kwargs, &block)
19
19
  return super unless new.respond_to?(method)
20
- new.send(method, *args, &block)
20
+ new.send(method, *args, **kwargs, &block)
21
21
  end
22
22
 
23
23
  def respond_to?(method, include_private = false)
@@ -5,13 +5,16 @@ module Infusionsoft
5
5
  module Contact
6
6
  # Creates a new contact record from the data passed in the associative array.
7
7
  #
8
- # @param [Hash] data contains the mappable contact fields and it's data
8
+ # @param [Hash] data contains the mappable contact fields and it's data.
9
+ # @param [String] (Optional) email opt in verbiage. The contact will then be
10
+ # "Opted in" using the verviage supplied here.
9
11
  # @return [Integer] the id of the newly added contact
10
12
  # @example
11
- # { :Email => 'test@test.com', :FirstName => 'first_name', :LastName => 'last_name' }
12
- def contact_add(data)
13
+ # { :Email => 'test@test.com', :FirstName => 'first_name', :LastName => 'last_name' }, 'New Signup'
14
+ def contact_add(data, optin_status=nil)
13
15
  contact_id = xmlrpc('ContactService.add', data)
14
- if data.has_key?(:Email); email_optin(data[:Email], "requested information"); end
16
+ email = data['Email'] || data[:Email]
17
+ if optin_status && email; email_optin(email, optin_status); end
15
18
  return contact_id
16
19
  end
17
20
 
@@ -28,10 +31,15 @@ module Infusionsoft
28
31
  # @param [Array<Hash>] data the contact data you want added
29
32
  # @param [String] check_type available options are 'Email', 'EmailAndName',
30
33
  # 'EmailAndNameAndCompany'
34
+ # @param [String] (Optional) email opt in verbiage. The contact will then be
35
+ # "Opted in" using the verviage supplied here.
31
36
  # @return [Integer] id of the contact added or updated
32
- def contact_add_with_dup_check(data, check_type)
37
+ # @example
38
+ # { :Email => 'test@test.com', :FirstName => 'first_name', :LastName => 'last_name' }, 'Email', 'New Signup'
39
+ def contact_add_with_dup_check(data, check_type, optin_status=nil)
33
40
  contact_id = xmlrpc('ContactService.addWithDupCheck', data, check_type)
34
- if data.has_key?(:Email); email_optin(data[:Email], "requested information"); end
41
+ email = data['Email'] || data[:Email]
42
+ if optin_status && email; email_optin(email, optin_status); end
35
43
  return contact_id
36
44
  end
37
45
 
@@ -39,12 +47,15 @@ module Infusionsoft
39
47
  #
40
48
  # @param [Integer] contact_id
41
49
  # @param [Hash] data contains the mappable contact fields and it's data
50
+ # @param [String] (Optional) email opt in verbiage. The contact will then be
51
+ # "Opted in" using the verviage supplied here.
42
52
  # @return [Integer] the id of the contact updated
43
53
  # @example
44
- # { :FirstName => 'first_name', :StreetAddress1 => '123 N Street' }
45
- def contact_update(contact_id, data)
54
+ # { :FirstName => 'first_name', :StreetAddress1 => '123 N Street' }, 'New Signup'
55
+ def contact_update(contact_id, data, optin_status=nil)
46
56
  contact_id = xmlrpc('ContactService.update', contact_id, data)
47
- if data.has_key?(:Email); email_optin(data[:Email], "requested information"); end
57
+ email = data['Email'] || data[:Email]
58
+ if optin_status && email; email_optin(email, optin_status); end
48
59
  return contact_id
49
60
  end
50
61
 
@@ -3,8 +3,8 @@ require 'rest-client'
3
3
  module Infusionsoft
4
4
  # Incase Infusionsoft ever creates a restful API :)
5
5
  module Request
6
- def xmlrpc(service_call, *args)
7
- connection(service_call, *args)
6
+ def xmlrpc(service_call, *args, **kwargs)
7
+ connection(service_call, *args, **kwargs)
8
8
  end
9
9
 
10
10
  # Perform an GET request
@@ -21,6 +21,11 @@ module Infusionsoft
21
21
  request(:put, path, token, query, payload)
22
22
  end
23
23
 
24
+ # Perform an HTTP PATCH request
25
+ def patch(path, token, query: {}, payload: {})
26
+ request(:patch, path, token, query, payload)
27
+ end
28
+
24
29
  # Perform an HTTP DELETE request
25
30
  def delete(path, token, query: {})
26
31
  request(:delete, path, token, query)
@@ -47,7 +52,7 @@ module Infusionsoft
47
52
  rescue RestClient::ExceptionWithResponse => err
48
53
  # log error?
49
54
  else
50
- return JSON.parse(resp.body)
55
+ return JSON.parse(resp.body) if resp.body # Some calls respond w nothing
51
56
  end
52
57
  end
53
58
  end
@@ -1,4 +1,4 @@
1
1
  module Infusionsoft
2
2
  # The version of the gem
3
- VERSION = '1.3.2a'.freeze unless defined?(::Infusionsoft::VERSION)
3
+ VERSION = '1.3.6b'.freeze unless defined?(::Infusionsoft::VERSION)
4
4
  end
@@ -24,7 +24,6 @@ class ContactTest < Test::Unit::TestCase
24
24
  existing_contact = Infusionsoft.contact_load(3606, [:Id, :FirstName, :LastName, :Email, :Company])
25
25
  result = Infusionsoft.contact_add_with_dup_check(data_hash, 'EmailAndName')
26
26
  assert_equal result, existing_contact['Id']
27
- assert_equal Infusionsoft.contact_load(existing_contact['Id'], [:Company])['Company'], data_hash[:Company]
28
27
  end
29
28
  end
30
29
 
data/test/test_helper.rb CHANGED
@@ -2,10 +2,10 @@ require 'coveralls'
2
2
  Coveralls.wear!
3
3
 
4
4
  require 'simplecov'
5
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
6
6
  SimpleCov::Formatter::HTMLFormatter,
7
7
  Coveralls::SimpleCov::Formatter
8
- ]
8
+ ])
9
9
  SimpleCov.start do
10
10
  add_filter '/vendor/'
11
11
  add_filter '/.bundle/'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infusionsoft
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2a
4
+ version: 1.3.6b
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Leavitt
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-24 00:00:00.000000000 Z
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -131,7 +131,7 @@ files:
131
131
  homepage: https://github.com/nateleavitt/infusionsoft
132
132
  licenses: []
133
133
  metadata: {}
134
- post_install_message:
134
+ post_install_message:
135
135
  rdoc_options: []
136
136
  require_paths:
137
137
  - lib
@@ -146,9 +146,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  - !ruby/object:Gem::Version
147
147
  version: 1.3.1
148
148
  requirements: []
149
- rubyforge_project:
150
- rubygems_version: 2.7.6
151
- signing_key:
149
+ rubygems_version: 3.2.3
150
+ signing_key:
152
151
  specification_version: 4
153
152
  summary: Ruby wrapper for the Infusionsoft API
154
153
  test_files: []