lib/vng/franchise.rb in vng-0.1.13 vs lib/vng/franchise.rb in vng-0.1.14
- old
+ new
@@ -1,8 +1,12 @@
+require 'vng/availability'
+
module Vng
# Provides methods to interact with Vonigo franchises.
- class Franchise
+ class Franchise < Resource
+ PATH = '/api/v1/resources/franchises/'
+
attr_reader :id, :name, :gmt_offset
def initialize(id:, name: nil, gmt_offset: nil)
@id = id
@name = name
@@ -10,49 +14,28 @@
end
def self.find_by(zip:)
body = {
- securityToken: Vng.configuration.security_token,
method: '1',
zip: zip,
}
- uri = URI::HTTPS.build host: 'aussiepetmobileusatraining2.vonigo.com', path: '/api/v1/resources/availability/'
+ data = request path: Vng::Availability::PATH, body: body
- request = Net::HTTP::Post.new(uri.request_uri)
- request.initialize_http_header 'Content-Type' => 'application/json'
- request.body = body.to_json
-
- response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
- http.request request
- end
-
- franchise_id = JSON(response.body)['Ids']['franchiseID']
+ franchise_id = data['Ids']['franchiseID']
new(id: franchise_id) unless franchise_id == '0'
end
def self.all
- body = {
- securityToken: Vng.configuration.security_token,
- }
+ data = request path: PATH
- uri = URI::HTTPS.build host: 'aussiepetmobileusatraining2.vonigo.com', path: '/api/v1/resources/franchises/'
-
- request = Net::HTTP::Post.new(uri.request_uri)
- request.initialize_http_header 'Content-Type' => 'application/json'
- request.body = body.to_json
-
- response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
- http.request request
- end
-
- JSON(response.body)['Franchises'].filter do |body|
- body['isActive']
- end.map do |body|
- id = body['franchiseID']
- name = body['franchiseName']
- gmt_offset = body['gmtOffsetFranchise']
+ data['Franchises'].filter do |franchise|
+ franchise['isActive']
+ end.map do |franchise|
+ id = franchise['franchiseID']
+ name = franchise['franchiseName']
+ gmt_offset = franchise['gmtOffsetFranchise']
new id: id, name: name, gmt_offset: gmt_offset
end
end
end