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`)