Class: Quickbooks::Service::BaseService
- Inherits:
-
Object
- Object
- Quickbooks::Service::BaseService
- Includes:
- ServiceCrud, Util::Logging
- Defined in:
- lib/quickbooks/service/base_service.rb
Direct Known Subclasses
AccessToken, Account, Attachable, Batch, Bill, BillPayment, Budget, Class, CompanyInfo, CreditMemo, Customer, CustomerChange, Department, Deposit, Employee, Estimate, Invoice, InvoiceChange, Item, ItemChange, JournalEntry, Payment, PaymentMethod, Preferences, Purchase, PurchaseOrder, RefundReceipt, Reports, SalesReceipt, TaxCode, TaxRate, Term, TimeActivity, Upload, Vendor, VendorChange, VendorCredit
Constant Summary collapse
- XML_NS =
%{xmlns="http://schema.intuit.com/finance/v3"}
- HTTP_CONTENT_TYPE =
'application/xml'
- HTTP_ACCEPT =
'application/xml'
- HTTP_ACCEPT_ENCODING =
'gzip, deflate'
- BASE_DOMAIN =
'quickbooks.api.intuit.com'
- SANDBOX_DOMAIN =
'sandbox-quickbooks.api.intuit.com'
Instance Attribute Summary collapse
-
#base_uri ⇒ Object
readonly
Returns the value of attribute base_uri.
-
#company_id ⇒ Object
Returns the value of attribute company_id.
-
#last_response_body ⇒ Object
readonly
Returns the value of attribute last_response_body.
-
#last_response_xml ⇒ Object
readonly
Returns the value of attribute last_response_xml.
-
#oauth ⇒ Object
Returns the value of attribute oauth.
Instance Method Summary collapse
- #access_token=(token) ⇒ Object
- #default_model_query ⇒ Object
-
#initialize(attributes = {}) ⇒ BaseService
constructor
A new instance of BaseService.
-
#realm_id=(company_id) ⇒ Object
realm & company are synonymous.
- #url_for_base ⇒ Object
- #url_for_query(query = nil, start_position = 1, max_results = 20) ⇒ Object
- #url_for_resource(resource) ⇒ Object
Methods included from ServiceCrud
#create, #delete, #delete_by_query_string, #fetch_by_id, #query, #query_in_batches
Methods included from Util::Logging
Constructor Details
#initialize(attributes = {}) ⇒ BaseService
Returns a new instance of BaseService.
20 21 22 23 24 |
# File 'lib/quickbooks/service/base_service.rb', line 20 def initialize(attributes = {}) domain = Quickbooks.sandbox_mode ? SANDBOX_DOMAIN : BASE_DOMAIN @base_uri = "https://#{domain}/v3/company" attributes.each {|key, value| public_send("#{key}=", value) } end |
Instance Attribute Details
#base_uri ⇒ Object (readonly)
Returns the value of attribute base_uri.
9 10 11 |
# File 'lib/quickbooks/service/base_service.rb', line 9 def base_uri @base_uri end |
#company_id ⇒ Object
Returns the value of attribute company_id.
7 8 9 |
# File 'lib/quickbooks/service/base_service.rb', line 7 def company_id @company_id end |
#last_response_body ⇒ Object (readonly)
Returns the value of attribute last_response_body.
10 11 12 |
# File 'lib/quickbooks/service/base_service.rb', line 10 def last_response_body @last_response_body end |
#last_response_xml ⇒ Object (readonly)
Returns the value of attribute last_response_xml.
11 12 13 |
# File 'lib/quickbooks/service/base_service.rb', line 11 def last_response_xml @last_response_xml end |
#oauth ⇒ Object
Returns the value of attribute oauth.
8 9 10 |
# File 'lib/quickbooks/service/base_service.rb', line 8 def oauth @oauth end |
Instance Method Details
#access_token=(token) ⇒ Object
26 27 28 |
# File 'lib/quickbooks/service/base_service.rb', line 26 def access_token=(token) @oauth = token end |
#default_model_query ⇒ Object
48 49 50 |
# File 'lib/quickbooks/service/base_service.rb', line 48 def default_model_query "SELECT * FROM #{self.class.name.split("::").last}" end |
#realm_id=(company_id) ⇒ Object
realm & company are synonymous
35 36 37 |
# File 'lib/quickbooks/service/base_service.rb', line 35 def realm_id=(company_id) @company_id = company_id end |
#url_for_base ⇒ Object
43 44 45 46 |
# File 'lib/quickbooks/service/base_service.rb', line 43 def url_for_base raise MissingRealmError.new unless @company_id "#{@base_uri}/#{@company_id}" end |
#url_for_query(query = nil, start_position = 1, max_results = 20) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/quickbooks/service/base_service.rb', line 52 def url_for_query(query = nil, start_position = 1, max_results = 20) query ||= default_model_query query = "#{query} STARTPOSITION #{start_position} MAXRESULTS #{max_results}" "#{url_for_base}/query?query=#{URI.encode_www_form_component(query)}" end |
#url_for_resource(resource) ⇒ Object
39 40 41 |
# File 'lib/quickbooks/service/base_service.rb', line 39 def url_for_resource(resource) "#{url_for_base}/#{resource}" end |