dear_inventory 1.0.0 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bbdd47a610c9e0211c3172dbefa7f7f01fd8b4f162d56a28278f918cdf5f410d
4
- data.tar.gz: 35a216d5c1fef58b34cdeb5e270716b838bb150208c351c72b02efd51c0ddb19
3
+ metadata.gz: 8a10f4b371f702e3d3f39802e81dfd26b15488bef5b0dc46cf3e545091337ac7
4
+ data.tar.gz: efeea74d5c331483b7da7d0981d7fd70c18520e2a9e436ee9d8dec33e4f1582c
5
5
  SHA512:
6
- metadata.gz: c367eb7bae39cc13c565b52276d11f108755648a07a975124a8781e104f7019966dbbddac9374bcdd4d06aada9a4ae123fac9202d026fdb7b7dc756108dc3e61
7
- data.tar.gz: ab07f448af90b13057588b4cd5aaae384a731be266584c1382640c5666d45636581e867cc306d64b807199dad6d2e074f667e681f6febe6283fe3e9905f34f36
6
+ metadata.gz: 6589864faab4bd89da10f91bb0350201d1c0fa422e14640c63bbaddadb733c3ae3bbbaa0dfe0b09424271fa3a4c057d5fc50c64d9125d804160b971854c4ec75
7
+ data.tar.gz: b8b68f8e77e14472f7e45998d2ed0f05c9cb197b17864bdba649b849c101c11eab56741cb34875b3f24aab7b779981a0c78a2a979ef271ed224876d6ce1ec4a2
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  .rspec_status
14
14
  /spec/reports/
15
15
  /spec/examples.txt
16
+ /spec/vcr_cassettes
data/README.md CHANGED
@@ -55,11 +55,12 @@ end
55
55
 
56
56
  ## Endpoints
57
57
 
