dear_inventory 1.0.0 → 1.3.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: 4517ad48f4b5c66087e36b25e56af1319fd404d9872f2aa1d205293e69f5dfb7
4
+ data.tar.gz: 03cf1a5cfb5f3e823368073bdeab88032fc365574617364a706fca5c44b283f7
5
5
  SHA512:
6
- metadata.gz: c367eb7bae39cc13c565b52276d11f108755648a07a975124a8781e104f7019966dbbddac9374bcdd4d06aada9a4ae123fac9202d026fdb7b7dc756108dc3e61
7
- data.tar.gz: ab07f448af90b13057588b4cd5aaae384a731be266584c1382640c5666d45636581e867cc306d64b807199dad6d2e074f667e681f6febe6283fe3e9905f34f36
6
+ metadata.gz: 4568639a86a8aa82a7a75f8d51de75354107a04ac306cdf7383a4d78160f14210dbbecba98ff1974554f809fc74c4f0cb9c59822101ee82047fcd01040132e19
7
+ data.tar.gz: e7cbb91397ac2fe478b4d4f4f10da7fcd2823412bf89c9579f2e5b50c93ce622aa627b6a9e2f033351de780aa8fbecde44666bb2f1a7f25454dce22487050ff7
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
 
@@ -28,12 +28,13 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- spec.add_dependency "http", ">= 4.0.0", "< 5.0"
31
+ spec.add_dependency "http", ">= 5.0", "< 6.0"
32
32
  spec.add_dependency "sorbet-runtime"
33
33
 
34
34
  spec.add_development_dependency "bundler", "~> 2.0"
35
35
  spec.add_development_dependency "byebug"
36
36
  spec.add_development_dependency "dotenv"
37
+ spec.add_development_dependency "pry-byebug"
37
38
  spec.add_development_dependency "rake", ">= 12.3.3"
38
39
  spec.add_development_dependency "rspec", "~> 3.0"
39
40
  spec.add_development_dependency "rubocop", "~> 0.71"
@@ -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
+
@@ -87,3 +87,31 @@ response.fields # [:id, :customer, :customer_id, :contact, :phone, :email, :defa
87
87
  id = response.id # abcdef01-2345-6789-abcd-ef0123456789
