vng 1.7.0 → 2.0.1

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: ec68041442659731246003b523c47c70f41ac3127190c3f966a0c774274f9a2e
4
- data.tar.gz: b34853bfd235358cb485ff8fbe84a090dd4104e01f6f01065d6269b20f7f9fbe
3
+ metadata.gz: b55414af3d991f40577d333dca79e445d4c71a50966982680c62045a76588bb3
4
+ data.tar.gz: 3cbccf175981d60238a834c2ecd97940f5bcb09a4bf731b034ec94877a3cf8ec
5
5
  SHA512:
6
- metadata.gz: b2c9cb81c4ec152b7e98800ee01ba68b05617e5b5f85d6dee04607e9c3347faa402f0d3e8109d9579e3683bd7e8d234c5c209ef3e67e8e7d6dd8277e08930dd7
7
- data.tar.gz: 91abf7c0f28cd38e7cd9151797eb3312ea6046db8c07af63ba53861b00cf6603f0b2e17c5a585bba9b75623fe2a58aa17c89df739437ee8de027893a25836d32
6
+ metadata.gz: 8ac26b5eff9feb7f2bc234855b0cbc6c06cc5c8073f0308c2edc3938a0196b60d3b2316aee28c6660bdfed8281bdd0769682162102eeeccae2698fb50d52c211
7
+ data.tar.gz: ec80bef2801ad13ff0ad63edb503eae435b07d7e0889483ac2dd4700d1ad94cead7293f1dd87f5e1c9f00e2db8e19e361f4f484089b5ec2032355d79b5d954be
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [2.0.1] - 2024-12-26
2
+
3
+ - Fix MockRequest for types
4
+
5
+ ## [2.0.0] - 2024-12-26
6
+
7
+ ** Breaking changes**
8
+
9
+ - Remove ServiceType.all and ServiceType.where(zip:)
10
+
1
11
  ## [1.7.0] - 2024-12-26
2
12
 
3
13
  - Adds PriceItem.for_price_list_id
@@ -122,13 +122,13 @@ module Vng
122
122
  { "fieldID"=>96, "fieldValue"=>"8648648640" },
123
123
  ] }
124
124
  when '/api/v1/data/Locations/'
125
- { "Location"=>{ "objectID"=>"995681" } }
125
+ { "Location"=>{ "objectID"=>995681 } }
126
126
  when '/api/v1/data/Assets/'
127
127
  if @body[:method].eql? '3'
128
128
  if @body[:Fields].find{|field| field[:fieldID] == 1014}[:optionID].eql? 304
129
- { "Asset"=>{ "objectID"=>"2201008" } } # dog
129
+ { "Asset"=>{ "objectID"=>2201008 } } # dog
130
130
  elsif @body[:Fields].find{|field| field[:fieldID] == 1014}[:optionID].eql? 305
131
- { "Asset"=>{ "objectID"=>"2201009" } } # cat
131
+ { "Asset"=>{ "objectID"=>2201009 } } # cat
132
132
  end
133
133
  elsif @body[:method].eql? '4'
134
134
  {}
@@ -172,7 +172,7 @@ module Vng
172
172
  { }
173
173
  end
174
174
  when '/api/v1/data/priceLists/'
175
- if @body[:assetID].eql?("2201008")
175
+ if @body[:assetID].eql?(2201008)
176
176
  { "PriceItems"=>[
177
177
  { "priceItemID"=>275111, "priceBlockID"=>329, "descriptionHelp"=>"A price item", "sequence"=>1, "priceItem"=>"Bulldog American - 15 Step SPA Grooming Service", "value"=>85.0, "taxID"=>256, "durationPerUnit"=>45.0, "serviceBadge"=>"Required", "serviceCategory"=>"15 Step Spa", "isOnline"=>true, "isActive"=>true },
178
178
  { "priceItemID"=>275112, "priceBlockID"=>329, "descriptionHelp"=>"A price item", "sequence"=>2, "priceItem"=>"Bulldog American - 15 Step SPA Super Grooming Service", "value"=>105.0, "taxID"=>256, "durationPerUnit"=>75.0, "serviceBadge"=>nil, "serviceCategory"=>"15 Step Spa", "isOnline"=>true, "isActive"=>true },
@@ -189,7 +189,7 @@ module Vng
189
189
  { "priceItemID"=>275307, "priceBlockID"=>332, "descriptionHelp"=>"A price item", "sequence"=>10, "priceItem"=>"Aches & Pains Package", "value"=>0.0, "taxID"=>256, "durationPerUnit"=>60.0, "serviceBadge"=>"Offered", "serviceCategory"=>"Add Ons", "isOnline"=>true, "isActive"=>true },
190
190
  { "priceItemID"=>275308, "priceBlockID"=>332, "descriptionHelp"=>"A price item", "sequence"=>11, "priceItem"=>"Old Add On", "value"=>0.0, "taxID"=>256, "durationPerUnit"=>60.0, "serviceBadge"=>"Not Offered", "serviceCategory"=>"Add Ons", "isOnline"=>true, "isActive"=>true },
191
191
  ] }
