bluekai 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/lib/bluekai/category.rb +145 -0
- data/lib/bluekai/client.rb +20 -321
- data/lib/bluekai/rule.rb +165 -0
- data/lib/bluekai/user_data.rb +90 -0
- data/lib/bluekai/version.rb +1 -1
- data/lib/bluekai.rb +3 -0
- data/spec/fixtures/signatures/0e01a80ff1ca77f4fd32b58ff48310168539a9a26e4ef527042b7bab78d4648a +1 -0
- data/spec/fixtures/signatures/7fe2b3662915bf82890e1fe870480885e0744b12832569c5d7017a0fc42d5527 +1 -0
- data/spec/fixtures/signatures/8cd7ba76199d2b34be042841a2dd69310619dcac0f3dd4f24bae6b5fb5f9e302 +1 -0
- data/spec/fixtures/signatures/95768bffa5416007061da13a2a0368e52a4bea3451ac2dfede43f6a6841ac402 +1 -0
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Category}/creates_a_category.yml +10 -10
- data/spec/fixtures/vcr_cassettes/Bluekai_Category/lists_4_categories.yml +104 -0
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Category}/reads_a_category_and_its_reach.yml +1616 -1610
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Category}/updates_a_category.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/lists_Bluekai_taxonomy_nodes.yml +28225 -27370
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/performs_a_ping.yml +4 -4
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Rule}/creates_a_rule.yml +11 -11
- data/spec/fixtures/vcr_cassettes/Bluekai_Rule/lists_10_phint_rules.yml +234 -0
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Rule}/reads_a_rule.yml +12 -10
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Rule}/updates_a_rule.yml +7 -7
- data/spec/fixtures/vcr_cassettes/Bluekai_UserData/reads_user_information_given_bkuuid.yml +44 -0
- data/spec/lib/bluekai/category_integration_spec.rb +56 -0
- data/spec/lib/bluekai/client_integration_spec.rb +1 -141
- data/spec/lib/bluekai/client_spec.rb +0 -3
- data/spec/lib/bluekai/rule_integration_spec.rb +73 -0
- data/spec/lib/bluekai/user_data_integration_spec.rb +12 -0
- data/spec/spec_helper.rb +3 -2
- data/spec/support/signature_mock.rb +13 -0
- metadata +40 -19
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/lists_10_phint_rules.yml +0 -194
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/lists_4_categories.yml +0 -3569
data/lib/bluekai/rule.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
module Bluekai
|
2
|
+
class Rule < Client
|
3
|
+
####
|
4
|
+
#### Classification Rules
|
5
|
+
#### API definition can be found here
|
6
|
+
#### https://kb.bluekai.com/display/PD/Self-Classification+Rule+API
|
7
|
+
####
|
8
|
+
|
9
|
+
# Public: List the self-classification rules in your private
|
10
|
+
# taxonomy
|
11
|
+
#
|
12
|
+
# sort_by:string - Enter 'status', 'id', 'created_at', 'updated_at',
|
13
|
+
# or 'type' to sort the returned self-classification
|
14
|
+
# rules by the specified option.
|
15
|
+
#
|
16
|
+
# sorting_order:string - Enter 'asc' or 'desc' to list the returned
|
17
|
+
# self-classification rules in ascending or descending
|
18
|
+
# order based on the specified sort option.
|
19
|
+
#
|
20
|
+
# ids:integer - Returns the self-classification rule matching the specified
|
21
|
+
# rule ID, or returns all the self-classification rules matching
|
22
|
+
# the specified list of rule IDs. Syntax for passing multiple rule IDs:
|
23
|
+
# ruleId1&id=ruleId2 Example: 123&id=125
|
24
|
+
#
|
25
|
+
# type:enum - Enter 'phint' or 'url' to return only the phint or
|
26
|
+
# URL-based self-classification rules.
|
27
|
+
#
|
28
|
+
# site_ids:string - Returns all the self-classification rules under the
|
29
|
+
# specified site ID or list of site IDs. Syntax for
|
30
|
+
# passing multiple site IDs: site_id_1&site_ids=site_id_2
|
31
|
+
# Example: 1234&site_ids=1235
|
32
|
+
#
|
33
|
+
# category_ids:string - Returns all the self-classification rules used
|
34
|
+
# to map the specified catgeory ID or list of category IDs.
|
35
|
+
# Syntax for passing multiple category
|
36
|
+
# IDs: category_id_1&category_ids=category_id_2
|
37
|
+
# Example: 1234&category_ids=1235
|
38
|
+
#
|
39
|
+
# offset:integer - Specify the starting index from which to return the
|
40
|
+
# self-classification rules.
|
41
|
+
#
|
42
|
+
# size:integer - Specify the maximum number of rules to be included in
|
43
|
+
# the response. This filter requires the offset filter
|
44
|
+
# to be specified.
|
45
|
+
#
|
46
|
+
# created_date_range:string - Returns all the self-classification rules
|
47
|
+
# created within the specified list of dates.
|
48
|
+
# Syntax: YYYY-MM-DD&created_date_range=YYYY-MM-DD
|
49
|
+
# Example: 2014-01-01&created_date_range=2014-31-01
|
50
|
+
#
|
51
|
+
# updated_date_range:string - Returns all the self-classification rules updated
|
52
|
+
# within the specified list of dates.
|
53
|
+
# Syntax: YYYY-MM-DD&updated_date_range=YYYY-MM-DD
|
54
|
+
# Example: 2014-01-01&updated_date_range=2014-31-01
|
55
|
+
#
|
56
|
+
# status:string - Enter 'Active' or 'Creating' to return the
|
57
|
+
# self-classification rules based on the specified status referrer
|
58
|
+
# boolean Returns all URL-based self-classification rules that
|
59
|
+
# classify the site URL (False) or the referrer URL (True) in
|
60
|
+
# the collected URL.
|
61
|
+
#
|
62
|
+
# exact:boolean - Returns all URL-based self-classification rules that classify
|
63
|
+
# an exact URL (True) or a top-level URL (False) in the collected URL.
|
64
|
+
# Returns: hash of Bluekai rules
|
65
|
+
def rule_list(query)
|
66
|
+
request('GET', '/Services/WS/classificationRules', query)[:rules]
|
67
|
+
end
|
68
|
+
|
69
|
+
# Public: Reads a self-classification rule
|
70
|
+
#
|
71
|
+
# rule_id:integer - The unique ID assigned to the
|
72
|
+
# self-classification rule to be retrieved
|
73
|
+
#
|
74
|
+
# Returns: hash of Blukkai rule parameters
|
75
|
+
def rule_read(rule_id)
|
76
|
+
request('GET', "/Services/WS/classificationRules/#{rule_id}", {})
|
77
|
+
end
|
78
|
+
|
79
|
+
# Public: Creates a new self-classification rule
|
80
|
+
#
|
81
|
+
# name:string - Enter a string specifying the name of the self-classification rule.
|
82
|
+
#
|
83
|
+
# type:string - {'phint', 'url'} Specify the type of classification rule.
|
84
|
+
#
|
85
|
+
# phints:[{phint}] - If you are creating a phint-based rule,
|
86
|
+
# enter a list of your phint definitions.
|
87
|
+
# Each phint requires the following properties:
|
88
|
+
# key - The phint key operator - The criteria
|
89
|
+
# used for determining how the phint value
|
90
|
+
# is applied ('is' or 'contains')
|
91
|
+
# value - The full or partial phint value,
|
92
|
+
# depending on the specified operator.
|
93
|
+
#
|
94
|
+
# urls:[string(s)] - Provide a list of your URL definitions
|
95
|
+
# if you are creating for URL-based rules.
|
96
|
+
#
|
97
|
+
# referrer:string - {'True','False'} If you are creating a
|
98
|
+
# URL-based rule, specify whether the URL to
|
99
|
+
# be classified is the site URL (False) or
|
100
|
+
# the referrer URL (True).
|
101
|
+
#
|
102
|
+
# exact:string - {'True','False'} If you are creating a
|
103
|
+
# URL-based rule, specify whether the URL collected
|
104
|
+
# from your site must match the URL in your
|
105
|
+
# rule (True) or match a top-level URL (False) so
|
106
|
+
# that you can target users visiting the child pages
|
107
|
+
# without specifying them.
|
108
|
+
#
|
109
|
+
# partner_id:integer - Enter the unique ID assigned to your BlueKai DMP seat.
|
110
|
+
#
|
111
|
+
# site_ids (optional):[interger(s)] - Enter a list of containers/site IDs to which
|
112
|
+
# the self-classification rule applies. If
|
113
|
+
# you do not include this parameter, the
|
114
|
+
# rule is applicable to ALL the
|
115
|
+
# container/site IDs in your seat.
|
116
|
+
#
|
117
|
+
# category_ids:[integer(s)] - a list of category IDs to which
|
118
|
+
# the self-classification rule applies.
|
119
|
+
#
|
120
|
+
# JSON example for Phint-based self-classification rule
|
121
|
+
# {
|
122
|
+
# "name": "Phint Example",
|
123
|
+
# "type": "phint",
|
124
|
+
# "phints": [
|
125
|
+
# {
|
126
|
+
# "key": "x",
|
127
|
+
# "value": "123",
|
128
|
+
# "operator": "is"
|
129
|
+
# }
|
130
|
+
# ],
|
131
|
+
# "partner_id": 123,
|
132
|
+
# "site_ids": [1234],
|
133
|
+
# "category_ids": [12345]
|
134
|
+
# }
|
135
|
+
#
|
136
|
+
# JSON example for URL-based self-classiifcation rule
|
137
|
+
# {
|
138
|
+
# "name": "URL Example",
|
139
|
+
# "type": "url",
|
140
|
+
# "urls": ["http://shop.yoursite.com"],
|
141
|
+
# "referrer": false,
|
142
|
+
# "exact": false,
|
143
|
+
# "partner_id": 123,
|
144
|
+
# "site_ids": [1234],
|
145
|
+
# "category_ids": [123456]
|
146
|
+
# }
|
147
|
+
# Returns: hash of created self-classification rule
|
148
|
+
def rule_create(body)
|
149
|
+
body = { partner_id: @partner_id }.merge(body)
|
150
|
+
request('POST', '/Services/WS/classificationRules', {}, body)
|
151
|
+
end
|
152
|
+
|
153
|
+
# Public: Update a self-classification rule
|
154
|
+
#
|
155
|
+
# rule_id:integer (MANDATORY) - id of classification rule to be updated
|
156
|
+
#
|
157
|
+
# for other parameters refer to documentation of rule_create(body)
|
158
|
+
#
|
159
|
+
# Returns: hash of updated self-classification rule
|
160
|
+
def rule_update(rule_id, body)
|
161
|
+
body = { partner_id: @partner_id }.merge(body)
|
162
|
+
request('PUT', "/Services/WS/classificationRules/#{rule_id}", {}, body)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
module Bluekai
|
2
|
+
class UserData < Client
|
3
|
+
####
|
4
|
+
#### User Data
|
5
|
+
####
|
6
|
+
#### API definition can be found here
|
7
|
+
#### https://kb.bluekai.com/display/PD/User+Data+API
|
8
|
+
####
|
9
|
+
|
10
|
+
# Public: method to add attributes to a user's online profile,
|
11
|
+
# and to return the categories for which they qualified in one
|
12
|
+
# or more campaigns.
|
13
|
+
#
|
14
|
+
# siteid:integer - Enter the site ID associated with the
|
15
|
+
# BlueKai Container you deployed on your site. If you are sending data
|
16
|
+
# to BlueKai, the specified site ID must be included in the
|
17
|
+
# classification rules used to map your phints (user attributes)
|
18
|
+
# to categories in your taxonomy. If you are getting data, the
|
19
|
+
# specified site ID must be in the pixel URL of the campaign
|
20
|
+
# targeting the user.
|
21
|
+
#
|
22
|
+
# userid:string - Enter the encrypted BlueKai UUID (BKUUID) for the user. The BKUUID may
|
23
|
+
# be returned by the ID swap tag you deployed on your site.
|
24
|
+
#
|
25
|
+
# puserid:string - Enter your Partner-based UUID (PUUID) for the user.
|
26
|
+
#
|
27
|
+
# pfield:string - If you entered a puserid that was ID swapped with BlueKai via
|
28
|
+
# phints (for example, you used the BlueKai CoreTag to send the
|
29
|
+
# puserid to BlueKai), you must do the following in order to use it for
|
30
|
+
# sending and getting user data: 1. In the pfield parameter, enter the
|
31
|
+
# type of key (fieldname) associated with the puserid you are passing.
|
32
|
+
# The pfield is used to uniquely identify your puserid(s) in the
|
33
|
+
# BlueKai platform. 2. Contact your BlueKai Account Manager to
|
34
|
+
# enable your pfield in the BlueKai system.
|
35
|
+
#
|
36
|
+
# idfa:string - If you are sending or getting data on an iOS mobile app user, enter the
|
37
|
+
# Identifier for Advertising (IDFA) of the mobile iOS device.
|
38
|
+
# Note: The data you are sending or getting is linked exclusively to the
|
39
|
+
# IDFA, which operates in a primary ID space (the data is not linked to
|
40
|
+
# a BKUUID). You do not need to pass the userid or puserid when passing the
|
41
|
+
# idfa.If you pass both an idfa and a userid/puserid, the user will be
|
42
|
+
# looked up based on the userid/puserid.
|
43
|
+
#
|
44
|
+
# adid:string - If you are sending or getting data on an Android mobile app user,
|
45
|
+
# enter the Google Advertising ID of the mobile Android device. Note: The
|
46
|
+
# data you are sending or getting is linked exclusively to the AdID,
|
47
|
+
# which operates in a primary ID space (the data is not linked to a
|
48
|
+
# BKUUID). You do not need to pass the userid or puserid when
|
49
|
+
# passing the adid.If you pass both an adid and a userid/puserid,
|
50
|
+
# the user will be looked up based on the userid/puserid.
|
51
|
+
#
|
52
|
+
# useragent:string - If you are sending or getting data on a mobile user (via their
|
53
|
+
# BlueKai statistical ID), enter the user agent of the mobile device
|
54
|
+
# and the ipaddress.
|
55
|
+
#
|
56
|
+
# ipaddress:string - If you are sending or getting data on a mobile user (via their
|
57
|
+
# BlueKai statistical ID), enter the IP address of the user's
|
58
|
+
# mobile device and the useragent.
|
59
|
+
#
|
60
|
+
# create_profile:string - Enter 1 to create a new user profile in the BlueKai Profile
|
61
|
+
# Store, and add the categories specified in the phint field to it.
|
62
|
+
#
|
63
|
+
# phint:string - Enter a phint or a list of phints (key-value pairs that represent user
|
64
|
+
# attributes) to tag the user with. The maximum number of phints you
|
65
|
+
# can pass is restricted by the maximum size of the HTTP GET
|
66
|
+
# request, which is 2,048 bytes.
|
67
|
+
# Syntax for passing multiple phints: category1=value&phint=category2=value
|
68
|
+
# Example: v=123&phint=v=345
|
69
|
+
#
|
70
|
+
# filterbycampids:string - Enter a campaign ID or a comma-separated list of campaign IDs
|
71
|
+
# to filter the categories returned by the
|
72
|
+
# User Data API based on the campaigns that won the user.
|
73
|
+
#
|
74
|
+
# Syntax for passing multiple campaign IDs: campaignId1=value&filterbycampids=campaignId2=value
|
75
|
+
# Example: 44966&filterbycampids=41674
|
76
|
+
#
|
77
|
+
# target:integer - By default, this flag is set to 1, which means that the User Data
|
78
|
+
# API returns the categories that user has been tagged with. Enter 0
|
79
|
+
# to disable user targeting and not return any user categories.
|
80
|
+
def user_data(site_id, query)
|
81
|
+
request('GET', "/getdata/#{site_id}/v1.2", query, nil)
|
82
|
+
end
|
83
|
+
|
84
|
+
private
|
85
|
+
|
86
|
+
def domain
|
87
|
+
'http://api.tags.bluekai.com'
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
data/lib/bluekai/version.rb
CHANGED
data/lib/bluekai.rb
CHANGED
data/spec/fixtures/signatures/0e01a80ff1ca77f4fd32b58ff48310168539a9a26e4ef527042b7bab78d4648a
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
6yKY4ELmcOD1mWIoiTNkfeNKtA6P6UlUH0tnW2DuYvk%3D
|
data/spec/fixtures/signatures/7fe2b3662915bf82890e1fe870480885e0744b12832569c5d7017a0fc42d5527
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1CzTegZKodeBp5tYeJoYsPvFcd75MOWRz5SV%2FZrVB1w%3D
|
data/spec/fixtures/signatures/8cd7ba76199d2b34be042841a2dd69310619dcac0f3dd4f24bae6b5fb5f9e302
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
%2FOMmOpBsb88KpnipB5og6HaMrTjXEjNPDYuwLoTEgT0%3D
|
data/spec/fixtures/signatures/95768bffa5416007061da13a2a0368e52a4bea3451ac2dfede43f6a6841ac402
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
PcRmnygfAQ2726R%2BkEJekFp5rmBboLgbhbcxrq3iCfQ%3D
|
@@ -2,11 +2,11 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://bluekai
|
5
|
+
uri: https://services.bluekai.com/Services/WS/classificationCategories?bksig=1CzTegZKodeBp5tYeJoYsPvFcd75MOWRz5SV/ZrVB1w=&bkuid=bluekai-api-user-key
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"analytics_excluded":"false","description":"an example category","mutex_children":"false","name":"Test
|
9
|
-
Category 123","navigation_only":"false","notes":"Just an API test","parent_id":"
|
9
|
+
Category 123","navigation_only":"false","notes":"Just an API test","parent_id":"424547"}'
|
10
10
|
headers:
|
11
11
|
Accept:
|
12
12
|
- application/json
|
@@ -18,9 +18,9 @@ http_interactions:
|
|
18
18
|
message: OK
|
19
19
|
headers:
|
20
20
|
Date:
|
21
|
-
- Wed,
|
21
|
+
- Wed, 15 Apr 2015 09:55:23 GMT
|
22
22
|
Set-Cookie:
|
23
|
-
- JSESSIONID=
|
23
|
+
- JSESSIONID=BFC398D84CD7A9F2E28DA873A55047CF; Path=/Services; HttpOnly
|
24
24
|
Content-Type:
|
25
25
|
- application/json
|
26
26
|
Cneonction:
|
@@ -32,18 +32,18 @@ http_interactions:
|
|
32
32
|
string: |-
|
33
33
|
{
|
34
34
|
"name" : "Test Category 123",
|
35
|
-
"id" :
|
35
|
+
"id" : 426057,
|
36
36
|
"description" : "an example category",
|
37
37
|
"leaf" : true,
|
38
38
|
"notes" : "Just an API test",
|
39
|
-
"parent_id" :
|
40
|
-
"created_at" : "2015-04-
|
41
|
-
"updated_at" : "2015-04-
|
39
|
+
"parent_id" : 424547,
|
40
|
+
"created_at" : "2015-04-15 04:55:23-0500",
|
41
|
+
"updated_at" : "2015-04-15 04:55:23-0500",
|
42
|
+
"navigation_only" : false,
|
42
43
|
"analytics_excluded" : false,
|
43
44
|
"mutex_children" : false,
|
44
|
-
"navigation_only" : false,
|
45
45
|
"rules" : [ ]
|
46
46
|
}
|
47
47
|
http_version:
|
48
|
-
recorded_at: Wed,
|
48
|
+
recorded_at: Wed, 15 Apr 2015 09:55:24 GMT
|
49
49
|
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,104 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://services.bluekai.com/Services/WS/classificationCategories?bksig=UBH5ABTZ0lJteX19/H5SxV7R70l9pT4Uf5UFFzdFyrE=&bkuid=bluekai-api-user-key&offset=0&size=4&sort_by=name&sorting_order=asc
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Tue, 14 Apr 2015 11:56:26 GMT
|
23
|
+
Set-Cookie:
|
24
|
+
- JSESSIONID=762114A14F8B1C4D0769EA1354B105A8; Path=/Services; HttpOnly
|
25
|
+
Content-Type:
|
26
|
+
- application/json
|
27
|
+
Cneonction:
|
28
|
+
- close
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: |-
|
34
|
+
{
|
35
|
+
"categories" : [ {
|
36
|
+
"name" : "Accessories",
|
37
|
+
"id" : 424261,
|
38
|
+
"description" : "Accessories category",
|
39
|
+
"leaf" : true,
|
40
|
+
"notes" : "",
|
41
|
+
"parent_id" : 424270,
|
42
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
43
|
+
"updated_at" : "2015-04-08 09:12:57-0400",
|
44
|
+
"navigation_only" : false,
|
45
|
+
"analytics_excluded" : false,
|
46
|
+
"mutex_children" : false,
|
47
|
+
"rules" : [ {
|
48
|
+
"id" : 12543,
|
49
|
+
"name" : "ST_SHARE_ACCESSORIES"
|
50
|
+
} ]
|
51
|
+
}, {
|
52
|
+
"name" : "Accessories",
|
53
|
+
"id" : 424276,
|
54
|
+
"description" : "Accessories category",
|
55
|
+
"leaf" : true,
|
56
|
+
"notes" : "",
|
57
|
+
"parent_id" : 424269,
|
58
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
59
|
+
"updated_at" : "2015-04-08 09:07:20-0400",
|
60
|
+
"navigation_only" : false,
|
61
|
+
"analytics_excluded" : false,
|
62
|
+
"mutex_children" : false,
|
63
|
+
"rules" : [ {
|
64
|
+
"id" : 12538,
|
65
|
+
"name" : "ST_BUY_ACCESSORIES"
|
66
|
+
} ]
|
67
|
+
}, {
|
68
|
+
"name" : "Accessories",
|
69
|
+
"id" : 424283,
|
70
|
+
"description" : "Accessories category",
|
71
|
+
"leaf" : true,
|
72
|
+
"notes" : "",
|
73
|
+
"parent_id" : 424271,
|
74
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
75
|
+
"updated_at" : "2015-04-08 09:14:34-0400",
|
76
|
+
"navigation_only" : false,
|
77
|
+
"analytics_excluded" : false,
|
78
|
+
"mutex_children" : false,
|
79
|
+
"rules" : [ {
|
80
|
+
"id" : 12548,
|
81
|
+
"name" : "ST_DETAIL_ACCESSORIES"
|
82
|
+
} ]
|
83
|
+
}, {
|
84
|
+
"name" : "Accessories",
|
85
|
+
"id" : 424284,
|
86
|
+
"description" : "Accessories category",
|
87
|
+
"leaf" : true,
|
88
|
+
"notes" : "",
|
89
|
+
"parent_id" : 424272,
|
90
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
91
|
+
"updated_at" : "2015-04-08 09:15:57-0400",
|
92
|
+
"navigation_only" : false,
|
93
|
+
"analytics_excluded" : false,
|
94
|
+
"mutex_children" : false,
|
95
|
+
"rules" : [ {
|
96
|
+
"id" : 12553,
|
97
|
+
"name" : "ST_HEART_ACCESSORIES"
|
98
|
+
} ]
|
99
|
+
} ],
|
100
|
+
"total_count" : 84
|
101
|
+
}
|
102
|
+
http_version:
|
103
|
+
recorded_at: Tue, 14 Apr 2015 11:56:26 GMT
|
104
|
+
recorded_with: VCR 2.9.3
|