Sha256: ede57f02e95eebfa9f4b50892ed01a01bae85926aac022e4773ad7bcb568772c
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 KB
Contents
module Vng # Provides methods to interact with Vonigo price items. class PriceItem attr_reader :id, :price_item, :value, :tax_id, :duration_per_unit, :service_badge, :service_category def initialize(id:, price_item:, value:, tax_id:, duration_per_unit:, service_badge:, service_category:) @id = id @price_item = price_item @value = value @tax_id = tax_id @duration_per_unit = duration_per_unit @service_badge = service_badge @service_category = service_category end def self.where(location_id:, asset_id:) body = { securityToken: Vng.configuration.security_token, method: '2', serviceTypeID: '14', # only return items of serviceType 'Pet Grooming' locationID: location_id, assetID: asset_id, } uri = URI::HTTPS.build host: 'aussiepetmobileusatraining2.vonigo.com', path: '/api/v1/data/priceLists/' 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)['PriceItems'].filter do |body| # TODO: body['serviceBadge'] != 'Not Offered' body['isOnline'] && body['isActive'] end.map do |body| id = body['priceItemID'] price_item = body['priceItem'] value = body['value'] tax_id = body['taxID'] duration_per_unit = body['durationPerUnit'] service_badge = body['serviceBadge'] service_category = body['serviceCategory'] new id: id, price_item: price_item, value: value, tax_id: tax_id, duration_per_unit: duration_per_unit, service_badge: service_badge, service_category: service_category end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vng-0.1.13 | lib/vng/price_item.rb |