RDC 0.1.2 → 0.1.7

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: d6c902ed5c633045a9501d5f7578705f1d67a5975ced6f66c231bd631f57c153
4
- data.tar.gz: 30f3ba68d806b9a8ee0f996c0c78354ab65699d2a03d92cee77864e1635fae08
3
+ metadata.gz: 93422b9776481f697c024ae1eaf7d849a8bc6339b7616e37739c67dd6c3bed09
4
+ data.tar.gz: b541177f2dc1cfbd2d121c9c6a5929972b8278a20b4d3dc84ec6be9d7edc4465
5
5
  SHA512:
6
- metadata.gz: b0cc47b940d8b7913703296d5ad912f639beb19c53451c3d781d45a5d9e54f140d981ad468c4b8de0178d369791903afd5310db13b4d01be561930f2c325395f
7
- data.tar.gz: 36d2711b5c4ffc591fff418a42f0df3a01f5500cbae41809f931a96efd03e688800f0330feda2102237e998133ec33ff6414f0c4ea1969b6aa3a5d005631060a
6
+ metadata.gz: c6b1cd69f4e0e816a5011f04a15abb7af5181e3eac6b35d9ad0ec48f0b53dcb1258f9c6f8d2b8c68b7302cb23419d0182f6ae7132e38ce95f44dbd4c5f5c27a0
7
+ data.tar.gz: ab7733b1fae56ff73a60841858493f8208ce234df6ed071882054e14cedfa84e6c235ddcabc05df95132aa8391f75bd2a12c111d8c7de93a6d5bf65ac0190ba9
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- RDC (0.1.0)
5
- activesupport (= 5.2.3)
4
+ RDC (0.1.6)
5
+ activesupport
6
6
  net-sftp (= 3.0.0)
7
- rubyzip (= 2.3.0)
7
+ rubyzip
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -89,4 +89,4 @@ DEPENDENCIES
89
89
  webmock
90
90
 
91
91
  BUNDLED WITH
92
- 2.1.2
92
+ 2.1.4
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ['lib']
30
30
 
31
- spec.add_dependency 'activesupport', '5.2.3'
31
+ spec.add_dependency 'activesupport'
32
32
  spec.add_dependency 'net-sftp', '3.0.0'
33
33
  spec.add_dependency 'rubyzip'
34
34
  end
data/lib/RDC.rb CHANGED
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "RDC/version"
2
4
  require "RDC/catalog"
3
- require "RDC/restaurant_info"
5
+ require "RDC/order"
6
+ require "RDC/sku"
7
+ require "RDC/cart"
4
8
 
5
9
  module RDC
6
10
  class Error < StandardError; end
@@ -8,6 +12,7 @@ module RDC
8
12
  class << self
9
13
  attr_accessor :api_key, :environment
10
14
  attr_accessor :ftp_username, :ftp_password, :ftp_url
15
+ attr_accessor :prti
11
16
 
12
17
  def root
13
18
  File.dirname __dir__
@@ -5,9 +5,9 @@ require 'RDC/request'
5
5
  module RDC
6
6
  class Cart
7
7
  class << self
8
- def create(sku_id)
9
- request = Request.new("/validate_sku?sku=#{sku_id}")
10
- reponse = request.get
8
+ def create(params)
9
+ request = Request.new("/create_shopping_cart_id")
10
+ reponse = request.get(params)
11
11
  response.json
12
12
  end
13
13
  end
@@ -2,16 +2,18 @@
2
2
 
3
3
  module RDC
4
4
  class Item
5
- attr_accessor :sku, :legacy_sku, :value, :price, :restriction, :restriction_detail
5
+ attr_accessor :sku, :legacy_sku, :value, :price, :restriction, :restriction_detail,
6
+ :available_inventory, :item_contract_type
6
7
 
7
8
  def initialize(hash_values)
8
- puts "Hash Values :: #{hash_values}"
9
9
  @sku = hash_values['ProductSKU']
10
10
  @legacy_sku = hash_values['LegacyProductSKU']
11
11
  @value = hash_values['ItemValue']
12
12
  @price = hash_values['ItemPrice']
13
13
  @restriction = hash_values['ItemRestriction']
14
14
  @restriction_detail = hash_values['ItemRestrictionDetail']
15
+ @available_inventory = hash_values['ItemAvailableInventory']
16
+ @item_contract_type = hash_values['ItemContractType']
15
17
  end
16
18
  end
