dear_inventory 1.1.1 → 1.2.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: 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