README.md in netsuite-0.0.2 vs README.md in netsuite-0.0.3
- old
+ new
@@ -1,8 +1,10 @@
# Netsuite
-TODO: Write a gem description
+* This gem will act as a wrapper around the NetSuite SuiteTalk WebServices API. Wow, that is a mouthful.
+* The gem does not cover the entire API, only the subset that we have found useful to cover so far.
+* [Extending the wrapper](#extending) is pretty simple. See below for an example.
## Installation
Add this line to your application's Gemfile:
@@ -16,10 +18,73 @@
$ gem install netsuite
## Usage
-TODO: Write usage instructions here
+### Customer
+
+* Initializing a customer can be done using a hash of attributes.
+
+#### Get
+
+* Retrieves the customer by internalId.
+
+ ```Ruby
+ customer = NetSuite::Customer.get(4) # => #<NetSuite::Customer:0x1042f59b8>
+ customer.is_person # => true
+ ```
+
+<a name='extending'>
+## Additions
+
+* Please submit a pull request for any models or actions that you would like to be included. The API is quite large and so we will necessarily not cover all of it.
+* Models should go into the `lib/netsuite/models/` directory.
+* Actions should be placed in their respective subdirectory under `lib/netsuite/actions`.
+* Example:
+
+ ```Ruby
+ # lib/netsuite/actions/customer/add.rb
+
+ module NetSuite
+ module Actions
+ module Customer
+ class Add
+
+ def initialize(attributes = {})
+ @attributes = attributes
+ end
+
+ def self.call(attributes)
+ new(attributes).call
+ end
+
+ def call
+ response = NetSuite::Configuration.connection.request :add do
+ soap.header = NetSuite::Configuration.auth_header
+ soap.body = {
+ :entityId => @attributes[:entity_id],
+ :companyName => @attributes[:company_name],
+ :unsubscribe => @attributes[:unsubscribe]
+ }
+ end
+ success = response.to_hash[:add_response][:write_response][:status][:@is_success] == 'true'
+ body = response.to_hash[:add_response][:write_response][:base_ref]
+ NetSuite::Response.new(:success => success, :body => body)
+ end
+
+ end
+ end
+ end
+ end
+
+ response = NetSuite::Actions::Customer::Add.call(
+ :entity_id => 'Shutter Fly',
+ :company_name => 'Shutter Fly, Inc.',
+ :unsubscribe => false
+ ) # => #<NetSuite::Response:0x1041f64b5>
+ response.success? # => true
+ response.body # => { :internal_id => '979', :type => 'customer' }
+ ```
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)