tophatter-merchant 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -0
- data/Gemfile +1 -0
- data/README.md +2 -2
- data/VERSION +1 -1
- data/bin/console +1 -1
- data/lib/tophatter_merchant/metadata.rb +18 -16
- data/lib/tophatter_merchant/order.rb +4 -4
- data/lib/tophatter_merchant/product.rb +18 -17
- data/lib/tophatter_merchant/resource.rb +7 -3
- data/lib/tophatter_merchant/variation.rb +3 -1
- data/lib/tophatter_merchant/version.rb +1 -1
- data/lib/tophatter_merchant.rb +1 -4
- data/spec/cassettes/TophatterMerchant_Metadata/_brands/returns_brands.yml +161 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_carriers/returns_carriers.yml +81 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_categories/returns_categories.yml +97 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_colors/returns_colors.yml +67 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_conditions/returns_conditions.yml +67 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_countries/returns_countries.yml +101 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_country_codes/returns_country_codes.yml +119 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_materials/returns_materials.yml +82 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_metadata/returns_metadata.yml +319 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_provinces/returns_provinces.yml +69 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_sizes/returns_sizes.yml +75 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_states/returns_states.yml +78 -0
- data/spec/cassettes/TophatterMerchant_Metadata/_territories/returns_territories.yml +68 -0
- data/spec/cassettes/TophatterMerchant_Order/_all/returns_all_orders.yml +56 -0
- data/spec/cassettes/TophatterMerchant_Order/_fulfill/fulfills_an_order.yml +53 -0
- data/spec/cassettes/TophatterMerchant_Order/_refund/refunds_an_order.yml +53 -0
- data/spec/cassettes/TophatterMerchant_Order/_retrieve/retrieves_an_order.yml +53 -0
- data/spec/cassettes/TophatterMerchant_Order/_schema/returns_the_schema.yml +81 -0
- data/spec/cassettes/TophatterMerchant_Product/_all/returns_all_products.yml +64 -0
- data/spec/cassettes/TophatterMerchant_Product/_create/creates_a_product.yml +53 -0
- data/spec/cassettes/TophatterMerchant_Product/_delete/deletes_a_product.yml +103 -0
- data/spec/cassettes/TophatterMerchant_Product/_disable/disables_a_product.yml +103 -0
- data/spec/cassettes/TophatterMerchant_Product/_enable/enables_a_product.yml +103 -0
- data/spec/cassettes/TophatterMerchant_Product/_retrieve/retrieves_a_product.yml +53 -0
- data/spec/cassettes/TophatterMerchant_Product/_schema/returns_the_schema.yml +124 -0
- data/spec/cassettes/TophatterMerchant_Product/_search/returns_products_matching_search_terms.yml +57 -0
- data/spec/cassettes/TophatterMerchant_Product/_update/updates_a_product.yml +103 -0
- data/spec/cassettes/TophatterMerchant_Variation/_create/creates_a_variation.yml +50 -0
- data/spec/cassettes/TophatterMerchant_Variation/_retrieve/retrieves_a_variation.yml +50 -0
- data/spec/cassettes/TophatterMerchant_Variation/_schema/returns_the_schema.yml +61 -0
- data/spec/cassettes/TophatterMerchant_Variation/_update/updates_a_variation.yml +97 -0
- data/spec/spec_helper.rb +6 -18
- data/spec/tophatter_merchant/metadata_spec.rb +111 -30
- data/spec/tophatter_merchant/order_spec.rb +55 -0
- data/spec/tophatter_merchant/product_spec.rb +102 -3
- data/spec/tophatter_merchant/variation_spec.rb +47 -0
- metadata +68 -10
- data/CHANGELOG +0 -3
- data/lib/tophatter_merchant/account.rb +0 -47
- data/lib/tophatter_merchant/api_key.rb +0 -42
- data/lib/tophatter_merchant/exceptions.rb +0 -8
- data/lib/tophatter_merchant/image.rb +0 -21
- data/tmp/stubs/metadata/conditions.json +0 -12
- data/tmp/stubs/metadata/gemstones.json +0 -12
- data/tmp/stubs/metadata.json +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68355cabcacea8767d8d9fba36509a52d6f3964a
|
4
|
+
data.tar.gz: 86cd0ca79cad91737c43a68a8e462884dedaeca0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0de67c7d954e5e71335ea538057a1da48b026f1f8c3c1924995e2504d478625e720ec1304172bc93928607609859bb11949a15e78312efe83ddc0d1ddd98cbfd
|
7
|
+
data.tar.gz: a6d4a43abcf06a48a61dc62ff54977fff1e8d7d441cd653bfa7fdfeec514e786d5e7efbcbd77d77d4cbc2d98055f7824651a9810ba751611a2d3d71b7aed0141
|
data/.rubocop.yml
CHANGED
@@ -5,6 +5,8 @@ AllCops:
|
|
5
5
|
|
6
6
|
Metrics/LineLength:
|
7
7
|
Enabled: false
|
8
|
+
Metrics/BlockLength:
|
9
|
+
Enabled: false
|
8
10
|
Metrics/MethodLength:
|
9
11
|
Enabled: false
|
10
12
|
Metrics/ParameterLists:
|
@@ -30,3 +32,6 @@ Style/ElseAlignment:
|
|
30
32
|
# http://www.rubydoc.info/github/bbatsov/rubocop/Rubocop/Cop/Style/IndentationWidth
|
31
33
|
Style/IndentationWidth:
|
32
34
|
Enabled: false
|
35
|
+
# https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics
|
36
|
+
Style/NumericLiterals:
|
37
|
+
Enabled: false
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,8 +8,8 @@ gem 'tophatter-merchant', require: 'tophatter_merchant'
|
|
8
8
|
|
9
9
|
### Console Testing (Development)
|
10
10
|
```bash
|
11
|
-
echo http://tophatter.dev/merchant_api/v1 > .
|
12
|
-
echo
|
11
|
+
echo http://tophatter.dev/merchant_api/v1 > .api_path
|
12
|
+
echo 293da6763df7cb3b894a1831addcb52d > .access_token
|
13
13
|
bin/console
|
14
14
|
```
|
15
15
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.4
|
data/bin/console
CHANGED
@@ -6,14 +6,24 @@ module TophatterMerchant
|
|
6
6
|
get(url: "#{path}.json")
|
7
7
|
end
|
8
8
|
|
9
|
+
# ap TophatterMerchant::Metadata.categories
|
10
|
+
def categories
|
11
|
+
get(url: "#{path}/categories.json")
|
12
|
+
end
|
13
|
+
|
9
14
|
# ap TophatterMerchant::Metadata.conditions
|
10
15
|
def conditions
|
11
16
|
get(url: "#{path}/conditions.json")
|
12
17
|
end
|
13
18
|
|
14
|
-
# ap TophatterMerchant::Metadata.
|
15
|
-
def
|
16
|
-
get(url: "#{path}/
|
19
|
+
# ap TophatterMerchant::Metadata.brands
|
20
|
+
def brands
|
21
|
+
get(url: "#{path}/brands.json")
|
22
|
+
end
|
23
|
+
|
24
|
+
# ap TophatterMerchant::Metadata.materials
|
25
|
+
def materials
|
26
|
+
get(url: "#{path}/materials.json")
|
17
27
|
end
|
18
28
|
|
19
29
|
# ap TophatterMerchant::Metadata.sizes
|
@@ -21,6 +31,11 @@ module TophatterMerchant
|
|
21
31
|
get(url: "#{path}/sizes.json")
|
22
32
|
end
|
23
33
|
|
34
|
+
# ap TophatterMerchant::Metadata.colors
|
35
|
+
def colors
|
36
|
+
get(url: "#{path}/colors.json")
|
37
|
+
end
|
38
|
+
|
24
39
|
# ap TophatterMerchant::Metadata.countries
|
25
40
|
def countries
|
26
41
|
get(url: "#{path}/countries.json")
|
@@ -51,19 +66,6 @@ module TophatterMerchant
|
|
51
66
|
get(url: "#{path}/carriers.json")
|
52
67
|
end
|
53
68
|
|
54
|
-
# ap TophatterMerchant::Metadata.brands
|
55
|
-
def brands
|
56
|
-
get(url: "#{path}/brands.json")
|
57
|
-
end
|
58
|
-
|
59
|
-
def materials
|
60
|
-
get(url: "#{path}/materials.json")
|
61
|
-
end
|
62
|
-
|
63
|
-
def gemstones
|
64
|
-
get(url: "#{path}/gemstones.json")
|
65
|
-
end
|
66
|
-
|
67
69
|
protected
|
68
70
|
|
69
71
|
def path
|
@@ -9,6 +9,10 @@ module TophatterMerchant
|
|
9
9
|
:disbursement_amount, :seller_fees_amount, :seller_fees,
|
10
10
|
:paid_at, :created_at
|
11
11
|
|
12
|
+
def id
|
13
|
+
created_at.present? ? identifier : nil
|
14
|
+
end
|
15
|
+
|
12
16
|
class << self
|
13
17
|
# ap TophatterMerchant::Order.schema
|
14
18
|
def schema
|
@@ -34,10 +38,6 @@ module TophatterMerchant
|
|
34
38
|
Order.new post(url: "#{path}/fulfill.json", params: { order_id: id, carrier: carrier, tracking_number: tracking_number })
|
35
39
|
end
|
36
40
|
|
37
|
-
def unfulfill(id)
|
38
|
-
post(url: "#{path}/#{id}/unfulfill.json")
|
39
|
-
end
|
40
|
-
|
41
41
|
# ap TophatterMerchant::Order.refund(417953232, type: 'full', reason: 'delay_in_shipping').to_h
|
42
42
|
# ap TophatterMerchant::Order.refund(417953232, type: 'partial', reason: 'other', fees: ['shipping_fee']).to_h
|
43
43
|
def refund(id, type:, reason:, fees: [])
|
@@ -4,13 +4,17 @@ module TophatterMerchant
|
|
4
4
|
:category, :title, :description, # Basics
|
5
5
|
:condition, :brand, :material, # Facets
|
6
6
|
:available_quantity, :variations, # Variations
|
7
|
-
:starting_bid, :buy_now_price, :retail_price, :cost_basis,
|
8
|
-
:shipping_origin, :
|
7
|
+
:starting_bid, :buy_now_price, :retail_price, :cost_basis, # Pricing
|
8
|
+
:shipping_origin, :days_to_fulfill, :weight, # Shipping
|
9
|
+
:shipping_price, :days_to_deliver,
|
10
|
+
:expedited_shipping_price, :expedited_days_to_deliver,
|
9
11
|
:buy_one_get_one_price, :accessory_price, :accessory_description, # Upsells
|
10
12
|
:primary_image, :extra_images, :all_images, # Images
|
11
|
-
:
|
13
|
+
:ratings_average, :ratings_count, # Ratings
|
12
14
|
:created_at, :updated_at, :disabled_at, :deleted_at, # Timestamps
|
13
|
-
:
|
15
|
+
:success_fee_bid, :minimum_alerts_needed, # Undocumented
|
16
|
+
:blacklisted_at, :admin_hold_at,
|
17
|
+
:slug, :internal_id
|
14
18
|
|
15
19
|
def id
|
16
20
|
created_at.present? ? identifier : nil
|
@@ -47,21 +51,21 @@ module TophatterMerchant
|
|
47
51
|
get(url: "#{path}/schema.json")
|
48
52
|
end
|
49
53
|
|
50
|
-
|
51
|
-
|
54
|
+
# ap TophatterMerchant::Product.all.map(&:to_h)
|
55
|
+
def all(status: nil, category: nil, page: 1, per_page: 50, pagination: nil, sort: nil)
|
56
|
+
result = get(url: "#{path}.json", params: { status: status, category: category, page: page, per_page: per_page, pagination: pagination, sort: sort })
|
52
57
|
|
53
58
|
if pagination.present?
|
54
59
|
result['results'] = result['results'].map { |hash| Product.new(hash) }
|
55
60
|
else
|
56
|
-
result.map { |hash| Product.new(hash) }
|
61
|
+
result = result.map { |hash| Product.new(hash) }
|
57
62
|
end
|
58
63
|
|
59
64
|
result
|
60
65
|
end
|
61
66
|
|
62
|
-
|
63
|
-
|
64
|
-
result = get(url: "#{path}.json", params: { status: status, category: category, page: page, per_page: per_page, pagination: pagination, sort: sort })
|
67
|
+
def search(query:, page: 1, per_page: 50, pagination: nil)
|
68
|
+
result = get(url: "#{path}/search.json", params: { query: query, page: page, per_page: per_page, pagination: pagination })
|
65
69
|
|
66
70
|
if pagination.present?
|
67
71
|
result['results'] = result['results'].map { |hash| Product.new(hash) }
|
@@ -86,11 +90,6 @@ module TophatterMerchant
|
|
86
90
|
Product.new post(url: "#{path}/update.json", params: data.merge(identifier: id))
|
87
91
|
end
|
88
92
|
|
89
|
-
# ap TophatterMerchant::Product.delete('FOOBAR').to_h
|
90
|
-
def delete(id)
|
91
|
-
Product.new post(url: "#{path}/delete.json", params: { identifier: id })
|
92
|
-
end
|
93
|
-
|
94
93
|
# ap TophatterMerchant::Product.disable('FOOBAR').to_h
|
95
94
|
def disable(id)
|
96
95
|
Product.new post(url: "#{path}/disable.json", params: { identifier: id })
|
@@ -101,8 +100,10 @@ module TophatterMerchant
|
|
101
100
|
Product.new post(url: "#{path}/enable.json", params: { identifier: id })
|
102
101
|
end
|
103
102
|
|
104
|
-
|
105
|
-
|
103
|
+
# ap TophatterMerchant::Product.delete('FOOBAR').to_h
|
104
|
+
# NOT DOCUMENTED
|
105
|
+
def delete(id)
|
106
|
+
Product.new post(url: "#{path}/delete.json", params: { identifier: id })
|
106
107
|
end
|
107
108
|
|
108
109
|
protected
|
@@ -1,6 +1,11 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
1
|
module TophatterMerchant
|
2
|
+
class BaseException < StandardError; end
|
3
|
+
class BadContentTypeException < BaseException; end
|
4
|
+
class UnauthorizedException < BaseException; end
|
5
|
+
class BadRequestException < BaseException; end
|
6
|
+
class NotFoundException < BaseException; end
|
7
|
+
class ServerErrorException < BaseException; end
|
8
|
+
|
4
9
|
class Resource
|
5
10
|
include ActiveModel::Model
|
6
11
|
|
@@ -33,7 +38,6 @@ module TophatterMerchant
|
|
33
38
|
|
34
39
|
class << self
|
35
40
|
def attr_accessor(*vars)
|
36
|
-
# TophatterMerchant.logger.debug "#{name}: #{vars.inspect} (attr_accessor)"
|
37
41
|
@attributes ||= {}
|
38
42
|
vars.each { |var| @attributes[var.to_s] = true }
|
39
43
|
super(*vars)
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module TophatterMerchant
|
2
2
|
class Variation < Resource
|
3
|
-
attr_accessor :
|
3
|
+
attr_accessor :product_identifier, :identifier,
|
4
|
+
:size, :color, :quantity,
|
5
|
+
:created_at, :disabled_at, :deleted_at
|
4
6
|
|
5
7
|
def id
|
6
8
|
created_at.present? ? identifier : nil
|
data/lib/tophatter_merchant.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'active_model'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
module TophatterMerchant
|
4
5
|
class << self
|
@@ -20,13 +21,9 @@ module TophatterMerchant
|
|
20
21
|
end
|
21
22
|
|
22
23
|
require File.dirname(__FILE__) + '/tophatter_merchant/version'
|
23
|
-
require File.dirname(__FILE__) + '/tophatter_merchant/exceptions'
|
24
24
|
|
25
25
|
# Resources:
|
26
26
|
require File.dirname(__FILE__) + '/tophatter_merchant/resource'
|
27
|
-
require File.dirname(__FILE__) + '/tophatter_merchant/account'
|
28
|
-
require File.dirname(__FILE__) + '/tophatter_merchant/api_key'
|
29
|
-
require File.dirname(__FILE__) + '/tophatter_merchant/image'
|
30
27
|
require File.dirname(__FILE__) + '/tophatter_merchant/metadata'
|
31
28
|
require File.dirname(__FILE__) + '/tophatter_merchant/order'
|
32
29
|
require File.dirname(__FILE__) + '/tophatter_merchant/product'
|
@@ -0,0 +1,161 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://tophatter.com/merchant_api/v1/metadata/brands.json
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Length:
|
15
|
+
- '0'
|
16
|
+
Content-Type:
|
17
|
+
- application/x-www-form-urlencoded
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Cache-Control:
|
26
|
+
- max-age=0, private, must-revalidate
|
27
|
+
Content-Encoding:
|
28
|
+
- gzip
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Date:
|
32
|
+
- Sat, 25 Mar 2017 22:19:52 GMT
|
33
|
+
Etag:
|
34
|
+
- W/"802f97f94d2f051ca825fcf6c399acb5"
|
35
|
+
Server:
|
36
|
+
- nginx + Phusion Passenger
|
37
|
+
Status:
|
38
|
+
- 200 OK
|
39
|
+
Vary:
|
40
|
+
- Accept-Encoding
|
41
|
+
X-Content-Type-Options:
|
42
|
+
- nosniff
|
43
|
+
X-Frame-Options:
|
44
|
+
- SAMEORIGIN
|
45
|
+
X-Powered-By:
|
46
|
+
- Phusion Passenger Enterprise
|
47
|
+
X-Request-Id:
|
48
|
+
- d7977e10-155b-4e34-80f5-1c1a70b429c1
|
49
|
+
X-Request-Start:
|
50
|
+
- t=1490480392.698
|
51
|
+
X-Runtime:
|
52
|
+
- '0.013937'
|
53
|
+
X-Xss-Protection:
|
54
|
+
- 1; mode=block
|
55
|
+
Transfer-Encoding:
|
56
|
+
- chunked
|
57
|
+
Connection:
|
58
|
+
- keep-alive
|
59
|
+
body:
|
60
|
+
encoding: ASCII-8BIT
|
61
|
+
string: !binary |-
|
62
|
+
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
|
159
|
+
http_version:
|
160
|
+
recorded_at: Sat, 25 Mar 2017 22:19:52 GMT
|
161
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,81 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://tophatter.com/merchant_api/v1/metadata/carriers.json
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Length:
|
15
|
+
- '0'
|
16
|
+
Content-Type:
|
17
|
+
- application/x-www-form-urlencoded
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Cache-Control:
|
26
|
+
- max-age=0, private, must-revalidate
|
27
|
+
Content-Encoding:
|
28
|
+
- gzip
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Date:
|
32
|
+
- Sat, 25 Mar 2017 22:19:56 GMT
|
33
|
+
Etag:
|
34
|
+
- W/"df1934e98e60bb6c3169b8b7cb76b2df"
|
35
|
+
Server:
|
36
|
+
- nginx + Phusion Passenger
|
37
|
+
Status:
|
38
|
+
- 200 OK
|
39
|
+
Vary:
|
40
|
+
- Accept-Encoding
|
41
|
+
X-Content-Type-Options:
|
42
|
+
- nosniff
|
43
|
+
X-Frame-Options:
|
44
|
+
- SAMEORIGIN
|
45
|
+
X-Powered-By:
|
46
|
+
- Phusion Passenger Enterprise
|
47
|
+
X-Request-Id:
|
48
|
+
- a40e6f97-3022-4992-8125-4d31ca008ab5
|
49
|
+
X-Request-Start:
|
50
|
+
- t=1490480396.593
|
51
|
+
X-Runtime:
|
52
|
+
- '0.031435'
|
53
|
+
X-Xss-Protection:
|
54
|
+
- 1; mode=block
|
55
|
+
Transfer-Encoding:
|
56
|
+
- chunked
|
57
|
+
Connection:
|
58
|
+
- keep-alive
|
59
|
+
body:
|
60
|
+
encoding: ASCII-8BIT
|
61
|
+
string: !binary |-
|
62
|
+
H4sIAAAAAAAAA2xUQW7bMBD8iqCzmQJFTr05iZK4iVMjtoumt7W0thhLpEBK
|
63
|
+
cdSij+kT+oYi/+ouRdJq3YuwO7Mkl7Mjfk/Xy8Uy/ZB2trHpJL3GInuldIsF
|
64
|
+
vlJ+CQoKSBbatoTmLhMNZ5N0PSx06yhO5iCrZKaUfoFWamUHUtSS+Kvbe0qL
|
65
|
+
shriBC91XaPJcUDFrtIbqERNW1DFJ7UykBOlVcsB9VFKBUk25xNzjgXWNuKh
|
66
|
+
PUf47p5AHVAR2g/BJJ2pQsZayUmonVp03Ho5Td4lXhEYQNFZGJfcjak9MeeL
|
67
|
+
LwSdNyzXrVa75I4//piSYrHnjz+KLx+r/OVL3uYjNKDCsmdOwpIVyMORal0W
|
68
|
+
uKVUO2i0wUDbAISKC6x2sqsDvxn1ceNEH+Y2tRJOZyGA4UmazWm+2Wtj0PJY
|
69
|
+
sW4s+myS3qCpfX9JnLPYObRnnvbDnbStzC35Iz+jit0Io5LHztJB8Y5mSMMV
|
70
|
+
5lBBb/3s2AQ0JAoreO6ouPZslKukxkEVCQdRNQ+Gos8SWwVRlRfl8UuoN3pk
|
71
|
+
k9znYd0DtiUa3smGEmZUJaRq0SjnfGAPrzqzxz4Wta3bgsV86tRIy75T/5WS
|
72
|
+
ZcSutXkZzp4ZacvAHdVZ7w1IFQ3Q7Q0RpTvpnoxqbCkbwqsYT9I78ke84p4T
|
73
|
+
cWqLa20OYAoZbep9sT3idPjFLLnXYbjTztL/WjkndRspKn0cceTiDQIQzn7U
|
74
|
+
vXcjW4CT8B486QKr5ErXyLuxaAxEYvaX9J49Gcjy7PpspLvdiqPuxJ3sYreb
|
75
|
+
9/z0rB5WbCDFLWbri3/fmVsaGdqDNlXB/7vLCK77gaDXhD3aD8TwYnjmxv8h
|
76
|
+
YZUokGdGzuxeNNkL3n62wK1WHhINWEbIptoYpJoCk8w28PsXK06BVCIfKOG6
|
77
|
+
uFpk/DgVjXvMlwdpo20tJ0dbH5KvCO638bzCg/g2QEPVjz8AAAD//wMAmQDZ
|
78
|
+
PywGAAA=
|
79
|
+
http_version:
|
80
|
+
recorded_at: Sat, 25 Mar 2017 22:19:55 GMT
|
81
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,97 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://tophatter.com/merchant_api/v1/metadata/categories.json
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Length:
|
15
|
+
- '0'
|
16
|
+
Content-Type:
|
17
|
+
- application/x-www-form-urlencoded
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Cache-Control:
|
26
|
+
- max-age=0, private, must-revalidate
|
27
|
+
Content-Encoding:
|
28
|
+
- gzip
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Date:
|
32
|
+
- Sat, 25 Mar 2017 22:19:51 GMT
|
33
|
+
Etag:
|
34
|
+
- W/"1fc46ae442e0793ca4f38061b1ba908a"
|
35
|
+
Server:
|
36
|
+
- nginx + Phusion Passenger
|
37
|
+
Status:
|
38
|
+
- 200 OK
|
39
|
+
Vary:
|
40
|
+
- Accept-Encoding
|
41
|
+
X-Content-Type-Options:
|
42
|
+
- nosniff
|
43
|
+
X-Frame-Options:
|
44
|
+
- SAMEORIGIN
|
45
|
+
X-Powered-By:
|
46
|
+
- Phusion Passenger Enterprise
|
47
|
+
X-Request-Id:
|
48
|
+
- 0c66d582-5e55-4f14-b839-1f9cad59c673
|
49
|
+
X-Request-Start:
|
50
|
+
- t=1490480391.785
|
51
|
+
X-Runtime:
|
52
|
+
- '0.013347'
|
53
|
+
X-Xss-Protection:
|
54
|
+
- 1; mode=block
|
55
|
+
Transfer-Encoding:
|
56
|
+
- chunked
|
57
|
+
Connection:
|
58
|
+
- keep-alive
|
59
|
+
body:
|
60
|
+
encoding: ASCII-8BIT
|
61
|
+
string: !binary |-
|
62
|
+
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
|
94
|
+
AEjeaFaTGQAA
|
95
|
+
http_version:
|
96
|
+
recorded_at: Sat, 25 Mar 2017 22:19:51 GMT
|
97
|
+
recorded_with: VCR 3.0.3
|