ns_connector 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +25 -14
- data/VERSION +1 -1
- data/lib/ns_connector/errors.rb +4 -4
- data/lib/ns_connector/resource.rb +12 -0
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -21,7 +21,6 @@ Avaliable at {rubydoc.info}[http://rubydoc.info/gems/ns_connector/0.0.10]
|
|
21
21
|
* Read write for supported types
|
22
22
|
* Flexible searching
|
23
23
|
* Multithreaded chunked searching for retrieving large datasets
|
24
|
-
* ActiveRecord (vaguely) alike interface
|
25
24
|
* Read only sublist support.
|
26
25
|
* SubList item creation on creating new records only. (>= v0.0.7)
|
27
26
|
* Attaching and detaching records
|
@@ -114,20 +113,20 @@ Example:
|
|
114
113
|
|
115
114
|
SubLists can be added to a record on creation. Here is how that works:
|
116
115
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
116
|
+
include NSConnector
|
117
|
+
c = Contact.new(:firstname => 'name')
|
118
|
+
c.sublists
|
119
|
+
=> {:addressbook=>
|
120
|
+
[:addr1,
|
121
|
+
...
|
122
|
+
|
123
|
+
c.addressbook << c.new_addressbook_item({
|
124
|
+
:addr1 => 'address line 1',
|
125
|
+
:city => 'unicorn valley'
|
126
|
+
})
|
128
127
|
|
129
|
-
|
130
|
-
|
128
|
+
c.save!
|
129
|
+
=> true
|
131
130
|
|
132
131
|
=== Reading
|
133
132
|
You can find by any field or by internalId.
|
@@ -143,6 +142,10 @@ Example:
|
|
143
142
|
Contact.find(12)
|
144
143
|
=> <#NSConnector::Contact:12>
|
145
144
|
|
145
|
+
# Fetch one Customer by entityid
|
146
|
+
Customer.find_by('entityid', 1234)
|
147
|
+
=> <#NSConnector::Contact:12>
|
148
|
+
|
146
149
|
# Fetch all Contacts, this will take a while. (Request will be broken
|
147
150
|
# up into smaller ones and spread across multiple threads).
|
148
151
|
Contact.all
|
@@ -205,6 +208,14 @@ e.g.
|
|
205
208
|
"allowemptycards"=>nil,
|
206
209
|
"applied"=>"99.99" ...
|
207
210
|
|
211
|
+
== Attaching records
|
212
|
+
You can attach/detach records with #attach! and #detach!, it's pretty simple.
|
213
|
+
|
214
|
+
# Attach customer 123 to contacts 1, 2 and 3 with the role of 1
|
215
|
+
Customer.find(123).attach!(Contact, [1,2,3], :role => 1)
|
216
|
+
|
217
|
+
# Or anonymously like:
|
218
|
+
Customer.attach!(Contact, 123, [1,2,3], :role => 1)
|
208
219
|
|
209
220
|
=== Troubleshooting note:
|
210
221
|
Should you run into an error something like:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.12
|
data/lib/ns_connector/errors.rb
CHANGED
@@ -6,20 +6,20 @@ module NSConnector::Errors
|
|
6
6
|
# Parent class to encapsulate all successfully parsed JSON netsuite
|
7
7
|
# error responses.
|
8
8
|
class NSError < Exception
|
9
|
-
def initialize netsuite_error
|
10
|
-
@netsuite_error = netsuite_error
|
9
|
+
def initialize netsuite_error=nil
|
10
|
+
@netsuite_error = netsuite_error if netsuite_error
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns the error code from the JSON returned by netsuite.
|
14
14
|
# Something like: "RCRD_DSNT_EXIST"
|
15
15
|
def code
|
16
|
-
@netsuite_error['code']
|
16
|
+
@netsuite_error['code'] rescue nil
|
17
17
|
end
|
18
18
|
|
19
19
|
# Takes the error message straight out of the netsuite
|
20
20
|
# response. Usually makes some sense.
|
21
21
|
def message
|
22
|
-
@netsuite_error['message']
|
22
|
+
@netsuite_error['message'] rescue nil
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -197,6 +197,18 @@ class NSConnector::Resource
|
|
197
197
|
)
|
198
198
|
end
|
199
199
|
|
200
|
+
# Return a single resource, by searching for the given field.
|
201
|
+
# Returns:: A single record
|
202
|
+
# Raises:: NSConnector::Errors::NotFound when nothing found
|
203
|
+
def find_by(field, value)
|
204
|
+
results = search_by(field, value)
|
205
|
+
unless results.empty? then
|
206
|
+
return results.first
|
207
|
+
else
|
208
|
+
raise NSConnector::Errors::NotFound
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
200
212
|
# Retrieve all records, will most likely become a chunked
|
201
213
|
# search due to size
|
202
214
|
def all
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ns_connector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -210,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
210
|
version: '0'
|
211
211
|
segments:
|
212
212
|
- 0
|
213
|
-
hash:
|
213
|
+
hash: -1969978753903346248
|
214
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
215
|
none: false
|
216
216
|
requirements:
|