dear_inventory 1.0.0 → 1.3.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: 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: []