solve360 0.0.7 → 0.0.8

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -6,4 +6,9 @@ require "active_support/core_ext/hash"
6
6
 
7
7
  ["item", "config", "contact", "company"].each do |lib|
8
8
  require File.join(File.dirname(__FILE__), "solve360", lib)
9
+ end
10
+
11
+ module Solve360
12
+ class SaveFailure < Exception
13
+ end
9
14
  end
@@ -49,14 +49,23 @@ module Solve360
49
49
 
50
50
  if new_record?
51
51
  response = self.class.request(:post, "/#{self.class.resource_name}", to_request)
52
- self.id = response["response"]["item"]["id"]
52
+
53
+ if !response["response"]["errors"]
54
+ self.id = response["response"]["item"]["id"]
55
+ end
53
56
  else
54
57
  response = self.class.request(:put, "/#{self.class.resource_name}/#{id}", to_request)
55
58
  end
56
59
 
57
- related_items.concat(related_items_to_add)
58
-
59
- response
60
+ if response["response"]["errors"]
61
+ message = response["response"]["errors"].map {|k,v| "#{k}: #{v}" }.join("\n")
62
+ raise Solve360::SaveFailure, message
63
+ else
64
+ related_items.concat(related_items_to_add)
65
+
66
+ response
67
+ end
68
+
60
69
  end
61
70
 
62
71
  def new_record?
@@ -211,4 +211,17 @@ describe "Finding all records" do
211
211
  first.fields["First Name"].should == "Aaron"
212
212
  first.fields["Last Name"].should == "Baileys"
213
213
  end
214
+ end
215
+
216
+ describe "Handling errors" do
217
+ before do
218
+ stub_http_response_with("contacts/save-failed.json")
219
+ @contact = Solve360::Contact.new(:fields => {"First Name" => "Steve"})
220
+ end
221
+
222
+ it "should be invalid" do
223
+ lambda {
224
+ @contact.save
225
+ }.should raise_error(Solve360::SaveFailure)
226
+ end
214
227
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solve360
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 8
9
+ version: 0.0.8
5
10
  platform: ruby
6
11
  authors:
7
12
  - Stephen Bartholomew
@@ -9,39 +14,49 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-04 00:00:00 +00:00
17
+ date: 2010-05-17 00:00:00 +01:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: configify
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 0
30
+ - 1
23
31
  version: 0.0.1
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: activesupport
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
33
43
  version: "0"
34
- version:
44
+ type: :runtime
45
+ version_requirements: *id002
35
46
  - !ruby/object:Gem::Dependency
36
47
  name: httparty
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
40
50
  requirements:
41
51
  - - ">="
42
52
  - !ruby/object:Gem::Version
53
+ segments:
54
+ - 0
55
+ - 4
56
+ - 5
43
57
  version: 0.4.5
44
- version:
58
+ type: :runtime
59
+ version_requirements: *id003
45
60
  description: ""
46
61
  email: Stephen Bartholomew
47
62
  executables: []
@@ -67,8 +82,8 @@ files:
67
82
  - spec/fixtures/contacts/find-company-success.json
68
83
  - spec/fixtures/contacts/find-success.json
69
84
  - spec/fixtures/contacts/index.json
85
+ - spec/fixtures/contacts/save-failed.json
70
86
  - spec/fixtures/contacts/show-success.json
71
- - spec/fixtures/contacts/update-failed.json
72
87
  - spec/fixtures/contacts/update-success.json
73
88
  - spec/solve360/item_spec.rb
74
89
  - spec/spec.opts
@@ -86,18 +101,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
101
  requirements:
87
102
  - - ">="
88
103
  - !ruby/object:Gem::Version
104
+ segments:
105
+ - 0
89
106
  version: "0"
90
- version:
91
107
  required_rubygems_version: !ruby/object:Gem::Requirement
92
108
  requirements:
93
109
  - - ">="
94
110
  - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
95
113
  version: "0"
96
- version:
97
114
  requirements: []
98
115
 
99
116
  rubyforge_project:
100
- rubygems_version: 1.3.5
117
+ rubygems_version: 1.3.6
101
118
  signing_key:
102
119
  specification_version: 3
103
120
  summary: Libary for working with the Solve360 CRM API