sageone_sdk 0.0.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.
Files changed (198) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +15 -0
  5. data/Fudgefile +27 -0
  6. data/Gemfile +12 -0
  7. data/Guardfile +33 -0
  8. data/LICENSE +22 -0
  9. data/README.md +57 -0
  10. data/Rakefile +10 -0
  11. data/fudge_settings.yml +5 -0
  12. data/lib/sageone_sdk.rb +16 -0
  13. data/lib/sageone_sdk/authentication.rb +8 -0
  14. data/lib/sageone_sdk/client.rb +117 -0
  15. data/lib/sageone_sdk/client/account_types.rb +19 -0
  16. data/lib/sageone_sdk/client/bank_accounts.rb +18 -0
  17. data/lib/sageone_sdk/client/chart_of_accounts.rb +21 -0
  18. data/lib/sageone_sdk/client/contact_types.rb +20 -0
  19. data/lib/sageone_sdk/client/contacts.rb +82 -0
  20. data/lib/sageone_sdk/client/countries.rb +18 -0
  21. data/lib/sageone_sdk/client/expenditures.rb +26 -0
  22. data/lib/sageone_sdk/client/expense_methods.rb +19 -0
  23. data/lib/sageone_sdk/client/expense_types.rb +19 -0
  24. data/lib/sageone_sdk/client/financial_settings.rb +23 -0
  25. data/lib/sageone_sdk/client/income_methods.rb +19 -0
  26. data/lib/sageone_sdk/client/income_types.rb +19 -0
  27. data/lib/sageone_sdk/client/incomes.rb +51 -0
  28. data/lib/sageone_sdk/client/journals.rb +27 -0
  29. data/lib/sageone_sdk/client/ledger_accounts.rb +52 -0
  30. data/lib/sageone_sdk/client/payment_statuses.rb +18 -0
  31. data/lib/sageone_sdk/client/period_types.rb +19 -0
  32. data/lib/sageone_sdk/client/products.rb +50 -0
  33. data/lib/sageone_sdk/client/purchase_invoices.rb +61 -0
  34. data/lib/sageone_sdk/client/sales_invoices.rb +65 -0
  35. data/lib/sageone_sdk/client/services.rb +48 -0
  36. data/lib/sageone_sdk/client/tax_rates.rb +18 -0
  37. data/lib/sageone_sdk/client/transactions.rb +13 -0
  38. data/lib/sageone_sdk/configurable.rb +43 -0
  39. data/lib/sageone_sdk/default.rb +47 -0
  40. data/lib/sageone_sdk/middleware.rb +6 -0
  41. data/lib/sageone_sdk/middleware/sdata_parser.rb +29 -0
  42. data/lib/sageone_sdk/middleware/signature.rb +26 -0
  43. data/lib/sageone_sdk/sdata_error_response.rb +36 -0
  44. data/lib/sageone_sdk/sdata_response.rb +58 -0
  45. data/lib/sageone_sdk/signature.rb +115 -0
  46. data/lib/sageone_sdk/version.rb +3 -0
  47. data/sageone_sdk.gemspec +37 -0
  48. data/spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/_id/returns_a_specific_account_type.json +1 -0
  49. data/spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/allows_pagination.json +1 -0
  50. data/spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/returns_all_account_types.json +1 -0
  51. data/spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/_id/returns_a_specific_bank_account.json +1 -0
  52. data/spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/allows_pagination.json +1 -0
  53. data/spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/returns_all_bank_accounts.json +1 -0
  54. data/spec/cassettes/SageoneSdk_Client_ChartOfAccounts/chart_of_accounts_structure/returns_the_chart_of_accounts_structure.json +1 -0
  55. data/spec/cassettes/SageoneSdk_Client_ChartOfAccounts/chart_of_accounts_templates/returns_the_chart_of_accounts_templates.json +1 -0
  56. data/spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/_id/returns_a_specific_contact_type.json +1 -0
  57. data/spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/allows_pagination.json +1 -0
  58. data/spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/returns_all_contact_types.json +1 -0
  59. data/spec/cassettes/SageoneSdk_Client_Contacts/contacts/_id/returns_a_specific_contact.json +1 -0
  60. data/spec/cassettes/SageoneSdk_Client_Contacts/contacts/allows_pagination.json +1 -0
  61. data/spec/cassettes/SageoneSdk_Client_Contacts/contacts/returns_all_contacts.json +1 -0
  62. data/spec/cassettes/SageoneSdk_Client_Contacts/create_contacts/creates_a_new_contact.json +1 -0
  63. data/spec/cassettes/SageoneSdk_Client_Contacts/create_contacts/on_error/responds_with_an_appropriate_error_message.json +1 -0
  64. data/spec/cassettes/SageoneSdk_Client_Contacts/delete_a_contact/deletes_the_contact.json +1 -0
  65. data/spec/cassettes/SageoneSdk_Client_Contacts/update_a_contact/updates_the_given_contact.json +1 -0
  66. data/spec/cassettes/SageoneSdk_Client_Countries/countries/_id/returns_a_specific_account_type.json +1 -0
  67. data/spec/cassettes/SageoneSdk_Client_Countries/countries/allows_pagination.json +1 -0
  68. data/spec/cassettes/SageoneSdk_Client_Countries/countries/returns_all_countries.json +1 -0
  69. data/spec/cassettes/SageoneSdk_Client_Expenditures/create_expenditures/creates_a_new_expenditure.json +1 -0
  70. data/spec/cassettes/SageoneSdk_Client_Expenditures/create_expenditures/on_error/responds_with_an_appropriate_error_message.json +1 -0
  71. data/spec/cassettes/SageoneSdk_Client_Expenditures/delete_an_expenditure/deletes_the_expenditure.json +1 -0
  72. data/spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/_id/returns_a_specific_expenditure.json +1 -0
  73. data/spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/allows_pagination.json +1 -0
  74. data/spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/returns_all_expenditures.json +1 -0
  75. data/spec/cassettes/SageoneSdk_Client_Expenditures/update_an_expenditure/updates_the_given_expenditure.json +1 -0
  76. data/spec/cassettes/SageoneSdk_Client_ExpenseMethods/expense_methods/_id/returns_a_specific_contact_type.json +1 -0
  77. data/spec/cassettes/SageoneSdk_Client_ExpenseMethods/expense_methods/returns_all_expense_methods.json +1 -0
  78. data/spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/_id/returns_a_specific_contact_type.json +1 -0
  79. data/spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/allows_pagination.json +1 -0
  80. data/spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/returns_all_income_methods.json +1 -0
  81. data/spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/_id/returns_a_specific_contact_type.json +1 -0
  82. data/spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/allows_pagination.json +1 -0
  83. data/spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/returns_all_expense_types.json +1 -0
  84. data/spec/cassettes/SageoneSdk_Client_FinancialSettings/financial_settings/returns_the_financial_settings.json +1 -0
  85. data/spec/cassettes/SageoneSdk_Client_FinancialSettings/update_financial_settings/updates_the_financial_settings.json +1 -0
  86. data/spec/cassettes/SageoneSdk_Client_IncomeMethods/income_methods/_id/returns_a_specific_contact_type.json +1 -0
  87. data/spec/cassettes/SageoneSdk_Client_IncomeMethods/income_methods/returns_all_income_methods.json +1 -0
  88. data/spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/_id/returns_a_specific_contact_type.json +1 -0
  89. data/spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/allows_pagination.json +1 -0
  90. data/spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/returns_all_income_types.json +1 -0
  91. data/spec/cassettes/SageoneSdk_Client_Incomes/create_incomes/creates_a_new_income.json +1 -0
  92. data/spec/cassettes/SageoneSdk_Client_Incomes/create_incomes/on_error/responds_with_an_appropriate_error_message.json +1 -0
  93. data/spec/cassettes/SageoneSdk_Client_Incomes/delete_an_income/deletes_the_income.json +1 -0
  94. data/spec/cassettes/SageoneSdk_Client_Incomes/incomes/_id/returns_a_specific_income.json +1 -0
  95. data/spec/cassettes/SageoneSdk_Client_Incomes/incomes/allows_pagination.json +1 -0
  96. data/spec/cassettes/SageoneSdk_Client_Incomes/incomes/returns_all_incomes.json +1 -0
  97. data/spec/cassettes/SageoneSdk_Client_Incomes/update_an_income/updates_the_given_income.json +1 -0
  98. data/spec/cassettes/SageoneSdk_Client_Journals/journals/creates_a_journal.json +1 -0
  99. data/spec/cassettes/SageoneSdk_Client_Journals/journals/on_error/responds_with_an_appropriate_error_message.json +1 -0
  100. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/create_a_ledger_account/creates_a_new_ledger_account.json +1 -0
  101. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/create_a_ledger_account/on_error/responds_with_an_appropriate_error_message.json +1 -0
  102. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_account_balances/does_not_return_ledger_accounts_with_a_zero_balance.json +1 -0
  103. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_account_balances/returns_ledger_accounts_with_a_balance.json +1 -0
  104. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/_id/returns_a_specific_ledger_account.json +1 -0
  105. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/allows_pagination.json +1 -0
  106. data/spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/returns_all_ledger_accounts.json +1 -0
  107. data/spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/_id/returns_a_specific_contact_type.json +1 -0
  108. data/spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/allows_pagination.json +1 -0
  109. data/spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/returns_all_payment_statuses.json +1 -0
  110. data/spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/_id/returns_a_specific_contact_type.json +1 -0
  111. data/spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/allows_pagination.json +1 -0
  112. data/spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/returns_all_period_types.json +1 -0
  113. data/spec/cassettes/SageoneSdk_Client_Products/create_products/creates_a_new_product.json +1 -0
  114. data/spec/cassettes/SageoneSdk_Client_Products/create_products/on_error/responds_with_an_appropriate_error_message.json +1 -0
  115. data/spec/cassettes/SageoneSdk_Client_Products/delete_a_product/deletes_the_product.json +1 -0
  116. data/spec/cassettes/SageoneSdk_Client_Products/products/_id/returns_a_specific_product.json +1 -0
  117. data/spec/cassettes/SageoneSdk_Client_Products/products/allows_pagination.json +1 -0
  118. data/spec/cassettes/SageoneSdk_Client_Products/products/returns_all_products.json +1 -0
  119. data/spec/cassettes/SageoneSdk_Client_Products/update_a_product/updates_the_given_product.json +1 -0
  120. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/create_purchase_invoices/creates_a_new_purchase_invoice.json +1 -0
  121. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/create_purchase_invoices/on_error/responds_with_an_appropriate_error_message.json +1 -0
  122. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/delete_a_purchase_invoice/deletes_the_purchase_invoice.json +1 -0
  123. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/_id/returns_a_specific_purchase_invoice.json +1 -0
  124. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/allows_pagination.json +1 -0
  125. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/returns_all_purchase_invoices.json +1 -0
  126. data/spec/cassettes/SageoneSdk_Client_PurchaseInvoices/update_a_purchase_invoice/updates_the_given_purchase_invoice.json +1 -0
  127. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/create_sales_invoices/creates_a_new_sales_invoice.json +1 -0
  128. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/create_sales_invoices/on_error/responds_with_an_appropriate_error_message.json +1 -0
  129. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/delete_a_sales_invoice/deletes_the_sales_invoice.json +1 -0
  130. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/_id/returns_a_specific_sales_invoice.json +1 -0
  131. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/allows_pagination.json +1 -0
  132. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/returns_all_sales_invoices.json +1 -0
  133. data/spec/cassettes/SageoneSdk_Client_SalesInvoices/update_a_sales_invoice/updates_the_given_sales_invoice.json +1 -0
  134. data/spec/cassettes/SageoneSdk_Client_Services/create_services/creates_a_new_service.json +1 -0
  135. data/spec/cassettes/SageoneSdk_Client_Services/create_services/on_error/responds_with_an_appropriate_error_message.json +1 -0
  136. data/spec/cassettes/SageoneSdk_Client_Services/delete_a_service/deletes_the_service.json +1 -0
  137. data/spec/cassettes/SageoneSdk_Client_Services/services/_id/returns_a_specific_service.json +1 -0
  138. data/spec/cassettes/SageoneSdk_Client_Services/services/allows_pagination.json +1 -0
  139. data/spec/cassettes/SageoneSdk_Client_Services/services/returns_all_services.json +1 -0
  140. data/spec/cassettes/SageoneSdk_Client_Services/update_a_service/updates_the_given_service.json +1 -0
  141. data/spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/_id/returns_a_specific_contact_type.json +1 -0
  142. data/spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/allows_pagination.json +1 -0
  143. data/spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/returns_all_tax_rates.json +1 -0
  144. data/spec/cassettes/SageoneSdk_Client_Transactions/transactions/returns_all_transactions.json +1 -0
  145. data/spec/cassettes/account_types_index.json +1 -0
  146. data/spec/cassettes/bank_accounts_index.json +1 -0
  147. data/spec/cassettes/contact_types_index.json +1 -0
  148. data/spec/cassettes/contacts_index.json +1 -0
  149. data/spec/cassettes/countries_index.json +1 -0
  150. data/spec/cassettes/customer_create.json +1 -0
  151. data/spec/cassettes/customers_index.json +1 -0
  152. data/spec/cassettes/expenditure_create.json +1 -0
  153. data/spec/cassettes/expenditures_index.json +1 -0
  154. data/spec/cassettes/expense_methods_index.json +1 -0
  155. data/spec/cassettes/expense_types_index.json +1 -0
  156. data/spec/cassettes/income_create.json +1 -0
  157. data/spec/cassettes/income_methods_index.json +1 -0
  158. data/spec/cassettes/income_types_index.json +1 -0
  159. data/spec/cassettes/incomes_index.json +1 -0
  160. data/spec/cassettes/ledger_accounts_index.json +1 -0
  161. data/spec/cassettes/payment_statuses_index.json +1 -0
  162. data/spec/cassettes/period_types_index.json +1 -0
  163. data/spec/cassettes/product_create.json +1 -0
  164. data/spec/cassettes/products_index.json +1 -0
  165. data/spec/cassettes/purchase_invoice_create.json +1 -0
  166. data/spec/cassettes/purchase_invoices_index.json +1 -0
  167. data/spec/cassettes/sales_invoice_create.json +1 -0
  168. data/spec/cassettes/sales_invoices_index.json +1 -0
  169. data/spec/cassettes/service_create.json +1 -0
  170. data/spec/cassettes/services_index.json +1 -0
  171. data/spec/cassettes/suppliers_index.json +1 -0
  172. data/spec/cassettes/tax_rates_index.json +1 -0
  173. data/spec/sageone_sdk/client/account_types_spec.rb +29 -0
  174. data/spec/sageone_sdk/client/bank_accounts_spec.rb +34 -0
  175. data/spec/sageone_sdk/client/chart_of_accounts_spec.rb +23 -0
  176. data/spec/sageone_sdk/client/contact_types_spec.rb +29 -0
  177. data/spec/sageone_sdk/client/contacts_spec.rb +75 -0
  178. data/spec/sageone_sdk/client/countries_spec.rb +29 -0
  179. data/spec/sageone_sdk/client/expenditures_spec.rb +113 -0
  180. data/spec/sageone_sdk/client/expense_methods_spec.rb +29 -0
  181. data/spec/sageone_sdk/client/expense_types_spec.rb +29 -0
  182. data/spec/sageone_sdk/client/financial_settings_spec.rb +23 -0
  183. data/spec/sageone_sdk/client/income_methods_spec.rb +29 -0
  184. data/spec/sageone_sdk/client/income_types_spec.rb +29 -0
  185. data/spec/sageone_sdk/client/incomes_spec.rb +114 -0
  186. data/spec/sageone_sdk/client/journals_spec.rb +39 -0
  187. data/spec/sageone_sdk/client/ledger_accounts_spec.rb +65 -0
  188. data/spec/sageone_sdk/client/payment_statuses_spec.rb +29 -0
  189. data/spec/sageone_sdk/client/period_types_spec.rb +29 -0
  190. data/spec/sageone_sdk/client/products_spec.rb +75 -0
  191. data/spec/sageone_sdk/client/purchase_invoices_spec.rb +124 -0
  192. data/spec/sageone_sdk/client/sales_invoices_spec.rb +126 -0
  193. data/spec/sageone_sdk/client/services_spec.rb +75 -0
  194. data/spec/sageone_sdk/client/tax_rates_spec.rb +29 -0
  195. data/spec/sageone_sdk/client/transactions_spec.rb +16 -0
  196. data/spec/sageone_sdk_spec.rb +19 -0
  197. data/spec/spec_helper.rb +40 -0
  198. metadata +601 -0
