dear_inventory 1.1.1 → 1.2.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: 3740079be25bd523b26cd208aa919f9b96a39a640e4664c50ab4718c2ec15166
4
- data.tar.gz: 5d0b3383b9caf19a79063f945fa321eafb035be16af29f3e174f087df4b28280
3
+ metadata.gz: 5d2cff2061b63178640316ee94c2d2f755e00f6840c9c95254eff1da695dfdfe
4
+ data.tar.gz: da3f9d8d7bae5cb2626e69c17a26ed4eec5c3684246a84857ecbfbc8c0ee1d05
5
5
  SHA512:
6
- metadata.gz: 49950770ad4fc8747008e7ee938bc131cae8840448d37d51b40ca86188ea16350252931a5ff2cc1ddab72cf25edf526a084beb0033f37d3c37ff931195783ca5
7
- data.tar.gz: ad5993a60e3475737346b301b18f133710ae029b09b339719a2843bbcd8e80e61fa3389667efb49b5085fde31c366f5130853687c07147b7444af5a2e5d7669a
6
+ metadata.gz: 6b0c98e95c9674ed1f3179a6f95f955b9dfd27456fb708e703f01e421e6c6be18290a630e7be574a5d30befe92f7ac23af2090572b48aba6b7cd48b2e1bb11a8
7
+ data.tar.gz: b5602ee55a9dd359de1ddd8de3e5185ccf85283a53de760bfa78b60b3d6e5febbdd57a8dd4a8b048d76f3d8d10ca22de8620fe87066d8d6bda6403e5941a0d22
@@ -88,6 +88,7 @@ require "dear_inventory/models/sales/invoice"
88
88
  require "dear_inventory/models/sale"
89
89
  require "dear_inventory/models/sales"
90
90
  require "dear_inventory/models/request"
91
+ require "dear_inventory/models/test_request"
91
92
 
92
93
  require "dear_inventory/validator"
93
94
  require "dear_inventory/validators/boolean"
@@ -117,6 +118,7 @@ require "dear_inventory/resources/purchase"
117
118
  require "dear_inventory/resources/sale"
118
119
 
119
120
  require "dear_inventory/response"
121
+ require "dear_inventory/test_response"
120
122
 
121
123
  require "dear_inventory/version"
122
124
 
@@ -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
@@ -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
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module DearInventory
5
- VERSION = "1.1.1"
5
+ VERSION = "1.2.0"
6
6
  end
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.1.1
4
+ version: 1.2.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-05-01 00:00:00.000000000 Z
11
+ date: 2020-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -303,6 +303,7 @@ files:
303
303
  - lib/dear_inventory/models/sales_results.rb
304
304
  - lib/dear_inventory/models/shipping_address.rb
305
305
  - lib/dear_inventory/models/supplier.rb
306
+ - lib/dear_inventory/models/test_request.rb
306
307
  - lib/dear_inventory/models/transaction.rb
307
308
  - lib/dear_inventory/parameters.rb
308
309
  - lib/dear_inventory/parameters/advanced_purchase/show.rb
@@ -321,6 +322,7 @@ files:
321
322
  - lib/dear_inventory/resources/purchase.rb
322
323
  - lib/dear_inventory/resources/sale.rb
323
324
  - lib/dear_inventory/response.rb
325
+ - lib/dear_inventory/test_response.rb
324
326
  - lib/dear_inventory/validator.rb
325
327
  - lib/dear_inventory/validators/boolean.rb
326
328
  - lib/dear_inventory/validators/enum.rb