icontact 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d3a505fef9d111e1ef537217756169f65c579596
4
- data.tar.gz: 06965beb80528dd7cf36f572102d2e10b66552f6
3
+ metadata.gz: f572c6471d13d68cbe4ba58806245804f45d5a66
4
+ data.tar.gz: 20e10242041a60effef3af1e78fa74e82d08633a
5
5
  SHA512:
6
- metadata.gz: be07d42d4083962a9f58e951f22c3c6111113b9c4bdbd865b69c12794a76fc73dd166b8836521fb9ffe9c02f9fb1f9906b1a08ceaceda038e1c0fd4bf18720d8
7
- data.tar.gz: 3d7d61dfb0e167e2333157d1c78d6f9c476bfb0c6b84034aef12f42ba1bfda4554d0f7233f8689cb453dd00ceb0ad68577df7ab9fb0619a10739ec49fcde49f3
6
+ metadata.gz: dcc7988eda595f77b7e559b81f354cffcb1d926c7e8cac578d84c10b398cf89c997b87674b7e13033afbade4b03d9deaff88cfe91aad31f0ebf392b6aeac7baf
7
+ data.tar.gz: 0624508f859b3a0a1b5556510a47429a0fde3c28cefdc7bc8a8d15a9f81936cb894e8b221338f8217d4b7f4f888ffe5f94459205b5248f15693fdc47085a7de4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- icontact (0.0.3)
4
+ icontact (0.0.4)
5
5
  faraday (~> 0.8)
6
6
  oj (~> 2.11)
7
7
 
data/icontact.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  Gem::Specification.new do |gem|
3
3
  gem.name = 'icontact'
4
- gem.version = '0.0.3'
4
+ gem.version = '0.0.4'
5
5
  gem.authors = ['Devin Turner']
6
6
  gem.email = ['devin.turner09@gmail.com']
7
7
  gem.summary = 'Ruby wrapper for the iContact API'
@@ -3,7 +3,7 @@ module IContact
3
3
  module Accounts
4
4
 