@@ -0,0 +1,124 @@
1
+ require 'spec_helper'
2
+
3
+ describe SageoneSdk::Client::PurchaseInvoices do
4
+ before :each do
5
+ SageoneSdk.reset!
6
+ end
7
+
8
+ let(:client) { SageoneSdk::Client.new({access_token: "foo", signing_secret: "bar" }) }
9
+
10
+ let(:contact) do
11
+ VCR.use_cassette('suppliers_index') do
12
+ client.suppliers.first
13
+ end
14
+ end
15
+
16
+ let(:tax_rate) do
17
+ VCR.use_cassette('tax_rates_index') do
18
+ client.tax_rates.find_by(:name => "Standard")
19
+ end
20
+ end
21
+
22
+ let(:ledger_account) do
23
+ VCR.use_cassette('ledger_accounts_index') do
24
+ client.ledger_accounts.find_by(:name => "Energy")
25
+ end
26
+ end
27
+
28
+ let(:line_items) do
29
+ [
30
+ {
31
+ :description => "A1",
32
+ :quantity => 1,
33
+ :unit_price => 10,
34
+ :tax_code_id => tax_rate.id,
35
+ :ledger_account_id => ledger_account.id
36
+ },
37
+ {
38
+ :description => "B1",
39
+ :quantity => 5,
40
+ :unit_price => 9.99,
41
+ :tax_code_id => tax_rate.id,
42
+ :ledger_account_id => ledger_account.id
43
+ }
44
+ ]
45
+ end
46
+
47
+ let(:data) do
48
+ {
49
+ :reference => "Foo",
50
+ :date => Date.today.strftime("%d/%m/%Y"),
51
+ :due_date => 15.days.from_now.strftime("%d/%m/%Y"),
52
+ :contact_id => contact.id,
53
+ :contact_name => contact.name,
54
+ :line_items => line_items
55
+ }
56
+ end
57
+
58
+ describe "purchase_invoices", :vcr do
59
+ it "returns all purchase invoices" do
60
+ purchase_invoices = client.purchase_invoices
61
+ expect(purchase_invoices.first.reference).not_to be_nil
62
+ end
63
+
64
+ it "allows pagination" do
65
+ purchase_invoices = client.purchase_invoices({ "$itemsPerPage" => 2 })
66
+ expect(purchase_invoices.count).to eq(2)
67
+ end
68
+ end
69
+
70
+ describe "purchase_invoices/:id", :vcr do
71
+ before :each do
72
+ VCR.use_cassette('purchase_invoices_index') do
73
+ @purchase_invoice_id = client.purchase_invoices.first.id
74
+ end
75
+ end
76
+
77
+ it "returns a specific purchase invoice" do
78
+ purchase_invoice = client.purchase_invoice(@purchase_invoice_id)
79
+ expect(purchase_invoice.reference).to eq("Foo")
80
+ end
81
+ end
82
+
83
+ describe "create purchase_invoices", :vcr do
84
+ it "creates a new purchase invoice" do
85
+ purchase_invoice = client.create_purchase_invoice(data)
86
+ expect(purchase_invoice.reference).to eq("Foo")
87
+ end
88
+
89
+ context "on error" do
90
+ it "responds with an appropriate error message" do
91
+ purchase_invoice = client.create_purchase_invoice({})
92
+ expect(purchase_invoice.error?).to eq(true)
93
+ expect(purchase_invoice.full_messages).to include("Date: invalid date")
94
+ end
95
+ end
96
+ end
97
+
98
+ describe "update a purchase invoice", :vcr do
99
+ before :each do
100
+ VCR.use_cassette('purchase_invoices_index') do
101
+ @purchase_invoice_id = client.purchase_invoices.first.id
102
+ end
103
+ end
104
+
105
+ it "updates the given purchase invoice" do
106
+ purchase_invoice = client.update_purchase_invoice(@purchase_invoice_id, { :reference => "Bar" })
107
+ expect(purchase_invoice.reference).to eq("Bar")
108
+ end
109
+ end
110
+
111
+ describe "delete a purchase invoice", :vcr do
112
+ before :each do
113
+ VCR.use_cassette('purchase_invoice_create') do
114
+ s = client.create_purchase_invoice(data)
115
+ @purchase_invoice_id = s.id
116
+ end
117
+ end
118
+
119
+ it "deletes the purchase invoice" do
120
+ purchase_invoice = client.delete_purchase_invoice(@purchase_invoice_id)
121
+ expect(purchase_invoice).to_not be_nil
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,126 @@
1
+ require 'spec_helper'
2
+
3
+ describe SageoneSdk::Client::SalesInvoices do
4
+ before :each do
5
+ SageoneSdk.reset!
6
+ end
7
+
8
+ let(:client) { SageoneSdk::Client.new({access_token: "foo", signing_secret: "bar" }) }
9
+
10
+ let(:contact) do
11
+ VCR.use_cassette('customers_index') do
12
+ client.customers.first
13
+ end
14
+ end
15
+
16
+ let(:tax_rate) do
17
+ VCR.use_cassette('tax_rates_index') do
18
+ client.tax_rates.find_by(:name => "Standard")
19
+ end
20
+ end
21
+
22
+ let(:ledger_account) do
23
+ VCR.use_cassette('ledger_accounts_index') do
24
+ client.ledger_accounts.find_by(:name => "Sales")
25
+ end
26
+ end
27
+
28
+ let(:line_items) do
29
+ [
30
+ {
31
+ :description => "A1",
32
+ :quantity => 1,
33
+ :unit_price => 10,
34
+ :tax_code_id => tax_rate.id,
35
+ :ledger_account_id => ledger_account.id
36
+ },
37
+ {
38
+ :description => "B1",
39
+ :quantity => 5,
40
+ :unit_price => 9.99,
41
+ :tax_code_id => tax_rate.id,
42
+ :ledger_account_id => ledger_account.id
43
+ }
44
+ ]
45
+ end
46
+
47
+ let(:data) do
48
+ {
49
+ :reference => "Foo",
50
+ :date => Date.today.strftime("%d/%m/%Y"),
51
+ :due_date => 15.days.from_now.strftime("%d/%m/%Y"),
52
+ :contact_id => contact.id,
53
+ :contact_name => contact.name,
54
+ :main_address => "Main Address",
55
+ :carriage_tax_code_id => tax_rate.id,
56
+ :line_items => line_items
57
+ }
58
+ end
59
+
60
+ describe "sales_invoices", :vcr do
61
+ it "returns all sales invoices" do
62
+ sales_invoices = client.sales_invoices
63
+ expect(sales_invoices.first.invoice_number).not_to be_nil
64
+ end
65
+
66
+ it "allows pagination" do
67
+ sales_invoices = client.sales_invoices({ "$itemsPerPage" => 2 })
68
+ expect(sales_invoices.count).to eq(2)
69
+ end
70
+ end
71
+
72
+ describe "sales_invoices/:id", :vcr do
73
+ before :each do
74
+ VCR.use_cassette('sales_invoices_index') do
75
+ @sales_invoice_id = client.sales_invoices.last.id
76
+ end
77
+ end
78
+
79
+ it "returns a specific sales invoice" do
80
+ sales_invoice = client.sales_invoice(@sales_invoice_id)
81
+ expect(sales_invoice.reference).to eq("Ref12345")
82
+ end
83
+ end
84
+
85
+ describe "create sales_invoices", :vcr do
86
+ it "creates a new sales invoice" do
87
+ sales_invoice = client.create_sales_invoice(data)
88
+ expect(sales_invoice.reference).to eq("Foo")
89
+ end
90
+
91
+ context "on error" do
92
+ it "responds with an appropriate error message" do
93
+ sales_invoice = client.create_sales_invoice({})
94
+ expect(sales_invoice.error?).to eq(true)
95
+ expect(sales_invoice.full_messages).to include("Date: invalid date")
96
+ end
97
+ end
98
+ end
99
+
100
+ describe "update a sales invoice", :vcr do
101
+ before :each do
102
+ VCR.use_cassette('sales_invoices_index') do
103
+ @sales_invoice_id = client.sales_invoices.first.id
104
+ end
105
+ end
106
+
107
+ it "updates the given sales invoice" do
108
+ sales_invoice = client.update_sales_invoice(@sales_invoice_id, { :reference => "Bar" })
109
+ expect(sales_invoice.reference).to eq("Bar")
110
+ end
111
+ end
112
+
113
+ describe "delete a sales invoice", :vcr do
114
+ before :each do
115
+ VCR.use_cassette('sales_invoice_create') do
116
+ s = client.create_sales_invoice(data)
117
+ @sales_invoice_id = s.id
118
+ end
119
+ end
120
+
121
+ it "deletes the sales invoice" do
122
+ sales_invoice = client.delete_sales_invoice(@sales_invoice_id)
123
+ expect(sales_invoice).to_not be_nil
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+
3
+ describe SageoneSdk::Client::Services do
4
+ before :each do
5
+ SageoneSdk.reset!
6
+ end
7
+
8
+ let(:client) { SageoneSdk::Client.new({access_token: "foo", signing_secret: "bar" }) }
9
+
10
+ describe "services", :vcr do
11
+ it "returns all services" do
12
+ services = client.services
13
+ expect(services.first.description).not_to be_nil
14
+ end
15
+
16
+ it "allows pagination" do
17
+ services = client.services({ "$itemsPerPage" => 2 })
18
+ expect(services.count).to eq(2)
19
+ end
20
+ end
21
+
22
+ describe "services/:id", :vcr do
23
+ before :each do
24
+ VCR.use_cassette('services_index') do
25
+ @service_id = client.services.first.id
26
+ end
27
+ end
28
+
29
+ it "returns a specific service" do
30
+ service = client.service(@service_id)
31
+ expect(service.description).to eq("Foo")
32
+ end
33
+ end
34
+
35
+ describe "create services", :vcr do
36
+ it "creates a new service" do
37
+ service = client.create_service(:description => "Foo")
38
+ expect(service.description).to eq("Foo")
39
+ end
40
+
41
+ context "on error" do
42
+ it "responds with an appropriate error message" do
43
+ service = client.create_service({})
44
+ expect(service.error?).to eq(true)
45
+ expect(service.full_messages).to include("Description: blank")
46
+ end
47
+ end
48
+ end
49
+
50
+ describe "update a service", :vcr do
51
+ before :each do
52
+ VCR.use_cassette('services_index') do
53
+ @service_id = client.services.first.id
54
+ end
55
+ end
56
+
57
+ it "updates the given service" do
58
+ service = client.update_service(@service_id, { :description => "Bar" })
59
+ expect(service.description).to eq("Bar")
60
+ end
61
+ end
62
+
63
+ describe "delete a service", :vcr do
64
+ before :each do
65
+ VCR.use_cassette('service_create') do
66
+ @service_id = client.create_service(:description => "Foo").id
67
+ end
68
+ end
69
+
70
+ it "deletes the service" do
71
+ service = client.delete_service(@service_id)
72
+ expect(service).to_not be_nil
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe SageoneSdk::Client::TaxRates do
4
+ before :each do
5
+ SageoneSdk.reset!
6
+ end
7
+
8
+ let(:client) { SageoneSdk::Client.new({access_token: "foo", signing_secret: "bar" }) }
9
+
10
+ describe "tax_rates", :vcr do
11
+ it "returns all tax_rates" do
12
+ tax_rates = client.tax_rates
13
+ expect(tax_rates.first.name).not_to be_nil
14
+ end
15
+ end
16
+
17
+ describe "tax_rates/:id", :vcr do
18
+ before :each do
19
+ VCR.use_cassette('tax_rates_index') do
20
+ @tax_rate_id = client.tax_rates.first.id
21
+ end
22
+ end
23
+
24
+ it "returns a specific contact type" do
25
+ tax_rate = client.tax_rate(@tax_rate_id)
26
+ expect(tax_rate.name).to eq("Standard")
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe SageoneSdk::Client::Transactions do
4
+ before :each do
5
+ SageoneSdk.reset!
6
+ end
7
+
8
+ let(:client) { SageoneSdk::Client.new({access_token: "foo", signing_secret: "bar"}) }
9
+
10
+ describe "transactions", :vcr do
11
+ it "returns all transactions" do
12
+ transactions = client.transactions
13
+ expect(transactions.first.total).not_to be_nil
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe SageoneSdk do
4
+ describe "configurable" do
5
+ it "can be configured" do
6
+ SageoneSdk.configure do |config|
7
+ config.access_token = "foo"
8
+ end
9
+
10
+ expect(SageoneSdk.access_token).to eq("foo")
11
+ end
12
+ end
13
+
14
+ describe "client" do
15
+ it "returns a new client" do
16
+ expect(SageoneSdk.client).to be_kind_of(SageoneSdk::Client)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,40 @@
1
+ require "sageone_sdk"
2
+ require 'webmock/rspec'
3
+ require 'simplecov'
4
+ require 'vcr'
5
+
6
+ SimpleCov.start
7
+
8
+ VCR.configure do |c|
9
+ c.configure_rspec_metadata!
10
+
11
+ c.cassette_library_dir = 'spec/cassettes'
12
+ c.hook_into :webmock
13
+
14
+ c.default_cassette_options = {
15
+ :serialize_with => :json
16
+ }
17
+
18
+ c.filter_sensitive_data("<ACCESS_TOKEN>") do |interaction|
19
+ "dummy_access_token"
20
+ end
21
+
22
+ c.filter_sensitive_data("<SIGNING_SECRET>") do |interaction|
23
+ "dummy_signing_secret"
24
+ end
25
+ end
26
+
27
+ SageoneSdk.configure do |config|
28
+ config.access_token = "dummy_access_token"
29
+ config.signing_secret = "dummy_signing_secret"
30
+ end
31
+
32
+ RSpec.configure do |config|
33
+ config.expect_with :rspec do |expectations|
34
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
35
+ end
36
+
37
+ config.mock_with :rspec do |mocks|
38
+ mocks.verify_partial_doubles = true
39
+ end
40
+ end
metadata ADDED
@@ -0,0 +1,601 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sageone_sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sage UK Ltd
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-01-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sawyer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.5.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.5.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 4.0.4
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 4.0.4
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.7'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: cane
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: flay
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: flog
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: fudge
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: simplecov
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: yard
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ description: Provides Ruby methods for accessing the Sage One API endpoints.
224
+ email:
225
+ - support@sageone.com
226
+ executables: []
227
+ extensions: []
228
+ extra_rdoc_files: []
229
+ files:
230
+ - ".gitignore"
231
+ - ".rspec"
232
+ - ".travis.yml"
233
+ - Fudgefile
234
+ - Gemfile
235
+ - Guardfile
236
+ - LICENSE
237
+ - README.md
238
+ - Rakefile
239
+ - fudge_settings.yml
240
+ - lib/sageone_sdk.rb
241
+ - lib/sageone_sdk/authentication.rb
242
+ - lib/sageone_sdk/client.rb
243
+ - lib/sageone_sdk/client/account_types.rb
244
+ - lib/sageone_sdk/client/bank_accounts.rb
245
+ - lib/sageone_sdk/client/chart_of_accounts.rb
246
+ - lib/sageone_sdk/client/contact_types.rb
247
+ - lib/sageone_sdk/client/contacts.rb
248
+ - lib/sageone_sdk/client/countries.rb
249
+ - lib/sageone_sdk/client/expenditures.rb
250
+ - lib/sageone_sdk/client/expense_methods.rb
251
+ - lib/sageone_sdk/client/expense_types.rb
252
+ - lib/sageone_sdk/client/financial_settings.rb
253
+ - lib/sageone_sdk/client/income_methods.rb
254
+ - lib/sageone_sdk/client/income_types.rb
255
+ - lib/sageone_sdk/client/incomes.rb
256
+ - lib/sageone_sdk/client/journals.rb
257
+ - lib/sageone_sdk/client/ledger_accounts.rb
258
+ - lib/sageone_sdk/client/payment_statuses.rb
259
+ - lib/sageone_sdk/client/period_types.rb
260
+ - lib/sageone_sdk/client/products.rb
261
+ - lib/sageone_sdk/client/purchase_invoices.rb
262
+ - lib/sageone_sdk/client/sales_invoices.rb
263
+ - lib/sageone_sdk/client/services.rb
264
+ - lib/sageone_sdk/client/tax_rates.rb
265
+ - lib/sageone_sdk/client/transactions.rb
266
+ - lib/sageone_sdk/configurable.rb
267
+ - lib/sageone_sdk/default.rb
268
+ - lib/sageone_sdk/middleware.rb
269
+ - lib/sageone_sdk/middleware/sdata_parser.rb
270
+ - lib/sageone_sdk/middleware/signature.rb
271
+ - lib/sageone_sdk/sdata_error_response.rb
272
+ - lib/sageone_sdk/sdata_response.rb
273
+ - lib/sageone_sdk/signature.rb
274
+ - lib/sageone_sdk/version.rb
275
+ - sageone_sdk.gemspec
276
+ - spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/_id/returns_a_specific_account_type.json
277
+ - spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/allows_pagination.json
278
+ - spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/returns_all_account_types.json
279
+ - spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/_id/returns_a_specific_bank_account.json
280
+ - spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/allows_pagination.json
281
+ - spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/returns_all_bank_accounts.json
282
+ - spec/cassettes/SageoneSdk_Client_ChartOfAccounts/chart_of_accounts_structure/returns_the_chart_of_accounts_structure.json
283
+ - spec/cassettes/SageoneSdk_Client_ChartOfAccounts/chart_of_accounts_templates/returns_the_chart_of_accounts_templates.json
284
+ - spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/_id/returns_a_specific_contact_type.json
285
+ - spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/allows_pagination.json
286
+ - spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/returns_all_contact_types.json
287
+ - spec/cassettes/SageoneSdk_Client_Contacts/contacts/_id/returns_a_specific_contact.json
288
+ - spec/cassettes/SageoneSdk_Client_Contacts/contacts/allows_pagination.json
289
+ - spec/cassettes/SageoneSdk_Client_Contacts/contacts/returns_all_contacts.json
290
+ - spec/cassettes/SageoneSdk_Client_Contacts/create_contacts/creates_a_new_contact.json
291
+ - spec/cassettes/SageoneSdk_Client_Contacts/create_contacts/on_error/responds_with_an_appropriate_error_message.json
292
+ - spec/cassettes/SageoneSdk_Client_Contacts/delete_a_contact/deletes_the_contact.json
293
+ - spec/cassettes/SageoneSdk_Client_Contacts/update_a_contact/updates_the_given_contact.json
294
+ - spec/cassettes/SageoneSdk_Client_Countries/countries/_id/returns_a_specific_account_type.json
295
+ - spec/cassettes/SageoneSdk_Client_Countries/countries/allows_pagination.json
296
+ - spec/cassettes/SageoneSdk_Client_Countries/countries/returns_all_countries.json
297
+ - spec/cassettes/SageoneSdk_Client_Expenditures/create_expenditures/creates_a_new_expenditure.json
298
+ - spec/cassettes/SageoneSdk_Client_Expenditures/create_expenditures/on_error/responds_with_an_appropriate_error_message.json
299
+ - spec/cassettes/SageoneSdk_Client_Expenditures/delete_an_expenditure/deletes_the_expenditure.json
300
+ - spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/_id/returns_a_specific_expenditure.json
301
+ - spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/allows_pagination.json
302
+ - spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/returns_all_expenditures.json
303
+ - spec/cassettes/SageoneSdk_Client_Expenditures/update_an_expenditure/updates_the_given_expenditure.json
304
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/expense_methods/_id/returns_a_specific_contact_type.json
305
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/expense_methods/returns_all_expense_methods.json
306
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/_id/returns_a_specific_contact_type.json
307
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/allows_pagination.json
308
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/returns_all_income_methods.json
309
+ - spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/_id/returns_a_specific_contact_type.json
310
+ - spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/allows_pagination.json
311
+ - spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/returns_all_expense_types.json
312
+ - spec/cassettes/SageoneSdk_Client_FinancialSettings/financial_settings/returns_the_financial_settings.json
313
+ - spec/cassettes/SageoneSdk_Client_FinancialSettings/update_financial_settings/updates_the_financial_settings.json
314
+ - spec/cassettes/SageoneSdk_Client_IncomeMethods/income_methods/_id/returns_a_specific_contact_type.json
315
+ - spec/cassettes/SageoneSdk_Client_IncomeMethods/income_methods/returns_all_income_methods.json
316
+ - spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/_id/returns_a_specific_contact_type.json
317
+ - spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/allows_pagination.json
318
+ - spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/returns_all_income_types.json
319
+ - spec/cassettes/SageoneSdk_Client_Incomes/create_incomes/creates_a_new_income.json
320
+ - spec/cassettes/SageoneSdk_Client_Incomes/create_incomes/on_error/responds_with_an_appropriate_error_message.json
321
+ - spec/cassettes/SageoneSdk_Client_Incomes/delete_an_income/deletes_the_income.json
322
+ - spec/cassettes/SageoneSdk_Client_Incomes/incomes/_id/returns_a_specific_income.json
323
+ - spec/cassettes/SageoneSdk_Client_Incomes/incomes/allows_pagination.json
324
+ - spec/cassettes/SageoneSdk_Client_Incomes/incomes/returns_all_incomes.json
325
+ - spec/cassettes/SageoneSdk_Client_Incomes/update_an_income/updates_the_given_income.json
326
+ - spec/cassettes/SageoneSdk_Client_Journals/journals/creates_a_journal.json
327
+ - spec/cassettes/SageoneSdk_Client_Journals/journals/on_error/responds_with_an_appropriate_error_message.json
328
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/create_a_ledger_account/creates_a_new_ledger_account.json
329
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/create_a_ledger_account/on_error/responds_with_an_appropriate_error_message.json
330
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_account_balances/does_not_return_ledger_accounts_with_a_zero_balance.json
331
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_account_balances/returns_ledger_accounts_with_a_balance.json
332
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/_id/returns_a_specific_ledger_account.json
333
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/allows_pagination.json
334
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/returns_all_ledger_accounts.json
335
+ - spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/_id/returns_a_specific_contact_type.json
336
+ - spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/allows_pagination.json
337
+ - spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/returns_all_payment_statuses.json
338
+ - spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/_id/returns_a_specific_contact_type.json
339
+ - spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/allows_pagination.json
340
+ - spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/returns_all_period_types.json
341
+ - spec/cassettes/SageoneSdk_Client_Products/create_products/creates_a_new_product.json
342
+ - spec/cassettes/SageoneSdk_Client_Products/create_products/on_error/responds_with_an_appropriate_error_message.json
343
+ - spec/cassettes/SageoneSdk_Client_Products/delete_a_product/deletes_the_product.json
344
+ - spec/cassettes/SageoneSdk_Client_Products/products/_id/returns_a_specific_product.json
345
+ - spec/cassettes/SageoneSdk_Client_Products/products/allows_pagination.json
346
+ - spec/cassettes/SageoneSdk_Client_Products/products/returns_all_products.json
347
+ - spec/cassettes/SageoneSdk_Client_Products/update_a_product/updates_the_given_product.json
348
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/create_purchase_invoices/creates_a_new_purchase_invoice.json
349
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/create_purchase_invoices/on_error/responds_with_an_appropriate_error_message.json
350
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/delete_a_purchase_invoice/deletes_the_purchase_invoice.json
351
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/_id/returns_a_specific_purchase_invoice.json
352
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/allows_pagination.json
353
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/returns_all_purchase_invoices.json
354
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/update_a_purchase_invoice/updates_the_given_purchase_invoice.json
355
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/create_sales_invoices/creates_a_new_sales_invoice.json
356
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/create_sales_invoices/on_error/responds_with_an_appropriate_error_message.json
357
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/delete_a_sales_invoice/deletes_the_sales_invoice.json
358
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/_id/returns_a_specific_sales_invoice.json
359
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/allows_pagination.json
360
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/returns_all_sales_invoices.json
361
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/update_a_sales_invoice/updates_the_given_sales_invoice.json
362
+ - spec/cassettes/SageoneSdk_Client_Services/create_services/creates_a_new_service.json
363
+ - spec/cassettes/SageoneSdk_Client_Services/create_services/on_error/responds_with_an_appropriate_error_message.json
364
+ - spec/cassettes/SageoneSdk_Client_Services/delete_a_service/deletes_the_service.json
365
+ - spec/cassettes/SageoneSdk_Client_Services/services/_id/returns_a_specific_service.json
366
+ - spec/cassettes/SageoneSdk_Client_Services/services/allows_pagination.json
367
+ - spec/cassettes/SageoneSdk_Client_Services/services/returns_all_services.json
368
+ - spec/cassettes/SageoneSdk_Client_Services/update_a_service/updates_the_given_service.json
369
+ - spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/_id/returns_a_specific_contact_type.json
370
+ - spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/allows_pagination.json
371
+ - spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/returns_all_tax_rates.json
372
+ - spec/cassettes/SageoneSdk_Client_Transactions/transactions/returns_all_transactions.json
373
+ - spec/cassettes/account_types_index.json
374
+ - spec/cassettes/bank_accounts_index.json
375
+ - spec/cassettes/contact_types_index.json
376
+ - spec/cassettes/contacts_index.json
377
+ - spec/cassettes/countries_index.json
378
+ - spec/cassettes/customer_create.json
379
+ - spec/cassettes/customers_index.json
380
+ - spec/cassettes/expenditure_create.json
381
+ - spec/cassettes/expenditures_index.json
382
+ - spec/cassettes/expense_methods_index.json
383
+ - spec/cassettes/expense_types_index.json
384
+ - spec/cassettes/income_create.json
385
+ - spec/cassettes/income_methods_index.json
386
+ - spec/cassettes/income_types_index.json
387
+ - spec/cassettes/incomes_index.json
388
+ - spec/cassettes/ledger_accounts_index.json
389
+ - spec/cassettes/payment_statuses_index.json
390
+ - spec/cassettes/period_types_index.json
391
+ - spec/cassettes/product_create.json
392
+ - spec/cassettes/products_index.json
393
+ - spec/cassettes/purchase_invoice_create.json
394
+ - spec/cassettes/purchase_invoices_index.json
395
+ - spec/cassettes/sales_invoice_create.json
396
+ - spec/cassettes/sales_invoices_index.json
397
+ - spec/cassettes/service_create.json
398
+ - spec/cassettes/services_index.json
399
+ - spec/cassettes/suppliers_index.json
400
+ - spec/cassettes/tax_rates_index.json
401
+ - spec/sageone_sdk/client/account_types_spec.rb
402
+ - spec/sageone_sdk/client/bank_accounts_spec.rb
403
+ - spec/sageone_sdk/client/chart_of_accounts_spec.rb
404
+ - spec/sageone_sdk/client/contact_types_spec.rb
405
+ - spec/sageone_sdk/client/contacts_spec.rb
406
+ - spec/sageone_sdk/client/countries_spec.rb
407
+ - spec/sageone_sdk/client/expenditures_spec.rb
408
+ - spec/sageone_sdk/client/expense_methods_spec.rb
409
+ - spec/sageone_sdk/client/expense_types_spec.rb
410
+ - spec/sageone_sdk/client/financial_settings_spec.rb
411
+ - spec/sageone_sdk/client/income_methods_spec.rb
412
+ - spec/sageone_sdk/client/income_types_spec.rb
413
+ - spec/sageone_sdk/client/incomes_spec.rb
414
+ - spec/sageone_sdk/client/journals_spec.rb
415
+ - spec/sageone_sdk/client/ledger_accounts_spec.rb
416
+ - spec/sageone_sdk/client/payment_statuses_spec.rb
417
+ - spec/sageone_sdk/client/period_types_spec.rb
418
+ - spec/sageone_sdk/client/products_spec.rb
419
+ - spec/sageone_sdk/client/purchase_invoices_spec.rb
420
+ - spec/sageone_sdk/client/sales_invoices_spec.rb
421
+ - spec/sageone_sdk/client/services_spec.rb
422
+ - spec/sageone_sdk/client/tax_rates_spec.rb
423
+ - spec/sageone_sdk/client/transactions_spec.rb
424
+ - spec/sageone_sdk_spec.rb
425
+ - spec/spec_helper.rb
426
+ homepage: https://developers.sageone.com/
427
+ licenses:
428
+ - MIT
429
+ metadata: {}
430
+ post_install_message:
431
+ rdoc_options: []
432
+ require_paths:
433
+ - lib
434
+ required_ruby_version: !ruby/object:Gem::Requirement
435
+ requirements:
436
+ - - ">="
437
+ - !ruby/object:Gem::Version
438
+ version: '0'
439
+ required_rubygems_version: !ruby/object:Gem::Requirement
440
+ requirements:
441
+ - - ">="
442
+ - !ruby/object:Gem::Version
443
+ version: '0'
444
+ requirements: []
445
+ rubyforge_project:
446
+ rubygems_version: 2.5.1
447
+ signing_key:
448
+ specification_version: 4
449
+ summary: SDK for Sage One API.
450
+ test_files:
451
+ - spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/_id/returns_a_specific_account_type.json
452
+ - spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/allows_pagination.json
453
+ - spec/cassettes/SageoneSdk_Client_AccountTypes/account_types/returns_all_account_types.json
454
+ - spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/_id/returns_a_specific_bank_account.json
455
+ - spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/allows_pagination.json
456
+ - spec/cassettes/SageoneSdk_Client_BankAccounts/bank_accounts/returns_all_bank_accounts.json
457
+ - spec/cassettes/SageoneSdk_Client_ChartOfAccounts/chart_of_accounts_structure/returns_the_chart_of_accounts_structure.json
458
+ - spec/cassettes/SageoneSdk_Client_ChartOfAccounts/chart_of_accounts_templates/returns_the_chart_of_accounts_templates.json
459
+ - spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/_id/returns_a_specific_contact_type.json
460
+ - spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/allows_pagination.json
461
+ - spec/cassettes/SageoneSdk_Client_ContactTypes/contact_types/returns_all_contact_types.json
462
+ - spec/cassettes/SageoneSdk_Client_Contacts/contacts/_id/returns_a_specific_contact.json
463
+ - spec/cassettes/SageoneSdk_Client_Contacts/contacts/allows_pagination.json
464
+ - spec/cassettes/SageoneSdk_Client_Contacts/contacts/returns_all_contacts.json
465
+ - spec/cassettes/SageoneSdk_Client_Contacts/create_contacts/creates_a_new_contact.json
466
+ - spec/cassettes/SageoneSdk_Client_Contacts/create_contacts/on_error/responds_with_an_appropriate_error_message.json
467
+ - spec/cassettes/SageoneSdk_Client_Contacts/delete_a_contact/deletes_the_contact.json
468
+ - spec/cassettes/SageoneSdk_Client_Contacts/update_a_contact/updates_the_given_contact.json
469
+ - spec/cassettes/SageoneSdk_Client_Countries/countries/_id/returns_a_specific_account_type.json
470
+ - spec/cassettes/SageoneSdk_Client_Countries/countries/allows_pagination.json
471
+ - spec/cassettes/SageoneSdk_Client_Countries/countries/returns_all_countries.json
472
+ - spec/cassettes/SageoneSdk_Client_Expenditures/create_expenditures/creates_a_new_expenditure.json
473
+ - spec/cassettes/SageoneSdk_Client_Expenditures/create_expenditures/on_error/responds_with_an_appropriate_error_message.json
474
+ - spec/cassettes/SageoneSdk_Client_Expenditures/delete_an_expenditure/deletes_the_expenditure.json
475
+ - spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/_id/returns_a_specific_expenditure.json
476
+ - spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/allows_pagination.json
477
+ - spec/cassettes/SageoneSdk_Client_Expenditures/expenditures/returns_all_expenditures.json
478
+ - spec/cassettes/SageoneSdk_Client_Expenditures/update_an_expenditure/updates_the_given_expenditure.json
479
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/expense_methods/_id/returns_a_specific_contact_type.json
480
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/expense_methods/returns_all_expense_methods.json
481
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/_id/returns_a_specific_contact_type.json
482
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/allows_pagination.json
483
+ - spec/cassettes/SageoneSdk_Client_ExpenseMethods/income_methods/returns_all_income_methods.json
484
+ - spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/_id/returns_a_specific_contact_type.json
485
+ - spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/allows_pagination.json
486
+ - spec/cassettes/SageoneSdk_Client_ExpenseTypes/expense_types/returns_all_expense_types.json
487
+ - spec/cassettes/SageoneSdk_Client_FinancialSettings/financial_settings/returns_the_financial_settings.json
488
+ - spec/cassettes/SageoneSdk_Client_FinancialSettings/update_financial_settings/updates_the_financial_settings.json
489
+ - spec/cassettes/SageoneSdk_Client_IncomeMethods/income_methods/_id/returns_a_specific_contact_type.json
490
+ - spec/cassettes/SageoneSdk_Client_IncomeMethods/income_methods/returns_all_income_methods.json
491
+ - spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/_id/returns_a_specific_contact_type.json
492
+ - spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/allows_pagination.json
493
+ - spec/cassettes/SageoneSdk_Client_IncomeTypes/income_types/returns_all_income_types.json
494
+ - spec/cassettes/SageoneSdk_Client_Incomes/create_incomes/creates_a_new_income.json
495
+ - spec/cassettes/SageoneSdk_Client_Incomes/create_incomes/on_error/responds_with_an_appropriate_error_message.json
496
+ - spec/cassettes/SageoneSdk_Client_Incomes/delete_an_income/deletes_the_income.json
497
+ - spec/cassettes/SageoneSdk_Client_Incomes/incomes/_id/returns_a_specific_income.json
498
+ - spec/cassettes/SageoneSdk_Client_Incomes/incomes/allows_pagination.json
499
+ - spec/cassettes/SageoneSdk_Client_Incomes/incomes/returns_all_incomes.json
500
+ - spec/cassettes/SageoneSdk_Client_Incomes/update_an_income/updates_the_given_income.json
501
+ - spec/cassettes/SageoneSdk_Client_Journals/journals/creates_a_journal.json
502
+ - spec/cassettes/SageoneSdk_Client_Journals/journals/on_error/responds_with_an_appropriate_error_message.json
503
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/create_a_ledger_account/creates_a_new_ledger_account.json
504
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/create_a_ledger_account/on_error/responds_with_an_appropriate_error_message.json
505
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_account_balances/does_not_return_ledger_accounts_with_a_zero_balance.json
506
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_account_balances/returns_ledger_accounts_with_a_balance.json
507
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/_id/returns_a_specific_ledger_account.json
508
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/allows_pagination.json
509
+ - spec/cassettes/SageoneSdk_Client_LedgerAccounts/ledger_accounts/returns_all_ledger_accounts.json
510
+ - spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/_id/returns_a_specific_contact_type.json
511
+ - spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/allows_pagination.json
512
+ - spec/cassettes/SageoneSdk_Client_PaymentStatuses/payment_statuses/returns_all_payment_statuses.json
513
+ - spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/_id/returns_a_specific_contact_type.json
514
+ - spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/allows_pagination.json
515
+ - spec/cassettes/SageoneSdk_Client_PeriodTypes/period_types/returns_all_period_types.json
516
+ - spec/cassettes/SageoneSdk_Client_Products/create_products/creates_a_new_product.json
517
+ - spec/cassettes/SageoneSdk_Client_Products/create_products/on_error/responds_with_an_appropriate_error_message.json
518
+ - spec/cassettes/SageoneSdk_Client_Products/delete_a_product/deletes_the_product.json
519
+ - spec/cassettes/SageoneSdk_Client_Products/products/_id/returns_a_specific_product.json
520
+ - spec/cassettes/SageoneSdk_Client_Products/products/allows_pagination.json
521
+ - spec/cassettes/SageoneSdk_Client_Products/products/returns_all_products.json
522
+ - spec/cassettes/SageoneSdk_Client_Products/update_a_product/updates_the_given_product.json
523
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/create_purchase_invoices/creates_a_new_purchase_invoice.json
524
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/create_purchase_invoices/on_error/responds_with_an_appropriate_error_message.json
525
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/delete_a_purchase_invoice/deletes_the_purchase_invoice.json
526
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/_id/returns_a_specific_purchase_invoice.json
527
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/allows_pagination.json
528
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/purchase_invoices/returns_all_purchase_invoices.json
529
+ - spec/cassettes/SageoneSdk_Client_PurchaseInvoices/update_a_purchase_invoice/updates_the_given_purchase_invoice.json
530
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/create_sales_invoices/creates_a_new_sales_invoice.json
531
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/create_sales_invoices/on_error/responds_with_an_appropriate_error_message.json
532
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/delete_a_sales_invoice/deletes_the_sales_invoice.json
533
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/_id/returns_a_specific_sales_invoice.json
534
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/allows_pagination.json
535
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/sales_invoices/returns_all_sales_invoices.json
536
+ - spec/cassettes/SageoneSdk_Client_SalesInvoices/update_a_sales_invoice/updates_the_given_sales_invoice.json
537
+ - spec/cassettes/SageoneSdk_Client_Services/create_services/creates_a_new_service.json
538
+ - spec/cassettes/SageoneSdk_Client_Services/create_services/on_error/responds_with_an_appropriate_error_message.json
539
+ - spec/cassettes/SageoneSdk_Client_Services/delete_a_service/deletes_the_service.json
540
+ - spec/cassettes/SageoneSdk_Client_Services/services/_id/returns_a_specific_service.json
541
+ - spec/cassettes/SageoneSdk_Client_Services/services/allows_pagination.json
542
+ - spec/cassettes/SageoneSdk_Client_Services/services/returns_all_services.json
543
+ - spec/cassettes/SageoneSdk_Client_Services/update_a_service/updates_the_given_service.json
544
+ - spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/_id/returns_a_specific_contact_type.json
545
+ - spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/allows_pagination.json
546
+ - spec/cassettes/SageoneSdk_Client_TaxRates/tax_rates/returns_all_tax_rates.json
547
+ - spec/cassettes/SageoneSdk_Client_Transactions/transactions/returns_all_transactions.json
548
+ - spec/cassettes/account_types_index.json
549
+ - spec/cassettes/bank_accounts_index.json
550
+ - spec/cassettes/contact_types_index.json
551
+ - spec/cassettes/contacts_index.json
552
+ - spec/cassettes/countries_index.json
553
+ - spec/cassettes/customer_create.json
554
+ - spec/cassettes/customers_index.json
555
+ - spec/cassettes/expenditure_create.json
556
+ - spec/cassettes/expenditures_index.json
557
+ - spec/cassettes/expense_methods_index.json
558
+ - spec/cassettes/expense_types_index.json
559
+ - spec/cassettes/income_create.json
560
+ - spec/cassettes/income_methods_index.json
561
+ - spec/cassettes/income_types_index.json
562
+ - spec/cassettes/incomes_index.json
563
+ - spec/cassettes/ledger_accounts_index.json
564
+ - spec/cassettes/payment_statuses_index.json
565
+ - spec/cassettes/period_types_index.json
566
+ - spec/cassettes/product_create.json
567
+ - spec/cassettes/products_index.json
568
+ - spec/cassettes/purchase_invoice_create.json
569
+ - spec/cassettes/purchase_invoices_index.json
570
+ - spec/cassettes/sales_invoice_create.json
571
+ - spec/cassettes/sales_invoices_index.json
572
+ - spec/cassettes/service_create.json
573
+ - spec/cassettes/services_index.json
574
+ - spec/cassettes/suppliers_index.json
575
+ - spec/cassettes/tax_rates_index.json
576
+ - spec/sageone_sdk/client/account_types_spec.rb
577
+ - spec/sageone_sdk/client/bank_accounts_spec.rb
578
+ - spec/sageone_sdk/client/chart_of_accounts_spec.rb
579
+ - spec/sageone_sdk/client/contact_types_spec.rb
580
+ - spec/sageone_sdk/client/contacts_spec.rb
581
+ - spec/sageone_sdk/client/countries_spec.rb
582
+ - spec/sageone_sdk/client/expenditures_spec.rb
583
+ - spec/sageone_sdk/client/expense_methods_spec.rb
584
+ - spec/sageone_sdk/client/expense_types_spec.rb
585
+ - spec/sageone_sdk/client/financial_settings_spec.rb
586
+ - spec/sageone_sdk/client/income_methods_spec.rb
587
+ - spec/sageone_sdk/client/income_types_spec.rb
588
+ - spec/sageone_sdk/client/incomes_spec.rb
589
+ - spec/sageone_sdk/client/journals_spec.rb
590
+ - spec/sageone_sdk/client/ledger_accounts_spec.rb
591
+ - spec/sageone_sdk/client/payment_statuses_spec.rb
592
+ - spec/sageone_sdk/client/period_types_spec.rb
593
+ - spec/sageone_sdk/client/products_spec.rb
594
+ - spec/sageone_sdk/client/purchase_invoices_spec.rb
595
+ - spec/sageone_sdk/client/sales_invoices_spec.rb
596
+ - spec/sageone_sdk/client/services_spec.rb
597
+ - spec/sageone_sdk/client/tax_rates_spec.rb
598
+ - spec/sageone_sdk/client/transactions_spec.rb
599
+ - spec/sageone_sdk_spec.rb
600
+ - spec/spec_helper.rb
601
+ has_rdoc: