dear_inventory 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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