88
88
  ```
89
89
 
90
+
91
+
92
+ ## Delete DELETE
93
+
94
+ ```ruby
95
+ DearInventory::Sale.delete
96
+ ```
97
+
98
+ ### Parameters
99
+
100
+ | Name | Type | Required | Default |
101
+ | --- | --- | --- | --- |
102
+ | id | String | true | N/A |
103
+ | void | Boolean | false | false |
104
+
105
+ ### Response
106
+
107
+ A new copy of the record is returned. To see what data is available in the
108
+ response, you can call the `field` method:
109
+
110
+ ```ruby
111
+ response = DearInventory::Sale.delete(
112
+ id: "abcdef01-2345-6789-abcd-ef0123456789",
113
+ void: true
114
+ )
115
+ response.fields # [:id, :customer, :customer_id, :contact, :phone, :email, :default_account, :skip_quote, :billing_address, :shipping_address, :base_currency, :customer_currency, :tax_rule, :tax_calculation, :terms, :price_tier, :ship_by, :location, :sale_order_date, :last_modified_on, :note, :customer_reference, :cogs_amount, :status, :combined_picking_status, :combined_packing_status, :combined_shipping_status, :fulfilment_status, :combined_invoice_status, :combined_payment_status, :combined_tracking_numbers, :carrier, :currency_rate, :sales_representative, :type, :source_channel, :external_id, :service_only, :quote, :order, :fulfilments, :invoices, :credit_notes, :manual_journals, :additional_attributes, :attachments, :inventory_movements, :transactions]
116
+ id = response.id # abcdef01-2345-6789-abcd-ef0123456789
117
+ ```
@@ -58,7 +58,7 @@ module DearInventory
58
58
  returns(T::Hash[Symbol, T::Hash[Symbol, T.untyped]])
59
59
  end
60
60
  def request_params(action, params)
61
- if action == :get
61
+ if %i[get delete].include?(action)
62
62
  { params: params.to_h }
63
63
  else
64
64
  { json: params.to_h }
@@ -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
@@ -65,7 +65,7 @@ module DearInventory
65
65
  },
66
66
  TaxNumber: {
67
67
  name: :tax_number,
68
- type: :Integer,
68
+ type: :String,
69
69
  },
70
70
  CreditLimit: {
71
71
  name: :credit_limit,
@@ -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,31 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ module Models
6
+ class TestRequest < Request
7
+ extend T::Sig
8
+
9
+ sig { returns(Symbol) }
10
+ attr_reader :action
11
+ sig { returns(T.class_of(DearInventory::Model)) }
12
+ attr_reader :model
13
+ sig { returns(DearInventory::Parameters) }
14
+ attr_reader :params
15
+ sig { returns(String) }
16
+ attr_reader :uri
17
+
18
+ sig { params(parameters: T::Hash[Symbol, T.untyped]).void }
19
+ def initialize(parameters)
20
+ @action = T.let(parameters[:action], T.nilable(Symbol))
21
+ @model = T.let(
22
+ parameters[:model], T.nilable(T.class_of(DearInventory::Model))
23
+ )
24
+ @params = T.let(
25
+ parameters[:params], T.nilable(DearInventory::Parameters)
26
+ )
27
+ @uri = T.let(parameters[:uri], T.nilable(String))
28
+ end
29
+ end
30
+ end
31
+ 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
@@ -0,0 +1,25 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ class Parameters
6
+ module Sale
7
+ class Delete < DearInventory::Parameters
8
+ extend T::Sig
9
+
10
+ fields(
11
+ id: {
12
+ property: :ID,
13
+ type: :String,
14
+ required: true,
15
+ },
16
+ void: {
17
+ property: :Void,
18
+ type: :Boolean,
19
+ required: false,
20
+ }
21
+ )
22
+ end
23
+ end
24
+ end
25
+ 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
@@ -41,6 +41,23 @@ module DearInventory
41
41
  params: params
42
42
  )
43
43
  end
44
+
45
+ # Sale
46
+ #
47
+ # @param params [Hash] URL query string parameters that conform to
48
+ # DearInventory::Parameters::Sale::Delete
49
+ sig do
50
+ params(params: T::Hash[Symbol, T.untyped]).
51
+ returns(DearInventory::Response)
52
+ end
53
+ def delete(params = {})
54
+ new.request(
55
+ :delete,
56
+ endpoint: "delete",
57
+ model: DearInventory::Models::Sale,
58
+ params: params
59
+ )
60
+ end
44
61
  end
45
62
 
46
63
  private
@@ -49,9 +66,9 @@ module DearInventory
49
66
  def resource_uri(endpoint)
50
67
  case endpoint
51
68
  when "index"
52
- self.class.const_get(:URI_BASE) + "/salelist"
53
- when "show"
54
- self.class.const_get(:URI_BASE) + "/sale"
69
+ "#{self.class.const_get(:URI_BASE)}/salelist"
70
+ when "show", "delete"
71
+ "#{self.class.const_get(:URI_BASE)}/sale"
55
72
  end
56
73
  end
57
74
  end
@@ -136,7 +136,13 @@ module DearInventory
136
136
  sig { returns(T.any(T::Hash[String, T.untyped], String)) }
137
137
  def body
138
138
  string_body = @response.body.to_s
139
- JSON.parse(string_body)
139
+ parsed_body = JSON.parse(string_body)
140
+
141
+ if parsed_body.is_a?(Array)
142
+ parsed_body.first
143
+ else
144
+ parsed_body
145
+ end
140
146
  rescue JSON::ParserError
141
147
  string_body
142
148
  end
@@ -0,0 +1,44 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module DearInventory
5
+ class TestResponse < Response
6
+ extend T::Sig
7
+ extend DearInventory::IsASubclass
8
+
9
+ sig { returns(DearInventory::Models::Request) }
10
+ attr_reader :request
11
+ sig { returns(HTTP::Response) }
12
+ attr_reader :response
13
+
14
+ # rubocop:disable Metrics/AbcSize
15
+ sig do
16
+ params(
17
+ request: DearInventory::Models::TestRequest,
18
+ body: T.nilable(T::Hash[String, T.untyped]),
19
+ num_previous_records: Integer
20
+ ).void
21
+ end
22
+ def initialize(request:, body:, num_previous_records: 0)
23
+ @request = T.let(request, DearInventory::Models::Request)
24
+ @num_previous_records = T.let(num_previous_records, Integer)
25
+
26
+ @fields = T.let(nil, T.nilable(T::Array[Symbol]))
27
+ @http_status = T.let(nil, T.nilable(Integer))
28
+ @load_full_record = T.let(nil, T.nilable(T::Boolean))
29
+ @num_records_paged = T.let(nil, T.nilable(Integer))
30
+ @uri = T.let(nil, T.nilable(String))
31
+
32
+ raise_error unless success?
33
+
34
+ @model = T.let(@request.model.new(body), DearInventory::Model)
35
+ assign_values
36
+ end
37
+ # rubocop:enable Metrics/AbcSize
38
+
39
+ sig { returns(Integer) }
40
+ def http_status
41
+ 200
42
+ end
43
+ end
44
+ 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.3.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"
@@ -86,6 +88,7 @@ require "dear_inventory/models/sales/invoice"
86
88
  require "dear_inventory/models/sale"
87
89
  require "dear_inventory/models/sales"
88
90
  require "dear_inventory/models/request"
91
+ require "dear_inventory/models/test_request"
89
92
 
90
93
  require "dear_inventory/validator"
91
94
  require "dear_inventory/validators/boolean"
@@ -100,8 +103,10 @@ require "dear_inventory/parameters"
100
103
  require "dear_inventory/parameters/advanced_purchase/show"
101
104
  require "dear_inventory/parameters/customer/index"
102
105
  require "dear_inventory/parameters/product/index"
106
+ require "dear_inventory/parameters/product_availability/index"
103
107
  require "dear_inventory/parameters/purchase/index"
104
108
  require "dear_inventory/parameters/purchase/show"
109
+ require "dear_inventory/parameters/sale/delete"
105
110
  require "dear_inventory/parameters/sale/index"
106
111
  require "dear_inventory/parameters/sale/show"
107
112
 
@@ -109,10 +114,12 @@ require "dear_inventory/resource"
109
114
  require "dear_inventory/resources/advanced_purchase"
110
115
  require "dear_inventory/resources/customer"
111
116
  require "dear_inventory/resources/product"
117
+ require "dear_inventory/resources/product_availability"
112
118
  require "dear_inventory/resources/purchase"
113
119
  require "dear_inventory/resources/sale"
114
120
 
115
121
  require "dear_inventory/response"
122
+ require "dear_inventory/test_response"
116
123
 
117
124
  require "dear_inventory/version"
118
125
 
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.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Rice
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-15 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0
19
+ version: '5.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.0'
22
+ version: '6.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 4.0.0
29
+ version: '5.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.0'
32
+ version: '6.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: sorbet-runtime
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: pry-byebug
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: rake
91
105
  requirement: !ruby/object:Gem::Requirement
@@ -221,6 +235,7 @@ files:
221
235
  - docs/resources/advanced_purchase.md
222
236
  - docs/resources/customer.md
223
237
  - docs/resources/product.md
238
+ - docs/resources/product_availability.md
224
239
  - docs/resources/purchase.md
225
240
  - docs/resources/sale.md
226
241
  - lib/dear_inventory.rb
@@ -251,6 +266,8 @@ files:
251
266
  - lib/dear_inventory/models/customers/contact.rb
252
267
  - lib/dear_inventory/models/inventory_movement.rb
253
268
  - lib/dear_inventory/models/product.rb
269
+ - lib/dear_inventory/models/product_availability.rb
270
+ - lib/dear_inventory/models/product_availability_results.rb
254
271
  - lib/dear_inventory/models/products.rb
255
272
  - lib/dear_inventory/models/products/movement.rb
256
273
  - lib/dear_inventory/models/purchase.rb
@@ -300,22 +317,27 @@ files:
300
317
  - lib/dear_inventory/models/sales_results.rb
301
318
  - lib/dear_inventory/models/shipping_address.rb
302
319
  - lib/dear_inventory/models/supplier.rb
320
+ - lib/dear_inventory/models/test_request.rb
303
321
  - lib/dear_inventory/models/transaction.rb
304
322
  - lib/dear_inventory/parameters.rb
305
323
  - lib/dear_inventory/parameters/advanced_purchase/show.rb
306
324
  - lib/dear_inventory/parameters/customer/index.rb
307
325
  - lib/dear_inventory/parameters/product/index.rb
326
+ - lib/dear_inventory/parameters/product_availability/index.rb
308
327
  - lib/dear_inventory/parameters/purchase/index.rb
309
328
  - lib/dear_inventory/parameters/purchase/show.rb
329
+ - lib/dear_inventory/parameters/sale/delete.rb
310
330
  - lib/dear_inventory/parameters/sale/index.rb
311
331
  - lib/dear_inventory/parameters/sale/show.rb
312
332
  - lib/dear_inventory/resource.rb
313
333
  - lib/dear_inventory/resources/advanced_purchase.rb
314
334
  - lib/dear_inventory/resources/customer.rb
315
335
  - lib/dear_inventory/resources/product.rb
336
+ - lib/dear_inventory/resources/product_availability.rb
316
337
  - lib/dear_inventory/resources/purchase.rb
317
338
  - lib/dear_inventory/resources/sale.rb
318
339
  - lib/dear_inventory/response.rb
340
+ - lib/dear_inventory/test_response.rb
319
341
  - lib/dear_inventory/validator.rb
320
342
  - lib/dear_inventory/validators/boolean.rb
321
343
  - lib/dear_inventory/validators/enum.rb
@@ -374,7 +396,7 @@ homepage: https://morningcoffee.com.au
374
396
  licenses:
375
397
  - MIT
376
398
  metadata: {}
377
- post_install_message:
399
+ post_install_message:
378
400
  rdoc_options: []
379
401
  require_paths:
380
402
  - lib
@@ -389,8 +411,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
389
411
  - !ruby/object:Gem::Version
390
412
  version: 1.8.11
391
413
  requirements: []
392
- rubygems_version: 3.1.2
393
- signing_key:
414
+ rubygems_version: 3.2.32
415
+ signing_key:
394
416
  specification_version: 4
395
417
  summary: Library for connecting to the DEAR Inventory API
396
418
  test_files: []