vng 1.7.0 → 2.0.1

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: 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