192
- elsif @body[:assetID].eql? "2201009"
192
+ elsif @body[:assetID].eql? 2201009
193
193
  { "PriceItems"=>[
194
194
  { "priceItemID"=>276111, "priceBlockID"=>333, "descriptionHelp"=>"A price item", "sequence"=>21, "priceItem"=>"Cat Short Hair - 15 Step SPA Grooming Service", "value"=>65.0, "taxID"=>256, "durationPerUnit"=>60.0, "serviceBadge"=>"Recommended", "serviceCategory"=>"15 Step Spa", "isOnline"=>true, "isActive"=>true },
195
195
 
@@ -5,42 +5,13 @@ module Vng
5
5
  class ServiceType < Resource
6
6
  PATH = '/api/v1/resources/serviceTypes/'
7
7
 
8
- attr_reader :id, :type, :duration
8
+ attr_reader :id, :type, :duration, :price_list_id
9
9
 
10
- def initialize(id:, type:, duration:)
10
+ def initialize(id:, type:, duration:, price_list_id:)
11
11
  @id = id
12
12
  @type = type
13
13
  @duration = duration
14
- end
15
-
16
- def self.all
17
- data = request path: PATH
18
-
19
- data['ServiceTypes'].map do |body|
20
- id = body['serviceTypeID']
21
- type = body['serviceType']
22
- duration = body['duration']
23
-
24
- new id: id, type: type, duration: duration
25
- end
26
- end
27
-
28
- def self.where(zip:)
29
- body = {
30
- zip: zip,
31
- }
32
-
33
- data = request path: PATH, body: body
34
-
35
- data.fetch('ServiceTypes', []).filter do |body|
36
- body['isActive']
37
- end.map do |body|
38
- id = body['serviceTypeID']
39
- type = body['serviceType']
40
- duration = body['duration']
41
-
42
- new id: id, type: type, duration: duration
43
- end
14
+ @price_list_id = price_list_id
44
15
  end
45
16
  end
46
17
  end
data/lib/vng/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vng
2
- VERSION = '1.7.0'
2
+ VERSION = '2.0.1'
3
3
  end
data/lib/vng/zip.rb CHANGED
@@ -20,6 +20,7 @@ module Vng
20
20
  data = request path: PATH
21
21
 
22
22
  data['Zips'].reject do |franchise|
23
+ # TODO: add "Owned - Not In Service"
23
24
  franchise['zipStatus'].eql? 'Owned – Deactivated'
24
25
  end.map do |body|
25
26
  zip = body['zip']
@@ -39,12 +40,15 @@ module Vng
39
40
  data = request path: PATH, body: body
40
41
  zip_data = data['Zip']
41
42
 
43
+ # TODO: Remove ServiceType class, store duration and price_list_id
44
+ # inside Zip itself
42
45
  unless zip_data['zipCodeID'] == '0'
43
46
  service_types = data['ServiceTypes'].map do |body|
44
47
  id = body['serviceTypeID']
45
48
  type = body['serviceType']
46
49
  duration = body['duration']
47
- ServiceType.new id: id, type: type, duration: duration
50
+ price_list_id = body['priceID']
51
+ ServiceType.new id: id, type: type, duration: duration, price_list_id: price_list_id
48
52
  end
49
53
 
50
54
  new zip: zip_data['zipCode'], state: zip_data['provinceAbbr'], zone_name: zip_data['zoneName'], city: zip_data['defaultCity'], service_types: service_types
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vng
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - claudiob
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-26 00:00:00.000000000 Z
11
+ date: 2024-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simplecov