17
19
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'request'
4
+
5
+ module RDC
6
+ class Order
7
+ class << self
8
+ def process_order_body(params = {})
9
+ request = Request.new("/process_order_body")
10
+ response = request.post(params.merge(prti_params(params)))
11
+ response.json
12
+ end
13
+
14
+ private
15
+
16
+ def prti_params(params)
17
+ {
18
+ prti: RDC.prti,
19
+ partneradid: RDC.prti
20
+ }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -12,9 +12,9 @@ module RDC
12
12
 
13
13
  def base_url
14
14
  if RDC.environment == 'production'
15
- 'http://connect.restaurant.com/api'
15
+ 'http://connect.restaurant.com/api'.freeze
16
16
  else
17
- 'https://dev-connect.restaurant.com/api'
17
+ 'https://dev-connect.restaurant.com/api'.freeze
18
18
  end
19
19
  end
20
20
 
@@ -25,6 +25,13 @@ module RDC
25
25
  self
26
26
  end
27
27
 
28
+ def post(params = {})
29
+ self.response = HTTP.headers(headers)
30
+ .post(url, { json: params })
31
+ self.json = JSON.parse(response.body.to_s, symbolize_names: true)
32
+ self
33
+ end
34
+
28
35
  def url
29
36
  "#{base_url}#{path}"
30
37
  end
@@ -5,7 +5,9 @@ require_relative 'item'
5
5
  module RDC
6
6
  class Restaurant
7
7
  attr_accessor :name, :items, :short_description, :long_description,
8
- :online, :address, :image, :id
8
+ :online, :address, :image, :id, :communication_media,
9
+ :recommended_rank, :rating, :cuisines, :additional_attributes,
10
+ :secondary_image, :listing_image, :new_restaurant
9
11
 
10
12
  def initialize(hash_values)
11
13
  @id = hash_values['LegacyRestaurantId']
@@ -13,9 +15,17 @@ module RDC
13
15
  @short_description = hash_values['ShortDescription']
14
16
  @long_description = hash_values['LongDescription']
15
17
  @online = hash_values['OnlineReservation']
18
+ @recommended_rank = hash_values['RecommendedRank']
19
+ @rating = hash_values['Rating']
20
+ @cuisines = hash_values['Cuisine']
21
+ @additional_attributes = hash_values['Attributes']
16
22
 
17
23
  @address = hash_values['LocationAddress']
24
+ @communication_media = hash_values['CommunicationMedia']
18
25
  @image = hash_values.dig('CatalogImagesFullPath', 'MainLogo')
26
+ @secondary_image = hash_values.dig('CatalogImagesFullPath', 'MicrositeImage1')
27
+ @listing_image = hash_values.dig('CatalogImagesFullPath', 'ListingsImage')
28
+ @new_restaurant = hash_values.dig('Dates', 'NewRestaurantAdded') || false
19
29
  @items = Array.wrap(hash_values.dig('Items', 'Item')).collect { |item_hash| RDC::Item.new(item_hash) }
20
30
  end
21
31
  end
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'RDC/request'
3
+ require_relative 'request'
4
4
 
5
5
  module RDC
6
6
  class Sku
7
7
  class << self
8
8
  def validate(sku_id)
9
- request = Request.new("/validate_sku?sku=#{sku_id}")
10
- reponse = request.get
9
+ request = Request.new("/validate_sku/?sku=#{sku_id}")
10
+ response = request.get
11
11
  response.json
12
12
  end
13
13
 
14
14
  def verify_inventory_and_price(skus)
15
- request = Request.new("/verify_inventory_and_price?sku=#{skus}")
16
- reponse = request.get
15
+ request = Request.new("/verify_inventory_and_price/?sku=#{skus}")
16
+ response = request.get
17
17
  response.json
18
18
  end
19
19
  end
@@ -1,3 +1,3 @@
1
1
  module RDC
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: RDC
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - davidrichey
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-12-08 00:00:00.000000000 Z
12
+ date: 2021-01-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 5.2.3
20
+ version: '0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 5.2.3
27
+ version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: net-sftp
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +75,7 @@ files:
75
75
  - lib/RDC/cart.rb
76
76
  - lib/RDC/catalog.rb
77
77
  - lib/RDC/item.rb
78
+ - lib/RDC/order.rb
78
79
  - lib/RDC/request.rb
79
80
  - lib/RDC/restaurant.rb
80
81
  - lib/RDC/restaurant_info.rb
@@ -102,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  - !ruby/object:Gem::Version
103
104
  version: '0'
104
105
  requirements: []
105
- rubygems_version: 3.0.3
106
+ rubygems_version: 3.1.2
106
107
  signing_key:
107
108
  specification_version: 4
108
109
  summary: Ruby gem that wraps restaurants.com API