business_central 0.9.3 → 0.9.4
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 +4 -4
- data/README.md +11 -3
- data/business_central.gemspec +1 -1
- data/lib/business_central/api_methods.rb +6 -0
- data/lib/business_central/version.rb +1 -1
- data/test/business_central/sales_invoice_line_test.rb +11 -0
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c64c8b89e135e0b6c62847a7a9078a1d6e03ed9a7f4f0c42fbe6055c7682fb9d
|
|
4
|
+
data.tar.gz: bd582004159946b732c2299c0fb9f117b561046841fda4d1ca969b765a8e3000
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1dbbccbe53b6ea89e9412bb70c920c422df23034ad1f4e95c41fbc8c9136dfedae9545b42f9c8d9af7184db58ccff3136b378d30b68adad970adf7c2a0ff0aea
|
|
7
|
+
data.tar.gz: 52cd76e4fd06945006f8149f0c0900f6e9ff2c13c765ac450252b7bc9a04e803b69f5346787d3a5f198555ad9351cd4827bbbacf98f820124f0883b1365585bb
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# business-central
|
|
2
2
|
|
|
3
|
-
[](https://dev.azure.com/fivesenses/business-central/_build/latest?definitionId=3&branchName=master)
|
|
4
4
|
[](https://codeclimate.com/github/fivesenses/business-central/maintainability)
|
|
5
5
|
|
|
6
6
|
A Ruby library that provides access to the Microsoft Dynamics365 Business Central REST API.
|
|
@@ -31,7 +31,7 @@ The gem will automatically look for the following ENV variables, but these can
|
|
|
31
31
|
be over-ridden in the options Hash:
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
BC_TENANT, BC_COMPANY_ID, BC_USERNAME, BC_PASSWORD
|
|
34
|
+
BC_TENANT, BC_COMPANY_ID, BC_USERNAME, BC_PASSWORD, BC_HOST
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
```
|
|
@@ -41,9 +41,17 @@ client = BusinessCentral::Client.new({
|
|
|
41
41
|
api_password: ENV[BC_PASSWORD],
|
|
42
42
|
api_version: ENV[BC_API_VERSION],
|
|
43
43
|
api_path: ENV[BC_API_PATH],
|
|
44
|
-
api_company_id: ENV[BC_COMPANY_ID]
|
|
44
|
+
api_company_id: ENV[BC_COMPANY_ID],
|
|
45
|
+
api_host: ENV[BC_HOST]
|
|
45
46
|
})
|
|
46
47
|
|
|
48
|
+
# These options are used to build the URL to access the Business Central API as
|
|
49
|
+
# follows:
|
|
50
|
+
|
|
51
|
+
"https://#{@api_host}#{@api_version}/#{@api_tenant}#{@api_path}/companies(#{@api_company_id})"
|
|
52
|
+
|
|
53
|
+
"https://api.businesscentral.dynamics.com/v1.0/cronus.com/api/v1.0/companies(UUID)"
|
|
54
|
+
|
|
47
55
|
# Returns an array of Customers
|
|
48
56
|
customers = BusinessCentral::Customer.new(client).get()
|
|
49
57
|
|
data/business_central.gemspec
CHANGED
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
|
10
10
|
spec.email = ["dev@fivesenses.com.au"]
|
|
11
11
|
spec.summary = %q{Interact with the Microsoft Dynamics365 Business Central API}
|
|
12
12
|
spec.description = %q{Interact with the Microsoft Dynamics365 Business Central API}
|
|
13
|
-
spec.homepage = ""
|
|
13
|
+
spec.homepage = "https://github.com/fivesenses/business_central"
|
|
14
14
|
spec.license = "Mozilla"
|
|
15
15
|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
|
@@ -92,6 +92,12 @@ module BusinessCentral
|
|
|
92
92
|
process(response)
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
+
def query_child(parent_id, query)
|
|
96
|
+
response = @client.get("/#{api_object_parent}(#{parent_id})/#{api_object}?$filter=#{query}")
|
|
97
|
+
handle_error(response)
|
|
98
|
+
process(response)
|
|
99
|
+
end
|
|
100
|
+
|
|
95
101
|
# Performs the POST operation on the supplied args
|
|
96
102
|
#
|
|
97
103
|
# @param args [Array]]
|
|
@@ -26,6 +26,17 @@ class BusinessCentral::SalesInvoiceLineTest < Test::Unit::TestCase
|
|
|
26
26
|
assert_equal "LONDON Swivel Chair, blue", invoiceLines.first.description
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
+
test "should return filtered invoice lines for a given salesInvoice" do
|
|
30
|
+
stub_get("salesInvoices(1234)/salesInvoiceLines?$filter=lineType%20eq%20'Item'").
|
|
31
|
+
with(headers: stub_headers).
|
|
32
|
+
to_return(status: 200, body: fixture("get_salesInvoiceLines_200.json"))
|
|
33
|
+
|
|
34
|
+
invoiceLines = BusinessCentral::SalesInvoiceLine.new(bc_client).
|
|
35
|
+
query_child("1234", "lineType eq 'Item'")
|
|
36
|
+
|
|
37
|
+
assert invoiceLines.is_a?(Array)
|
|
38
|
+
end
|
|
39
|
+
|
|
29
40
|
test "should return salesInvoiceLines when only one line exists" do
|
|
30
41
|
stub_get("salesInvoices(1234)/salesInvoiceLines").
|
|
31
42
|
with(headers: stub_headers).
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: business_central
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Five Senses Coffee
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-08-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: oauth2
|
|
@@ -293,7 +293,7 @@ files:
|
|
|
293
293
|
- test/fixtures/post_salesInvoice_200.json
|
|
294
294
|
- test/fixtures/post_subscription_200.json
|
|
295
295
|
- test/test_helper.rb
|
|
296
|
-
homepage:
|
|
296
|
+
homepage: https://github.com/fivesenses/business_central
|
|
297
297
|
licenses:
|
|
298
298
|
- Mozilla
|
|
299
299
|
metadata: {}
|