58
- [Customer](https://github.com/HashNotAdam/dear_inventory-ruby/docs/resources/customer.md)
59
- [Product](https://github.com/HashNotAdam/dear_inventory-ruby/docs/resources/product.md)
60
- [Purchase](https://github.com/HashNotAdam/dear_inventory-ruby/docs/resources/purchase.md)
61
- [Advanced Purchase](https://github.com/HashNotAdam/dear_inventory-ruby/docs/resources/advanced_purchase.md)
62
- [Sale](https://github.com/HashNotAdam/dear_inventory-ruby/docs/resources/sale.md)
58
+ - [Customer](https://github.com/HashNotAdam/dear_inventory-ruby/blob/master/docs/resources/customer.md)
59
+ - [Product](https://github.com/HashNotAdam/dear_inventory-ruby/blob/master/docs/resources/product.md)
60
+ - [Product Availability](https://github.com/HashNotAdam/dear_inventory-ruby/blob/master/docs/resources/product_availability.md)
61
+ - [Purchase](https://github.com/HashNotAdam/dear_inventory-ruby/blob/master/docs/resources/purchase.md)
62
+ - [Advanced Purchase](https://github.com/HashNotAdam/dear_inventory-ruby/blob/master/docs/resources/advanced_purchase.md)
63
+ - [Sale](https://github.com/HashNotAdam/dear_inventory-ruby/blob/master/docs/resources/sale.md)
63
64
 
64
65
  ## Managing pagination
65
66
 
@@ -0,0 +1,33 @@
1
+ # Product resource
2
+
3
+ ## GET
4
+
5
+ ```ruby
6
+ DearInventory::ProductAvailability.index
7
+ DearInventory::ProductAvailability.()
8
+ ```
9
+
10
+ ### Parameters
11
+ | Name | Type | Required |
12
+ | --- | --- | --- |
13
+ | id | String | false |
14
+ | page | Integer | false |
15
+ | limit | Integer | false |
16
+ | name | String | false |
17
+ | sku | String | false |
18
+ | location | String | false |
19
+ | batch | String | false |
20
+ | category | String | false |
21
+
22
+ ### Response
23
+
24
+ The index endpoint returns a paginated set of records.
25
+
26
+ To see what data is available in the response, you can call the `field` method:
27
+
28
+ ```ruby
29
+ response = DearInventory::ProductAvailability.()
30
+ response.fields # [:records, :total, :page, :product_availabilities]
31
+ records = response.records
32
+ ```
33
+
@@ -1,6 +1,7 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "bigdecimal/util"
4
5
  require "json"
5
6
 
6
7
  module DearInventory
@@ -16,7 +16,7 @@ module DearInventory
16
16
  type: :Integer,
17
17
  },
18
18
  CustomerList: {
19
- name: :customer_list,
19
+ name: :customers,
20
20
  type: :ResultSet,
21
21
  model: DearInventory::Models::Customer,
22
22
  }
@@ -0,0 +1,61 @@
1
+ # typed: strong
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ module Models
6
+ class ProductAvailability < DearInventory::Model
7
+ extend T::Sig
8
+
9
+ fields(
10
+ ID: {
11
+ name: :product_id,
12
+ type: :Guid,
13
+ },
14
+ SKU: {
15
+ name: :sku,
16
+ type: :String,
17
+ },
18
+ Name: {
19
+ name: :name,
20
+ type: :String,
21
+ },
22
+ Barcode: {
23
+ name: :barcode,
24
+ type: :String,
25
+ },
26
+ Location: {
27
+ name: :location,
28
+ type: :String,
29
+ },
30
+ Bin: {
31
+ name: :bin,
32
+ type: :String,
33
+ },
34
+ ExpiryDate: {
35
+ name: :expiry_date,
36
+ type: :DateTime,
37
+ },
38
+ OnHand: {
39
+ name: :on_hand,
40
+ type: :Float,
41
+ },
42
+ Allocated: {
43
+ name: :allocated,
44
+ type: :Float,
45
+ },
46
+ Available: {
47
+ name: :available,
48
+ type: :Float,
49
+ },
50
+ OnOrder: {
51
+ name: :on_order,
52
+ type: :Float,
53
+ },
54
+ StockOnHand: {
55
+ name: :stock_on_hand,
56
+ type: :Float,
57
+ }
58
+ )
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,26 @@
1
+ # typed: strong
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ module Models
6
+ class ProductAvailabilityResults < DearInventory::Model
7
+ extend T::Sig
8
+
9
+ fields(
10
+ Total: {
11
+ name: :total,
12
+ type: :Integer,
13
+ },
14
+ Page: {
15
+ name: :page,
16
+ type: :Integer,
17
+ },
18
+ ProductAvailabilityList: {
19
+ name: :product_availabilities,
20
+ type: :ResultSet,
21
+ model: DearInventory::Models::ProductAvailability,
22
+ }
23
+ )
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,55 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ class Parameters
6
+ module ProductAvailability
7
+ class Index < DearInventory::Parameters
8
+ extend T::Sig
9
+
10
+ fields(
11
+ id: {
12
+ property: :ID,
13
+ type: :String,
14
+ required: false,
15
+ },
16
+ page: {
17
+ property: :Page,
18
+ type: :Integer,
19
+ required: false,
20
+ },
21
+ limit: {
22
+ property: :Limit,
23
+ type: :Integer,
24
+ required: false,
25
+ },
26
+ name: {
27
+ property: :Name,
28
+ type: :String,
29
+ required: false,
30
+ },
31
+ sku: {
32
+ property: :Sku,
33
+ type: :String,
34
+ required: false,
35
+ },
36
+ location: {
37
+ property: :Location,
38
+ type: :String,
39
+ required: false,
40
+ },
41
+ batch: {
42
+ property: :Batch,
43
+ type: :String,
44
+ required: false,
45
+ },
46
+ category: {
47
+ property: :Category,
48
+ type: :String,
49
+ required: false,
50
+ }
51
+ )
52
+ end
53
+ end
54
+ end
55
+ end
@@ -9,7 +9,7 @@ module DearInventory
9
9
  # Advanced Purchase
10
10
  #
11
11
  # @param params [Hash] URL query string parameters that conform to
12
- # DearInventory::Parameters::Purchase::ShowAdvanced
12
+ # DearInventory::Parameters::AdvancedPurchase::Show
13
13
  sig do
14
14
  params(params: T::Hash[Symbol, T.untyped]).
15
15
  returns(DearInventory::Response)
@@ -0,0 +1,35 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ class ProductAvailability < Resource
6
+ class << self
7
+ extend T::Sig
8
+
9
+ # ProductAvailability
10
+ #
11
+ # @param params [Hash] URL query string parameters that conform to
12
+ # DearInventory::Parameters::ProductAvailability::Index
13
+ sig do
14
+ params(params: T::Hash[Symbol, T.untyped]).
15
+ returns(DearInventory::Response)
16
+ end
17
+ def index(params = {})
18
+ new.request(
19
+ :get,
20
+ params: params,
21
+ model: DearInventory::Models::ProductAvailabilityResults
22
+ )
23
+ end
24
+
25
+ alias call index
26
+ end
27
+
28
+ private
29
+
30
+ sig { params(_endpoint: T.nilable(String)).returns(String) }
31
+ def resource_uri(_endpoint)
32
+ self.class.const_get(:URI_BASE) + "/ref/productavailability"
33
+ end
34
+ end
35
+ end
@@ -8,10 +8,20 @@ module DearInventory
8
8
 
9
9
  sig { override.void }
10
10
  def call
11
- return if instance_variable_get(:@value).present?
11
+ return if present?(instance_variable_get(:@value))
12
12
 
13
13
  raise_error("the field is required but no value was provided")
14
14
  end
15
+
16
+ private
17
+
18
+ def present?(value)
19
+ !blank?(value)
20
+ end
21
+
22
+ def blank?(value)
23
+ value&.empty? || !value
24
+ end
15
25
  end
16
26
  end
17
27
  end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module DearInventory
5
- VERSION = "1.0.0"
5
+ VERSION = "1.1.0"
6
6
  end
@@ -31,6 +31,8 @@ require "dear_inventory/models/bill_of_materials_service"
31
31
  require "dear_inventory/models/customers/address"
32
32
  require "dear_inventory/models/customers/contact"
33
33
  require "dear_inventory/models/inventory_movement"
34
+ require "dear_inventory/models/product_availability"
35
+ require "dear_inventory/models/product_availability_results"
34
36
  require "dear_inventory/models/products/movement"
35
37
  require "dear_inventory/models/purchases"
36
38
  require "dear_inventory/models/purchases_results"
@@ -100,6 +102,7 @@ require "dear_inventory/parameters"
100
102
  require "dear_inventory/parameters/advanced_purchase/show"
101
103
  require "dear_inventory/parameters/customer/index"
102
104
  require "dear_inventory/parameters/product/index"
105
+ require "dear_inventory/parameters/product_availability/index"
103
106
  require "dear_inventory/parameters/purchase/index"
104
107
  require "dear_inventory/parameters/purchase/show"
105
108
  require "dear_inventory/parameters/sale/index"
@@ -109,6 +112,7 @@ require "dear_inventory/resource"
109
112
  require "dear_inventory/resources/advanced_purchase"
110
113
  require "dear_inventory/resources/customer"
111
114
  require "dear_inventory/resources/product"
115
+ require "dear_inventory/resources/product_availability"
112
116
  require "dear_inventory/resources/purchase"
113
117
  require "dear_inventory/resources/sale"
114
118
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dear_inventory
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Rice
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-15 00:00:00.000000000 Z
11
+ date: 2020-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -221,6 +221,7 @@ files:
221
221
  - docs/resources/advanced_purchase.md
222
222
  - docs/resources/customer.md
223
223
  - docs/resources/product.md
224
+ - docs/resources/product_availability.md
224
225
  - docs/resources/purchase.md
225
226
  - docs/resources/sale.md
226
227
  - lib/dear_inventory.rb
@@ -251,6 +252,8 @@ files:
251
252
  - lib/dear_inventory/models/customers/contact.rb
252
253
  - lib/dear_inventory/models/inventory_movement.rb
253
254
  - lib/dear_inventory/models/product.rb
255
+ - lib/dear_inventory/models/product_availability.rb
256
+ - lib/dear_inventory/models/product_availability_results.rb
254
257
  - lib/dear_inventory/models/products.rb
255
258
  - lib/dear_inventory/models/products/movement.rb
256
259
  - lib/dear_inventory/models/purchase.rb
@@ -305,6 +308,7 @@ files:
305
308
  - lib/dear_inventory/parameters/advanced_purchase/show.rb
306
309
  - lib/dear_inventory/parameters/customer/index.rb
307
310
  - lib/dear_inventory/parameters/product/index.rb
311
+ - lib/dear_inventory/parameters/product_availability/index.rb
308
312
  - lib/dear_inventory/parameters/purchase/index.rb
309
313
  - lib/dear_inventory/parameters/purchase/show.rb
310
314
  - lib/dear_inventory/parameters/sale/index.rb
@@ -313,6 +317,7 @@ files:
313
317
  - lib/dear_inventory/resources/advanced_purchase.rb
314
318
  - lib/dear_inventory/resources/customer.rb
315
319
  - lib/dear_inventory/resources/product.rb
320
+ - lib/dear_inventory/resources/product_availability.rb
316
321
  - lib/dear_inventory/resources/purchase.rb
317
322
  - lib/dear_inventory/resources/sale.rb
318
323
  - lib/dear_inventory/response.rb