5
5
  def get_account(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(accounts_path + id)
8
8
  resource(response, 'account')
9
9
  end
@@ -14,7 +14,7 @@ module IContact
14
14
  end
15
15
 
16
16
  def update_account(id, data)
17
- raise ArgumentError, 'ID cannot be nil' if id.nil?
17
+ ensure_valid_id(id)
18
18
  response = post(accounts_path + id, data)
19
19
  resource(response, 'account')
20
20
  end
@@ -3,7 +3,7 @@ module IContact
3
3
  module ClientFolders
4
4
 
5
5
  def get_client_folder(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(client_folders_path + id)
8
8
  resource(response, 'clientfolder')
9
9
  end
@@ -15,7 +15,7 @@ module IContact
15
15
 
16
16
  def create_client_folder(data)
17
17
  response = post(client_folders_path, wrap(data))
18
- resource(response, 'clientfolders', 0)
18
+ resource(response, 'clientfolders', true)
19
19
  end
20
20
 
21
21
  def create_client_folders(data)
@@ -24,13 +24,13 @@ module IContact
24
24
  end
25
25
 
26
26
  def update_client_folder(id, data)
27
- raise ArgumentError, 'ID cannot be nil' if id.nil?
27
+ ensure_valid_id(id)
28
28
  response = post(client_folders_path + id, data)
29
29
  resource(response, 'clientfolder')
30
30
  end
31
31
 
32
32
  def update_client_folder!(id, data)
33
- raise ArgumentError, 'ID cannot be nil' if id.nil?
33
+ ensure_valid_id(id)
34
34
  response = put(client_folders_path + id, data)
35
35
  resource(response, 'clientfolder')
36
36
  end
@@ -3,7 +3,7 @@ module IContact
3
3
  module Contacts
4
4
 
5
5
  def get_contact(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(contacts_path + id)
8
8
  resource(response, 'contact')
9
9
  end
@@ -15,7 +15,7 @@ module IContact
15
15
 
16
16
  def create_contact(data)
17
17
  response = post(contacts_path, wrap(data))
18
- resource(response, 'contacts', 0)
18
+ resource(response, 'contacts', true)
19
19
  end
20
20
 
21
21
  def create_contacts(data)
@@ -24,13 +24,13 @@ module IContact
24
24
  end
25
25
 
26
26
  def update_contact(id, data)
27
- raise ArgumentError, 'ID cannot be nil' if id.nil?
27
+ ensure_valid_id(id)
28
28
  response = post(contacts_path + id, data)
29
29
  resource(response, 'contact')
30
30
  end
31
31
 
32
32
  def update_contact!(id, data)
33
- raise ArgumentError, 'ID cannot be nil' if id.nil?
33
+ ensure_valid_id(id)
34
34
  response = put(contacts_path + id, data)
35
35
  resource(response, 'contact')
36
36
  end
@@ -41,13 +41,13 @@ module IContact
41
41
  end
42
42
 
43
43
  def delete_contact(id)
44
- raise ArgumentError, 'ID cannot be nil' if id.nil?
44
+ ensure_valid_id(id)
45
45
  response = delete(contacts_path + id)
46
46
  resource(response, 'status')
47
47
  end
48
48
 
49
49
  def find_contacts(data)
50
- raise ArgumentError, 'Data cannot be empty' if data.nil? || data.empty?
50
+ ensure_valid_data(data)
51
51
  data.merge!(limit: 10000) unless data.has_key?(:limit)
52
52
  response = get(contacts_path + query(data))
53
53
  resource(response, 'contacts')
@@ -3,7 +3,7 @@ module IContact
3
3
  module CustomFields
4
4
 
5
5
  def get_custom_field(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(custom_fields_path + id)
8
8
  resource(response, 'customfield')
9
9
  end
@@ -15,7 +15,7 @@ module IContact
15
15
 
16
16
  def create_custom_field(data)
17
17
  response = post(custom_fields_path, wrap(data))
18
- resource(response, 'customfields', 0)
18
+ resource(response, 'customfields', true)
19
19
  end
20
20
 
21
21
  def create_custom_fields(data)
@@ -24,13 +24,13 @@ module IContact
24
24
  end
25
25
 
26
26
  def update_custom_field(id, data)
27
- raise ArgumentError, 'ID cannot be nil' if id.nil?
27
+ ensure_valid_id(id)
28
28
  response = post(custom_fields_path + id, data)
29
29
  resource(response, 'customfield')
30
30
  end
31
31
 
32
32
  def update_custom_field!(id, data)
33
- raise ArgumentError, 'ID cannot be nil' if id.nil?
33
+ ensure_valid_id(id)
34
34
  response = put(custom_fields_path + id, data)
35
35
  resource(response, 'customfield')
36
36
  end
@@ -41,7 +41,7 @@ module IContact
41
41
  end
42
42
 
43
43
  def delete_custom_field(id)
44
- raise ArgumentError, 'ID cannot be nil' if id.nil?
44
+ ensure_valid_id(id)
45
45
  response = delete(custom_fields_path + id)
46
46
  resource(response, 'status')
47
47
  end
@@ -3,7 +3,7 @@ module IContact
3
3
  module Lists
4
4
 
5
5
  def get_list(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(lists_path + id)
8
8
  resource(response, 'list')
9
9
  end
@@ -15,7 +15,7 @@ module IContact
15
15
 
16
16
  def create_list(data)
17
17
  response = post(lists_path, wrap(data))
18
- resource(response, 'lists', 0)
18
+ resource(response, 'lists', true)
19
19
  end
20
20
 
21
21
  def create_lists(data)
@@ -24,13 +24,13 @@ module IContact
24
24
  end
25
25
 
26
26
  def update_list(id, data)
27
- raise ArgumentError, 'ID cannot be nil' if id.nil?
27
+ ensure_valid_id(id)
28
28
  response = post(lists_path + id, data)
29
29
  resource(response, 'list')
30
30
  end
31
31
 
32
32
  def update_list!(id, data)
33
- raise ArgumentError, 'ID cannot be nil' if id.nil?
33
+ ensure_valid_id(id)
34
34
  response = put(lists_path + id, data)
35
35
  resource(response, 'list')
36
36
  end
@@ -41,7 +41,7 @@ module IContact
41
41
  end
42
42
 
43
43
  def delete_list(id)
44
- raise ArgumentError, 'ID cannot be nil' if id.nil?
44
+ ensure_valid_id(id)
45
45
  response = delete(lists_path + id)
46
46
  resource(response, 'status')
47
47
  end
@@ -3,7 +3,7 @@ module IContact
3
3
  module Subscriptions
4
4
 
5
5
  def get_subscription(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(subscriptions_path + id)
8
8
  resource(response, 'subscription')
9
9
  end
@@ -15,7 +15,7 @@ module IContact
15
15
 
16
16
  def create_subscription(data)
17
17
  response = post(subscriptions_path, wrap(data))
18
- resource(response, 'subscriptions', 0)
18
+ resource(response, 'subscriptions', true)
19
19
  end
20
20
 
21
21
  def create_subscriptions(data)
@@ -24,13 +24,13 @@ module IContact
24
24
  end
25
25
 
26
26
  def update_subscription(id, data)
27
- raise ArgumentError, 'ID cannot be nil' if id.nil?
27
+ ensure_valid_id(id)
28
28
  response = post(subscriptions_path + id, data)
29
29
  resource(response, 'subscription')
30
30
  end
31
31
 
32
32
  def move_contact(id, data)
33
- raise ArgumentError, 'ID cannot be nil' if id.nil?
33
+ ensure_valid_id(id)
34
34
  response = put(subscriptions_path + id, data)
35
35
  resource(response, 'subscription')
36
36
  end
@@ -3,7 +3,7 @@ module IContact
3
3
  module Users
4
4
 
5
5
  def get_user(id)
6
- raise ArgumentError, 'ID cannot be nil' if id.nil?
6
+ ensure_valid_id(id)
7
7
  response = get(users_path + id)
8
8
  resource(response, 'user')
9
9
  end
@@ -15,7 +15,7 @@ module IContact
15
15
 
16
16
  def create_user(data)
17
17
  response = post(users_path, wrap(data))
18
- resource(response, 'users', 0)
18
+ resource(response, 'users', true)
19
19
  end
20
20
 
21
21
  def create_users(data)
@@ -24,7 +24,7 @@ module IContact
24
24
  end
25
25
 
26
26
  def update_user(id, data)
27
- raise ArgumentError, 'ID cannot be nil' if id.nil?
27
+ ensure_valid_id(id)
28
28
  response = post(users_path + id, data)
29
29
  resource(response, 'user')
30
30
  end
@@ -35,7 +35,7 @@ module IContact
35
35
  end
36
36
 
37
37
  def delete_user(id)
38
- raise ArgumentError, 'ID cannot be nil' if id.nil?
38
+ ensure_valid_id(id)
39
39
  response = delete(users_path + id)
40
40
  resource(response, 'status')
41
41
  end
data/lib/icontact/api.rb CHANGED
@@ -53,13 +53,13 @@ module IContact
53
53
  data.respond_to?(:to_ary) ? data.to_ary : [data]
54
54
  end
55
55
 
56
- def resource(data, field, position = nil)
57
- if data.empty? || data[field].nil?
56
+ def resource(data, collection, first = false)
57
+ if data.empty? || data[collection].nil?
58
58
  []
59
- elsif position.nil?
60
- data[field]
59
+ elsif first
60
+ data[collection].first
61
61
  else
62
- data[field][position]
62
+ data[collection]
63
63
  end
64
64
  end
65
65
 
@@ -13,12 +13,12 @@ module IContact
13
13
  end
14
14
 
15
15
  def post(path, data)
16
- raise ArgumentError, 'Data cannot be empty' if data.nil? || data.empty?
16
+ ensure_valid(data)
17
17
  request(:post, path, data)
18
18
  end
19
19
 
20
20
  def put(path, data)
21
- raise ArgumentError, 'Data cannot be empty' if data.nil? || data.empty?
21
+ ensure_valid_data(data)
22
22
  request(:put, path, data)
23
23
  end
24
24
 
@@ -45,7 +45,7 @@ module IContact
45
45
  end
46
46
 
47
47
  def request(method, path, data = {})
48
- request = data.empty? ? '' : Oj.dump(data, mode: :compat)
48
+ request = Oj.dump((data || {}), mode: :compat)
49
49
  response = connection.run_request(method, BASE_URL + path, request, headers)
50
50
  handle_response(response)
51
51
  end
@@ -62,12 +62,18 @@ module IContact
62
62
  def response_success(response)
63
63
  if response.env[:method] == :delete
64
64
  { 'status' => true }
65
- elsif !response.body.nil? && !response.body.strip.empty?
66
- Oj.load(response.body, mode: :compat)
67
65
  else
68
- []
66
+ Oj.load((response.body || {}), mode: :compat)
69
67
  end
70
68
  end
71
69
 
70
+ def ensure_valid_id(id)
71
+ raise ArgumentError, 'ID cannot be nil' if id.nil?
72
+ end
73
+
74
+ def ensure_valid_data(data)
75
+ raise ArgumentError, 'Data cannot be empty' if data.nil? || data.empty?
76
+ end
77
+
72
78
  end
73
79
  end
@@ -28,7 +28,7 @@ module IContact
28
28
  class IContact::UnsupportedMediaType < IContactError; end
29
29
 
30
30
  class ErrorHandler
31
- ERRORS = {
31
+ MAPPED_ERRORS = {
32
32
  400 => IContact::BadRequest,
33
33
  401 => IContact::NotAuthorized,
34
34
  402 => IContact::PaymentRequest,
@@ -44,11 +44,12 @@ module IContact
44
44
  }
45
45
 
46
46
  def initialize(response)
47
- error_class = ERRORS[response.status.to_i]
48
- message = Oj.load(response.body)['errors']
47
+ klass = MAPPED_ERRORS[response.status.to_i]
48
+ parsed = Oj.load(response.body || '')
49
+ message = parsed.nil? ? '' : parsed['errors']
49
50
 
50
- if error_class
51
- raise error_class.new(message)
51
+ if klass
52
+ raise klass.new(message)
52
53
  else
53
54
  raise IContactError.new("#{response.status}: #{message}")
54
55
  end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: icontact
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Devin Turner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-13 00:00:00.000000000 Z
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.11'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.5'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.0'
83
83
  description:
@@ -87,8 +87,8 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - ".gitignore"
91
- - ".rspec"
90
+ - .gitignore
91
+ - .rspec
92
92
  - Gemfile
93
93
  - Gemfile.lock
94
94
  - LICENSE.txt
@@ -118,12 +118,12 @@ require_paths:
118
118
  - lib
119
119
  required_ruby_version: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ">="
121
+ - - '>='
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  requirements:
126
- - - ">="
126
+ - - '>='
127
127
  - !ruby/object:Gem::Version
128
128
  version: 1.3.6
129
129
  requirements: []