quickbooks-ruby-oauth2 0.6.1
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.
- checksums.yaml +7 -0
- data/lib/quickbooks/faraday/middleware/gzip.rb +72 -0
- data/lib/quickbooks/model/access_token_response.rb +29 -0
- data/lib/quickbooks/model/account.rb +78 -0
- data/lib/quickbooks/model/account_based_expense_line_detail.rb +15 -0
- data/lib/quickbooks/model/attachable.rb +33 -0
- data/lib/quickbooks/model/attachable_ref.rb +22 -0
- data/lib/quickbooks/model/base_model.rb +120 -0
- data/lib/quickbooks/model/base_model_json.rb +16 -0
- data/lib/quickbooks/model/base_reference.rb +23 -0
- data/lib/quickbooks/model/batch_request.rb +45 -0
- data/lib/quickbooks/model/batch_response.rb +33 -0
- data/lib/quickbooks/model/bill.rb +45 -0
- data/lib/quickbooks/model/bill_line_item.rb +42 -0
- data/lib/quickbooks/model/bill_payment.rb +40 -0
- data/lib/quickbooks/model/bill_payment_check.rb +12 -0
- data/lib/quickbooks/model/bill_payment_credit_card.rb +10 -0
- data/lib/quickbooks/model/bill_payment_line_item.rb +21 -0
- data/lib/quickbooks/model/budget.rb +27 -0
- data/lib/quickbooks/model/budget_line_item.rb +15 -0
- data/lib/quickbooks/model/change_data_capture.rb +42 -0
- data/lib/quickbooks/model/change_model.rb +10 -0
- data/lib/quickbooks/model/check_payment.rb +11 -0
- data/lib/quickbooks/model/class.rb +31 -0
- data/lib/quickbooks/model/company_info.rb +69 -0
- data/lib/quickbooks/model/credit_card_payment.rb +17 -0
- data/lib/quickbooks/model/credit_memo.rb +59 -0
- data/lib/quickbooks/model/credit_memo_change.rb +8 -0
- data/lib/quickbooks/model/custom_field.rb +13 -0
- data/lib/quickbooks/model/customer.rb +76 -0
- data/lib/quickbooks/model/customer_change.rb +8 -0
- data/lib/quickbooks/model/definition.rb +46 -0
- data/lib/quickbooks/model/delivery_info.rb +8 -0
- data/lib/quickbooks/model/department.rb +31 -0
- data/lib/quickbooks/model/deposit.rb +44 -0
- data/lib/quickbooks/model/deposit_line_detail.rb +17 -0
- data/lib/quickbooks/model/deposit_line_item.rb +35 -0
- data/lib/quickbooks/model/description_line_detail.rb +7 -0
- data/lib/quickbooks/model/discount_line_detail.rb +15 -0
- data/lib/quickbooks/model/discount_override.rb +13 -0
- data/lib/quickbooks/model/document_numbering.rb +18 -0
- data/lib/quickbooks/model/effective_tax_rate.rb +15 -0
- data/lib/quickbooks/model/email_address.rb +19 -0
- data/lib/quickbooks/model/employee.rb +47 -0
- data/lib/quickbooks/model/entity.rb +16 -0
- data/lib/quickbooks/model/entity_ref.rb +8 -0
- data/lib/quickbooks/model/estimate.rb +76 -0
- data/lib/quickbooks/model/exchange_rate.rb +23 -0
- data/lib/quickbooks/model/fault.rb +16 -0
- data/lib/quickbooks/model/global_tax_calculation.rb +13 -0
- data/lib/quickbooks/model/group_line_detail.rb +13 -0
- data/lib/quickbooks/model/has_line_items.rb +14 -0
- data/lib/quickbooks/model/invoice.rb +107 -0
- data/lib/quickbooks/model/invoice_change.rb +9 -0
- data/lib/quickbooks/model/invoice_group_line_detail.rb +14 -0
- data/lib/quickbooks/model/invoice_line_item.rb +88 -0
- data/lib/quickbooks/model/item.rb +87 -0
- data/lib/quickbooks/model/item_based_expense_line_detail.rb +20 -0
- data/lib/quickbooks/model/item_change.rb +8 -0
- data/lib/quickbooks/model/item_group_detail.rb +9 -0
- data/lib/quickbooks/model/item_group_line.rb +20 -0
- data/lib/quickbooks/model/journal_entry.rb +36 -0
- data/lib/quickbooks/model/journal_entry_line_detail.rb +27 -0
- data/lib/quickbooks/model/line.rb +95 -0
- data/lib/quickbooks/model/line_ex.rb +9 -0
- data/lib/quickbooks/model/linked_transaction.rb +9 -0
- data/lib/quickbooks/model/markup_info.rb +12 -0
- data/lib/quickbooks/model/meta_data.rb +24 -0
- data/lib/quickbooks/model/name_value.rb +8 -0
- data/lib/quickbooks/model/other_contact_info.rb +8 -0
- data/lib/quickbooks/model/payment.rb +43 -0
- data/lib/quickbooks/model/payment_change.rb +8 -0
- data/lib/quickbooks/model/payment_line_detail.rb +12 -0
- data/lib/quickbooks/model/payment_method.rb +25 -0
- data/lib/quickbooks/model/physical_address.rb +40 -0
- data/lib/quickbooks/model/preferences.rb +49 -0
- data/lib/quickbooks/model/purchase.rb +57 -0
- data/lib/quickbooks/model/purchase_line_item.rb +44 -0
- data/lib/quickbooks/model/purchase_order.rb +50 -0
- data/lib/quickbooks/model/purchase_tax_rate_list.rb +11 -0
- data/lib/quickbooks/model/refund_receipt.rb +62 -0
- data/lib/quickbooks/model/refund_receipt_change.rb +8 -0
- data/lib/quickbooks/model/report.rb +52 -0
- data/lib/quickbooks/model/sales_item_line_detail.rb +16 -0
- data/lib/quickbooks/model/sales_receipt.rb +65 -0
- data/lib/quickbooks/model/sales_tax_rate_list.rb +11 -0
- data/lib/quickbooks/model/sub_total_line_detail.rb +13 -0
- data/lib/quickbooks/model/tax_agency.rb +18 -0
- data/lib/quickbooks/model/tax_code.rb +21 -0
- data/lib/quickbooks/model/tax_line.rb +15 -0
- data/lib/quickbooks/model/tax_line_detail.rb +16 -0
- data/lib/quickbooks/model/tax_rate.rb +28 -0
- data/lib/quickbooks/model/tax_rate_detail.rb +15 -0
- data/lib/quickbooks/model/tax_rate_detail_line.rb +23 -0
- data/lib/quickbooks/model/tax_service.rb +52 -0
- data/lib/quickbooks/model/telephone_number.rb +13 -0
- data/lib/quickbooks/model/term.rb +28 -0
- data/lib/quickbooks/model/time_activity.rb +79 -0
- data/lib/quickbooks/model/transaction_tax_detail.rb +12 -0
- data/lib/quickbooks/model/transfer.rb +21 -0
- data/lib/quickbooks/model/upload.rb +35 -0
- data/lib/quickbooks/model/validator.rb +10 -0
- data/lib/quickbooks/model/vendor.rb +53 -0
- data/lib/quickbooks/model/vendor_change.rb +8 -0
- data/lib/quickbooks/model/vendor_credit.rb +40 -0
- data/lib/quickbooks/model/web_site_address.rb +16 -0
- data/lib/quickbooks/service/access_token.rb +38 -0
- data/lib/quickbooks/service/account.rb +17 -0
- data/lib/quickbooks/service/attachable.rb +12 -0
- data/lib/quickbooks/service/base_service.rb +445 -0
- data/lib/quickbooks/service/base_service_json.rb +39 -0
- data/lib/quickbooks/service/batch.rb +11 -0
- data/lib/quickbooks/service/bill.rb +16 -0
- data/lib/quickbooks/service/bill_payment.rb +16 -0
- data/lib/quickbooks/service/budget.rb +12 -0
- data/lib/quickbooks/service/change_data_capture.rb +24 -0
- data/lib/quickbooks/service/change_service.rb +28 -0
- data/lib/quickbooks/service/class.rb +23 -0
- data/lib/quickbooks/service/company_info.rb +12 -0
- data/lib/quickbooks/service/credit_memo.rb +16 -0
- data/lib/quickbooks/service/credit_memo_change.rb +16 -0
- data/lib/quickbooks/service/customer.rb +18 -0
- data/lib/quickbooks/service/customer_change.rb +16 -0
- data/lib/quickbooks/service/department.rb +23 -0
- data/lib/quickbooks/service/deposit.rb +16 -0
- data/lib/quickbooks/service/employee.rb +24 -0
- data/lib/quickbooks/service/estimate.rb +22 -0
- data/lib/quickbooks/service/exchange_rate.rb +25 -0
- data/lib/quickbooks/service/invoice.rb +45 -0
- data/lib/quickbooks/service/invoice_change.rb +16 -0
- data/lib/quickbooks/service/item.rb +32 -0
- data/lib/quickbooks/service/item_change.rb +16 -0
- data/lib/quickbooks/service/journal_entry.rb +16 -0
- data/lib/quickbooks/service/payment.rb +29 -0
- data/lib/quickbooks/service/payment_change.rb +16 -0
- data/lib/quickbooks/service/payment_method.rb +30 -0
- data/lib/quickbooks/service/preferences.rb +12 -0
- data/lib/quickbooks/service/purchase.rb +16 -0
- data/lib/quickbooks/service/purchase_order.rb +16 -0
- data/lib/quickbooks/service/refund_receipt.rb +16 -0
- data/lib/quickbooks/service/refund_receipt_change.rb +16 -0
- data/lib/quickbooks/service/reports.rb +33 -0
- data/lib/quickbooks/service/responses/methods.rb +17 -0
- data/lib/quickbooks/service/responses/oauth1_http_response.rb +42 -0
- data/lib/quickbooks/service/responses/oauth2_http_response.rb +43 -0
- data/lib/quickbooks/service/responses/oauth_http_response.rb +21 -0
- data/lib/quickbooks/service/sales_receipt.rb +46 -0
- data/lib/quickbooks/service/service_crud.rb +75 -0
- data/lib/quickbooks/service/service_crud_json.rb +31 -0
- data/lib/quickbooks/service/tax_agency.rb +12 -0
- data/lib/quickbooks/service/tax_code.rb +12 -0
- data/lib/quickbooks/service/tax_rate.rb +12 -0
- data/lib/quickbooks/service/tax_service.rb +11 -0
- data/lib/quickbooks/service/term.rb +17 -0
- data/lib/quickbooks/service/time_activity.rb +16 -0
- data/lib/quickbooks/service/transfer.rb +16 -0
- data/lib/quickbooks/service/upload.rb +39 -0
- data/lib/quickbooks/service/vendor.rb +24 -0
- data/lib/quickbooks/service/vendor_change.rb +16 -0
- data/lib/quickbooks/service/vendor_credit.rb +16 -0
- data/lib/quickbooks/util/collection.rb +18 -0
- data/lib/quickbooks/util/http_encoding_helper.rb +54 -0
- data/lib/quickbooks/util/logging.rb +19 -0
- data/lib/quickbooks/util/multipart.rb +85 -0
- data/lib/quickbooks/util/name_entity.rb +85 -0
- data/lib/quickbooks/util/query_builder.rb +35 -0
- data/lib/quickbooks/version.rb +5 -0
- data/lib/quickbooks-ruby.rb +255 -0
- metadata +378 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class ChangeService < BaseService
|
|
4
|
+
|
|
5
|
+
def url_for_query(query = nil, start_position = 1, max_results = 20)
|
|
6
|
+
q = entity
|
|
7
|
+
q = "#{q}&#{query}" if query.present?
|
|
8
|
+
|
|
9
|
+
"#{url_for_base}/cdc?entities=#{q}"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def since(timestamp)
|
|
13
|
+
query("changedSince=#{URI.encode_www_form_component(timestamp.iso8601)}")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def entity
|
|
19
|
+
raise NotImplementedError
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def model
|
|
23
|
+
raise NotImplementedError
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Class < BaseService
|
|
4
|
+
|
|
5
|
+
def update(entity, options = {})
|
|
6
|
+
raise Quickbooks::InvalidModelException.new('Class sparse update is not supported by Intuit at this time') if options[:sparse] && options[:sparse] == true
|
|
7
|
+
super(entity, options)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def delete(classs)
|
|
11
|
+
classs.active = false
|
|
12
|
+
update(classs, :sparse => false)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def model
|
|
18
|
+
Quickbooks::Model::Class
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Customer < BaseService
|
|
4
|
+
|
|
5
|
+
def delete(customer)
|
|
6
|
+
customer.active = false
|
|
7
|
+
update(customer, :sparse => true)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def model
|
|
13
|
+
Quickbooks::Model::Customer
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Department < BaseService
|
|
4
|
+
|
|
5
|
+
def update(entity, options = {})
|
|
6
|
+
raise Quickbooks::InvalidModelException.new('Department sparse update is not supported by Intuit at this time') if options[:sparse] && options[:sparse] == true
|
|
7
|
+
super(entity, options)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def delete(department)
|
|
11
|
+
department.active = false
|
|
12
|
+
update(department, :sparse => false)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def model
|
|
18
|
+
Quickbooks::Model::Department
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Employee < BaseService
|
|
4
|
+
|
|
5
|
+
# override update as sparse is not supported
|
|
6
|
+
def update(entity, options = {})
|
|
7
|
+
raise Quickbooks::InvalidModelException.new('Employee sparse update is not supported by Intuit at this time') if options[:sparse] && options[:sparse] == true
|
|
8
|
+
super(entity, options)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def delete(employee)
|
|
12
|
+
employee.active = false
|
|
13
|
+
update(employee, :sparse => false)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def model
|
|
19
|
+
Quickbooks::Model::Employee
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Estimate < BaseService
|
|
4
|
+
|
|
5
|
+
def delete(estimate)
|
|
6
|
+
delete_by_query_string(estimate)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def pdf(estimate)
|
|
10
|
+
url = "#{url_for_resource(model::REST_RESOURCE)}/#{estimate.id}/pdf"
|
|
11
|
+
response = do_http_raw_get(url, {}, {'Accept' => 'application/pdf'})
|
|
12
|
+
response.plain_body
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def model
|
|
18
|
+
Quickbooks::Model::Estimate
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class ExchangeRate < BaseService
|
|
4
|
+
|
|
5
|
+
def fetch_by_currency(source_currency_code, as_of_date = nil)
|
|
6
|
+
url = url_for_resource(model::REST_RESOURCE)
|
|
7
|
+
params = { sourcecurrencycode: source_currency_code }
|
|
8
|
+
params[:asofdate] = as_of_date unless as_of_date.nil?
|
|
9
|
+
|
|
10
|
+
response = do_http_get(url, params)
|
|
11
|
+
if response.code.to_i == 200
|
|
12
|
+
model.from_xml(parse_singular_entity_response(model, response.plain_body))
|
|
13
|
+
else
|
|
14
|
+
nil
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def model
|
|
21
|
+
Quickbooks::Model::ExchangeRate
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Invoice < BaseService
|
|
4
|
+
|
|
5
|
+
def delete(invoice)
|
|
6
|
+
delete_by_query_string(invoice)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def send(invoice, email_address=nil)
|
|
10
|
+
query = email_address.present? ? "?sendTo=#{email_address}" : ""
|
|
11
|
+
url = "#{url_for_resource(model::REST_RESOURCE)}/#{invoice.id}/send#{query}"
|
|
12
|
+
response = do_http_post(url, "", {}, { 'Content-Type' => 'application/octet-stream' })
|
|
13
|
+
if response.code.to_i == 200
|
|
14
|
+
model.from_xml(parse_singular_entity_response(model, response.plain_body))
|
|
15
|
+
else
|
|
16
|
+
nil
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def pdf(invoice)
|
|
21
|
+
url = "#{url_for_resource(model::REST_RESOURCE)}/#{invoice.id}/pdf"
|
|
22
|
+
response = do_http_raw_get(url, {}, {'Accept' => 'application/pdf'})
|
|
23
|
+
response.plain_body
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def void(invoice, options = {})
|
|
27
|
+
url = "#{url_for_resource(model::REST_RESOURCE)}?operation=void"
|
|
28
|
+
|
|
29
|
+
xml = invoice.to_xml_ns(options)
|
|
30
|
+
response = do_http_post(url, valid_xml_document(xml))
|
|
31
|
+
if response.code.to_i == 200
|
|
32
|
+
model.from_xml(parse_singular_entity_response(model, response.plain_body))
|
|
33
|
+
else
|
|
34
|
+
false
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def model
|
|
41
|
+
Quickbooks::Model::Invoice
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Item < BaseService
|
|
4
|
+
|
|
5
|
+
def delete(item)
|
|
6
|
+
item.active = false
|
|
7
|
+
update(item, :sparse => true)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def url_for_resource(resource)
|
|
11
|
+
url = super(resource)
|
|
12
|
+
"#{url}?minorversion=#{Quickbooks::Model::Item::MINORVERSION}"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def fetch_by_id(id, params = {})
|
|
16
|
+
url = "#{url_for_base}/item/#{id}?minorversion=#{Quickbooks::Model::Item::MINORVERSION}"
|
|
17
|
+
fetch_object(model, url, params)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def url_for_query(query = nil, start_position = 1, max_results = 20, options = {})
|
|
21
|
+
url = super(query, start_position, max_results, options)
|
|
22
|
+
"#{url}&minorversion=#{Quickbooks::Model::Item::MINORVERSION}"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def model
|
|
28
|
+
Quickbooks::Model::Item
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class Payment < BaseService
|
|
4
|
+
|
|
5
|
+
def delete(payment)
|
|
6
|
+
delete_by_query_string(payment)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def void(entity, options = {})
|
|
10
|
+
raise Quickbooks::InvalidModelException.new(entity.errors.full_messages.join(',')) unless entity.valid?
|
|
11
|
+
xml = entity.to_xml_ns(options)
|
|
12
|
+
url = "#{url_for_resource(model::REST_RESOURCE)}?include=void"
|
|
13
|
+
|
|
14
|
+
response = do_http_post(url, valid_xml_document(xml), {})
|
|
15
|
+
if response.code.to_i == 200
|
|
16
|
+
model.from_xml(parse_singular_entity_response(model, response.plain_body))
|
|
17
|
+
else
|
|
18
|
+
false
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def model
|
|
25
|
+
Quickbooks::Model::Payment
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
class PaymentMethod < BaseService
|
|
4
|
+
|
|
5
|
+
def fetch_by_name(name)
|
|
6
|
+
self.query(search_name_query(name)).entries.first
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def search_name_query(name)
|
|
10
|
+
"SELECT * FROM PaymentMethod WHERE Name = '#{name}'"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def update(entity, options = {})
|
|
14
|
+
raise Quickbooks::InvalidModelException.new('Payment Method sparse update is not supported by Intuit at this time') if options[:sparse] && options[:sparse] == true
|
|
15
|
+
super(entity, options)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def delete(department)
|
|
19
|
+
department.active = false
|
|
20
|
+
update(department, :sparse => false)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def model
|
|
26
|
+
Quickbooks::Model::PaymentMethod
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Docs: https://developer.intuit.com/docs/0100_accounting/0400_references/reports
|
|
2
|
+
module Quickbooks
|
|
3
|
+
module Service
|
|
4
|
+
class Reports < BaseService
|
|
5
|
+
|
|
6
|
+
def url_for_query(which_report = 'BalanceSheet', date_macro = 'This Fiscal Year-to-date', options = {})
|
|
7
|
+
if(options == {})
|
|
8
|
+
return "#{url_for_base}/reports/#{which_report}?date_macro=#{URI.encode_www_form_component(date_macro)}"
|
|
9
|
+
else
|
|
10
|
+
options_string = ""
|
|
11
|
+
options.each do |key, value|
|
|
12
|
+
options_string += "#{key}=#{value}&"
|
|
13
|
+
end
|
|
14
|
+
options_string = options_string[0..-2]
|
|
15
|
+
options_string.gsub!(/\s/,"%20")
|
|
16
|
+
return "#{url_for_base}/reports/#{which_report}?#{options_string}"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def query(object_query = 'BalanceSheet', date_macro = 'This Fiscal Year-to-date', options = {})
|
|
21
|
+
do_http_get(url_for_query(object_query, date_macro, options))
|
|
22
|
+
model.new(:xml => @last_response_xml)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def model
|
|
28
|
+
Quickbooks::Model::Report
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
module Responses
|
|
4
|
+
|
|
5
|
+
class OAuth1HttpResponse < OAuthHttpResponse
|
|
6
|
+
|
|
7
|
+
attr_accessor :real_response
|
|
8
|
+
|
|
9
|
+
# net/http response
|
|
10
|
+
def initialize(response)
|
|
11
|
+
@real_response = response
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def version
|
|
15
|
+
1
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def code
|
|
19
|
+
@real_response.code.to_i
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def plain_body
|
|
23
|
+
if @real_response.respond_to?(:plain_body)
|
|
24
|
+
@real_response.plain_body
|
|
25
|
+
else
|
|
26
|
+
nil
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def headers
|
|
31
|
+
if @real_response.respond_to?(:headers)
|
|
32
|
+
@real_response.headers
|
|
33
|
+
else
|
|
34
|
+
nil
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Quickbooks
|
|
2
|
+
module Service
|
|
3
|
+
module Responses
|
|
4
|
+
|
|
5
|
+
class OAuth2HttpResponse
|
|
6
|
+
include Quickbooks::Service::Responses::Methods
|
|
7
|
+
|
|
8
|
+
attr_accessor :real_response
|
|
9
|
+
|
|
10
|
+
# response : Faraday response
|
|
11
|
+
def initialize(response)
|
|
12
|
+
@real_response = response
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def version
|
|
16
|
+
2
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def body
|
|
20
|
+
@real_response.body
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def plain_body
|
|
24
|
+
body
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def code
|
|
28
|
+
@real_response.status.to_i
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def headers
|
|
32
|
+
if @real_response.respond_to?(:headers)
|
|
33
|
+
@real_response.headers
|
|
34
|
+
else
|
|
35
|
+
nil
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|