yotpo 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +38 -31
- data/lib/yotpo/api/oauth.rb +8 -0
- data/lib/yotpo/api/purchase.rb +5 -1
- data/lib/yotpo/api/review.rb +11 -3
- data/lib/yotpo/version.rb +1 -1
- data/spec/api/review_spec.rb +34 -1
- data/spec/cassettes/create_review.yml +52 -23
- data/spec/cassettes/create_review_trusted_vendor.yml +96 -0
- data/yotpo.gemspec +1 -1
- metadata +9 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f24af2bc6d1754380c1c11c55680cd33c51a32c49b5f768d915aa912ff27ec1
|
4
|
+
data.tar.gz: edbc0d5fdfdf9df662bc930ae8b51df5140dfbb9661dae61c5bad7ffb40a7ce3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 642682cd2105abc09fc38b3a45a4bcdfa0ea9c6749de1f2ece6b77a6fbd99447642548ca0500c6781be292fcc6e173c25597979b533c6244e48765d839e89e48
|
7
|
+
data.tar.gz: f84d78a4936200e7c45b66b2706cc5beef6566eca77dbb4d2c7eaa5c4d03b9772c440dc48ac768034a5025060cdc20c6dc273e344a7157f77498049e806089d2
|
data/README.md
CHANGED
@@ -40,25 +40,32 @@ end
|
|
40
40
|
```
|
41
41
|
That is it you are ready
|
42
42
|
|
43
|
-
Now lets make some public calls to our api. Public calls only require you to use a valid app_key.
|
43
|
+
Now lets make some public calls to our api. Public calls only require you to use a valid app_key.
|
44
44
|
|
45
45
|
Creating your first review using the API
|
46
46
|
|
47
47
|
```ruby
|
48
48
|
ak = "MY_APP_KEY"
|
49
49
|
|
50
|
-
Yotpo.create_review :app_key => ak,
|
51
|
-
:product_id => "BLABLA",
|
52
|
-
:shop_domain => "omri.co",
|
53
|
-
:product_title => "pt",
|
54
|
-
:product_description => "pd",
|
55
|
-
:product_url => "http://google.com/?q=myproducturl",
|
56
|
-
:product_image_url => "https://www.google.com/images/srpr/logo4w.png",
|
57
|
-
:user_display_name => "MOSHE",
|
58
|
-
:user_email => 'haim@yotpo.com',
|
59
|
-
:
|
60
|
-
:
|
61
|
-
:
|
50
|
+
Yotpo.create_review :app_key => ak,
|
51
|
+
:product_id => "BLABLA",
|
52
|
+
:shop_domain => "omri.co",
|
53
|
+
:product_title => "pt",
|
54
|
+
:product_description => "pd",
|
55
|
+
:product_url => "http://google.com/?q=myproducturl",
|
56
|
+
:product_image_url => "https://www.google.com/images/srpr/logo4w.png",
|
57
|
+
:user_display_name => "MOSHE",
|
58
|
+
:user_email => 'haim@yotpo.com',
|
59
|
+
:user_reference => "1234",
|
60
|
+
:review_body => "this is my review body",
|
61
|
+
:review_title => "my review title" ,
|
62
|
+
:review_score => 5,
|
63
|
+
:signature => "The SHA256 or HMAC signature goes here",
|
64
|
+
:time_stamp => "1426770722",
|
65
|
+
:reviewer_type => "verified_buyer",
|
66
|
+
:custom_fields => {
|
67
|
+
"--would-buy-again": true
|
68
|
+
}
|
62
69
|
```
|
63
70
|
|
64
71
|
and now lets retrieve all the reviews of our product BLABLA
|
@@ -83,15 +90,15 @@ getting the bottom line of product BLABLA
|
|
83
90
|
response = Yotpo.get_product_bottom_line :app_key => ak, :product_id => "BLABLA"
|
84
91
|
|
85
92
|
response.body.bottomline.total_reviews
|
86
|
-
# => 1
|
93
|
+
# => 1
|
87
94
|
|
88
95
|
response.body.bottomline.average_score
|
89
96
|
# => 5.0
|
90
97
|
```
|
91
98
|
|
92
|
-
Now lets try something a little bit more complicated. Lets try to create a purchase.
|
99
|
+
Now lets try something a little bit more complicated. Lets try to create a purchase.
|
93
100
|
|
94
|
-
For that we will need to go through Yotpo authenticaton process, provide an app_key and secret, and return to get the utoken. The utoken will allow us to make authenticated API calls.
|
101
|
+
For that we will need to go through Yotpo authenticaton process, provide an app_key and secret, and return to get the utoken. The utoken will allow us to make authenticated API calls.
|
95
102
|
|
96
103
|
```ruby
|
97
104
|
ak = "d3n27Sg0eP8MHmVCHfPdQzyxjhwIEeV5cBKhoggC" #remember to replace the APP_KEY with your own.
|
@@ -105,30 +112,30 @@ utoken = response.body.access_token
|
|
105
112
|
#first creating the products that are in the order, notice that the key of the product hash is the product_sku
|
106
113
|
products = {
|
107
114
|
"BLABLA1" => {
|
108
|
-
:url => "http://shop.yotpo.com/products/amazing-yotpo-poster",
|
109
|
-
:name => "Yotpo Amazing Poster",
|
110
|
-
:image_url => "http://cdn.shopify.com/s/files/1/0098/1912/products/qa2_medium.png?41",
|
111
|
-
:description => "this is the most awesome poster in the world!",
|
115
|
+
:url => "http://shop.yotpo.com/products/amazing-yotpo-poster",
|
116
|
+
:name => "Yotpo Amazing Poster",
|
117
|
+
:image_url => "http://cdn.shopify.com/s/files/1/0098/1912/products/qa2_medium.png?41",
|
118
|
+
:description => "this is the most awesome poster in the world!",
|
112
119
|
:price => "100"
|
113
120
|
}
|
114
121
|
}
|
115
122
|
|
116
123
|
# now we will create a purchase using this the token we have received in the previous step
|
117
124
|
|
118
|
-
response = Yotpo.create_new_purchase :app_key => ak,
|
119
|
-
:utoken => utoken,
|
120
|
-
:email => "trial@yotpo.com",
|
121
|
-
:customer_name => "bob",
|
122
|
-
:order_id => "12999",
|
123
|
-
:platform => "Shopify",
|
124
|
-
:order_date => "2013-05-28",
|
125
|
-
:products => products,
|
125
|
+
response = Yotpo.create_new_purchase :app_key => ak,
|
126
|
+
:utoken => utoken,
|
127
|
+
:email => "trial@yotpo.com",
|
128
|
+
:customer_name => "bob",
|
129
|
+
:order_id => "12999",
|
130
|
+
:platform => "Shopify",
|
131
|
+
:order_date => "2013-05-28",
|
132
|
+
:products => products,
|
126
133
|
:currency_iso => "USD"
|
127
|
-
|
134
|
+
|
128
135
|
#making sure our request went through
|
129
136
|
|
130
|
-
raise Exception unless response.body.code == 200
|
131
|
-
|
137
|
+
raise Exception unless response.body.code == 200
|
138
|
+
|
132
139
|
```
|
133
140
|
|
134
141
|
We can pull all the purchases of a certain account to make sure that the previous calls has worked
|
data/lib/yotpo/api/oauth.rb
CHANGED
@@ -7,6 +7,14 @@ module Yotpo
|
|
7
7
|
}
|
8
8
|
get('/oauth/validate_token', request)
|
9
9
|
end
|
10
|
+
|
11
|
+
def get_valid_tokens_per_account(params)
|
12
|
+
request = {
|
13
|
+
token: params[:utoken],
|
14
|
+
app_key: params[:app_key],
|
15
|
+
}
|
16
|
+
get('/oauth/get_valid_tokens_per_account', request)
|
17
|
+
end
|
10
18
|
end
|
11
19
|
end
|
12
20
|
|
data/lib/yotpo/api/purchase.rb
CHANGED
@@ -9,7 +9,11 @@ module Yotpo
|
|
9
9
|
currency_iso: params[:currency_iso],
|
10
10
|
order_id: params[:order_id],
|
11
11
|
platform: params[:platform],
|
12
|
-
|
12
|
+
coupon_used: params[:coupon_used],
|
13
|
+
delivery_type: params[:delivery_type],
|
14
|
+
products: params[:products],
|
15
|
+
customer: params[:customer],
|
16
|
+
custom_properties: params[:custom_properties]
|
13
17
|
}
|
14
18
|
app_key = params[:app_key]
|
15
19
|
post("/apps/#{app_key}/purchases", request)
|
data/lib/yotpo/api/review.rb
CHANGED
@@ -32,10 +32,18 @@ module Yotpo
|
|
32
32
|
review_content: params[:review_body],
|
33
33
|
review_title: params[:review_title],
|
34
34
|
review_score: params[:review_score],
|
35
|
-
utoken: params[:utoken]
|
35
|
+
utoken: params[:utoken],
|
36
|
+
customer_metadata: params[:customer_metadata],
|
37
|
+
order_metadata: params[:order_metadata],
|
38
|
+
product_metadata: params[:product_metadata],
|
39
|
+
signature: params[:signature],
|
40
|
+
time_stamp: params[:time_stamp],
|
41
|
+
reviewer_type: params[:reviewer_type],
|
42
|
+
user_reference: params[:user_reference],
|
43
|
+
custom_fields: params[:custom_fields]
|
36
44
|
}
|
37
45
|
request.delete_if { |element, value| value.nil? }
|
38
|
-
|
46
|
+
post('/reviews/dynamic_create', request)
|
39
47
|
end
|
40
48
|
|
41
49
|
# Gets a specific review in Yotpo
|
@@ -111,4 +119,4 @@ module Yotpo
|
|
111
119
|
get("reviews/#{params[:review_id]}/vote/#{params[:vote_value]}")
|
112
120
|
end
|
113
121
|
end
|
114
|
-
end
|
122
|
+
end
|
data/lib/yotpo/version.rb
CHANGED
data/spec/api/review_spec.rb
CHANGED
@@ -16,7 +16,8 @@ describe Yotpo::Review do
|
|
16
16
|
review_body: 'Integer feugiat nunc non leo vehicula bibendum. Nulla at tortor at nulla faucibus suscipit. Curabitur sodales est vel orci lobortis convallis. Vestibulum sit amet tellus neque, ac euismod arcu. Phasellus a nunc ultrices erat condimentum facilisis. Donec a odio in ligula vestibulum lobortis. Mauris posuere, justo tincidunt tincidunt interdum, felis velit venenatis augue, vel rhoncus purus turpis ut magna. Quisque consequat elit vitae enim molestie mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur adipiscing consequat lectus eu pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae' ,
|
17
17
|
review_title: 'Fusce commodo felis quis turpis fringilla egestas',
|
18
18
|
review_score: 4.5,
|
19
|
-
app_key: @app_key
|
19
|
+
app_key: @app_key,
|
20
|
+
user_reference: "1234"
|
20
21
|
}
|
21
22
|
VCR.use_cassette('create_review') do
|
22
23
|
@response = Yotpo.create_review(anonymous_review)
|
@@ -31,6 +32,38 @@ describe Yotpo::Review do
|
|
31
32
|
it { should respond_to :title }
|
32
33
|
end
|
33
34
|
|
35
|
+
describe '#create_review as trusted vendor' do
|
36
|
+
before(:all) do
|
37
|
+
review = {
|
38
|
+
product_id: 'D-4771',
|
39
|
+
domain: 'google.com',
|
40
|
+
product_title: 'Product Title',
|
41
|
+
product_description: 'Nullam ultrices purus a metus porttitor hendrerit. Vivamus accumsan congue urna a viverra. Nam molestie euismod est, vitae sollicitudin velit scelerisque vel. Quisque feugiat, metus sed tempus malesuada, quam erat volutpat metus, a tempor felis est id purus. Ut nec felis nunc, id cursus magna. Mauris sollicitudin ultrices velit vitae viverra. Nulla faucibus lacus id nisl euismod porta. Curabitur mi magna, tempus tristique commodo sit amet, imperdiet in eros. Proin eros arcu, ornare in lobortis eu, posuere ut risus. Quisque fermentum varius nibh, id aliquet lectus congue quis. In placerat arcu at libero posuere eleifend. Donec lacinia mollis lacus, at aliquam nisi molestie nec. Cras eleifend gravida nulla, vitae mollis eros varius eleifend. Pellentesque elit sem, lacinia eget fringilla vitae, condimentum eu quam. Proin quis orci arcu, ut suscipit arcu.',
|
42
|
+
product_url: 'https://www.google.com/?q=pforducturl',
|
43
|
+
product_image_url: 'https://www.google.com/images/srpr/logo4w.png',
|
44
|
+
user_display_name: 'User Name',
|
45
|
+
user_email: 'user@email.com',
|
46
|
+
review_body: 'Integer feugiat nunc non leo vehicula bibendum. Nulla at tortor at nulla faucibus suscipit. Curabitur sodales est vel orci lobortis convallis. Vestibulum sit amet tellus neque, ac euismod arcu. Phasellus a nunc ultrices erat condimentum facilisis. Donec a odio in ligula vestibulum lobortis. Mauris posuere, justo tincidunt tincidunt interdum, felis velit venenatis augue, vel rhoncus purus turpis ut magna. Quisque consequat elit vitae enim molestie mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur adipiscing consequat lectus eu pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae' ,
|
47
|
+
review_title: 'Fusce commodo felis quis turpis fringilla egestas',
|
48
|
+
review_score: 4.5,
|
49
|
+
app_key: @app_key,
|
50
|
+
signature: "e3a30f856453983fc3884ca0c9ef1f31862e6ad25199803dbc192bf2a58f2b31",
|
51
|
+
time_stamp: "1426770722",
|
52
|
+
reviewer_type: "verified_buyer"
|
53
|
+
}
|
54
|
+
VCR.use_cassette('create_review_trusted_vendor') do
|
55
|
+
@response = Yotpo.create_review(review)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
subject { @response.body.reviews[0] }
|
60
|
+
it { should be_a ::Hashie::Mash }
|
61
|
+
it { should respond_to :id }
|
62
|
+
it { should respond_to :user }
|
63
|
+
it { should respond_to :content }
|
64
|
+
it { should respond_to :title }
|
65
|
+
end
|
66
|
+
|
34
67
|
describe '#get_review' do
|
35
68
|
before(:all) do
|
36
69
|
VCR.use_cassette('get_review') do
|
@@ -1,16 +1,43 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
|
-
method:
|
5
|
-
uri: https://api.yotpo.com/reviews/dynamic_create
|
4
|
+
method: post
|
5
|
+
uri: https://api.yotpo.com/reviews/dynamic_create
|
6
6
|
body:
|
7
|
-
encoding:
|
8
|
-
string: '
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"appkey":"3ovRYNIb6OIAI0ddS7EfpYkHpi0oTKl6bj82Vjiy","sku":"D-4771","product_title":"Product
|
9
|
+
Title","product_description":"Nullam ultrices purus a metus porttitor hendrerit.
|
10
|
+
Vivamus accumsan congue urna a viverra. Nam molestie euismod est, vitae sollicitudin
|
11
|
+
velit scelerisque vel. Quisque feugiat, metus sed tempus malesuada, quam erat
|
12
|
+
volutpat metus, a tempor felis est id purus. Ut nec felis nunc, id cursus
|
13
|
+
magna. Mauris sollicitudin ultrices velit vitae viverra. Nulla faucibus lacus
|
14
|
+
id nisl euismod porta. Curabitur mi magna, tempus tristique commodo sit amet,
|
15
|
+
imperdiet in eros. Proin eros arcu, ornare in lobortis eu, posuere ut risus.
|
16
|
+
Quisque fermentum varius nibh, id aliquet lectus congue quis. In placerat
|
17
|
+
arcu at libero posuere eleifend. Donec lacinia mollis lacus, at aliquam nisi
|
18
|
+
molestie nec. Cras eleifend gravida nulla, vitae mollis eros varius eleifend.
|
19
|
+
Pellentesque elit sem, lacinia eget fringilla vitae, condimentum eu quam.
|
20
|
+
Proin quis orci arcu, ut suscipit arcu.","product_url":"https://www.google.com/?q=pforducturl","product_image_url":"https://www.google.com/images/srpr/logo4w.png","display_name":"User
|
21
|
+
Name","email":"user@email.com","review_content":"Integer feugiat nunc non
|
22
|
+
leo vehicula bibendum. Nulla at tortor at nulla faucibus suscipit. Curabitur
|
23
|
+
sodales est vel orci lobortis convallis. Vestibulum sit amet tellus neque,
|
24
|
+
ac euismod arcu. Phasellus a nunc ultrices erat condimentum facilisis. Donec
|
25
|
+
a odio in ligula vestibulum lobortis. Mauris posuere, justo tincidunt tincidunt
|
26
|
+
interdum, felis velit venenatis augue, vel rhoncus purus turpis ut magna.
|
27
|
+
Quisque consequat elit vitae enim molestie mattis. Class aptent taciti sociosqu
|
28
|
+
ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur adipiscing
|
29
|
+
consequat lectus eu pulvinar. Vestibulum ante ipsum primis in faucibus orci
|
30
|
+
luctus et ultrices posuere cubilia Curae","review_title":"Fusce commodo felis
|
31
|
+
quis turpis fringilla egestas","review_score":4.5,"user_reference":"1234"}'
|
9
32
|
headers:
|
10
33
|
User-Agent:
|
11
|
-
- Faraday v0.9.
|
34
|
+
- Faraday v0.9.2
|
12
35
|
Yotpo-Api-Connector:
|
13
|
-
-
|
36
|
+
- Ruby1.0.6
|
37
|
+
Content-Type:
|
38
|
+
- application/json
|
39
|
+
Expect:
|
40
|
+
- ''
|
14
41
|
response:
|
15
42
|
status:
|
16
43
|
code: 200
|
@@ -23,32 +50,34 @@ http_interactions:
|
|
23
50
|
Content-Type:
|
24
51
|
- application/json; charset=utf-8
|
25
52
|
Date:
|
26
|
-
-
|
53
|
+
- Thu, 15 Nov 2018 18:19:14 GMT
|
27
54
|
Etag:
|
28
|
-
-
|
55
|
+
- W/"46acf7135ae19284c8c1e53efe5a509a"
|
29
56
|
P3p:
|
30
57
|
- policyref="/w3c/p3p.xml", CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi
|
31
58
|
CONi HIS OUR IND CNT", CP="CAO PSA OUR"
|
32
59
|
Server:
|
33
60
|
- nginx
|
34
61
|
Set-Cookie:
|
35
|
-
- _yotpo-api-1_session=
|
36
|
-
path=/; HttpOnly
|
37
|
-
|
38
|
-
-
|
62
|
+
- _yotpo-api-1_session=eyJzZXNzaW9uX2lkIjoiOTNhMTg2MjMzNzQxYTQ2ZjUwZjJmNzllNjUwM2Y5ZjIiLCJhbm9ueW1vdXNfdXNlcl9pZCI6MjQzMzM4MjJ9--0d3bb3997137ac24f940144c0d410163a163c92b;
|
63
|
+
path=/; expires=Sat, 15 Dec 2018 18:19:14 -0000; secure; HttpOnly
|
64
|
+
X-Content-Type-Options:
|
65
|
+
- nosniff
|
66
|
+
X-Frame-Options:
|
67
|
+
- SAMEORIGIN
|
39
68
|
X-Request-Id:
|
40
|
-
-
|
69
|
+
- 3326bb45-b218-448b-a3d8-6c147698a298
|
41
70
|
X-Runtime:
|
42
|
-
- '
|
43
|
-
X-
|
44
|
-
-
|
71
|
+
- '1.159279'
|
72
|
+
X-Xss-Protection:
|
73
|
+
- 1; mode=block
|
45
74
|
Content-Length:
|
46
|
-
- '
|
75
|
+
- '2189'
|
47
76
|
Connection:
|
48
77
|
- keep-alive
|
49
78
|
body:
|
50
79
|
encoding: UTF-8
|
51
|
-
string: '{"status":{"code":200,"message":"OK"},"response":{"reviews":[{"id":
|
80
|
+
string: '{"status":{"code":200,"message":"OK"},"response":{"reviews":[{"id":73391005,"content":"Integer
|
52
81
|
feugiat nunc non leo vehicula bibendum. Nulla at tortor at nulla faucibus
|
53
82
|
suscipit. Curabitur sodales est vel orci lobortis convallis. Vestibulum sit
|
54
83
|
amet tellus neque, ac euismod arcu. Phasellus a nunc ultrices erat condimentum
|
@@ -58,10 +87,10 @@ http_interactions:
|
|
58
87
|
aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
|
59
88
|
himenaeos. Curabitur adipiscing consequat lectus eu pulvinar. Vestibulum ante
|
60
89
|
ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae","title":"Fusce
|
61
|
-
commodo felis quis turpis fringilla egestas","score":4,"user":{"id":
|
62
|
-
|
63
|
-
Title","slug":"product-title--429","shorten_url":"https://yotpo.com/go/
|
90
|
+
commodo felis quis turpis fringilla egestas","score":4,"user":{"id":24333822,"display_name":"User
|
91
|
+
N.","social_image":"https://ddcfq0gxiontw.cloudfront.net/images/anonymous_user.png","is_social_connected":false},"user_type":"AnonymousUser","users":[],"products":[{"Location_idx":[0,0],"Product":{"id":6558012,"name":"Product
|
92
|
+
Title","slug":"product-title--429","product_url":"https://www.google.com/?q=pforducturl","shorten_url":"https://yotpo.com/go/oyhF9ltB","images":[{"id":6299789,"image_url":"https://ddcfq0gxiontw.cloudfront.net/Product/6558012/6299789/square.png?1455254154","big_image_url":"https://ddcfq0gxiontw.cloudfront.net/Product/6558012/6299789/big.png?1455254154"}],"social_network_links":{"facebook":"https://yotpo.com/go/zjgc1NGk","twitter":"https://yotpo.com/go/ay9VqGAW","linkedin":"https://yotpo.com/go/rt8WlkID","google_oauth2":"https://yotpo.com/go/7yeVqGzJ"},"facebook_testemonials_page_product_url":"https://yotpo.com/go/gp6zp25E"}}],"votes_up":0,"votes_down":0,"user_vote":0,"created_at":"2018-11-15T18:19:13.269Z","deleted":false,"new":true,"verified_buyer":false,"archived":false,"social_pushed":false,"facebook_pushed":0,"twitter_pushed":0,"account":{"id":19699,"domain":"http://vlad-test-shop.myshopify.com"},"products_apps":[{"id":6481683,"product_url":"https://www.google.com/?q=pforducturl","domain_key":"D-4771","product":{"id":6558012,"name":"Product
|
64
93
|
Title"}}]}]}}'
|
65
94
|
http_version:
|
66
|
-
recorded_at:
|
67
|
-
recorded_with: VCR
|
95
|
+
recorded_at: Thu, 15 Nov 2018 18:19:14 GMT
|
96
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,96 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.yotpo.com/reviews/dynamic_create
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"appkey":"3ovRYNIb6OIAI0ddS7EfpYkHpi0oTKl6bj82Vjiy","sku":"D-4771","product_title":"Product
|
9
|
+
Title","product_description":"Nullam ultrices purus a metus porttitor hendrerit.
|
10
|
+
Vivamus accumsan congue urna a viverra. Nam molestie euismod est, vitae sollicitudin
|
11
|
+
velit scelerisque vel. Quisque feugiat, metus sed tempus malesuada, quam erat
|
12
|
+
volutpat metus, a tempor felis est id purus. Ut nec felis nunc, id cursus
|
13
|
+
magna. Mauris sollicitudin ultrices velit vitae viverra. Nulla faucibus lacus
|
14
|
+
id nisl euismod porta. Curabitur mi magna, tempus tristique commodo sit amet,
|
15
|
+
imperdiet in eros. Proin eros arcu, ornare in lobortis eu, posuere ut risus.
|
16
|
+
Quisque fermentum varius nibh, id aliquet lectus congue quis. In placerat
|
17
|
+
arcu at libero posuere eleifend. Donec lacinia mollis lacus, at aliquam nisi
|
18
|
+
molestie nec. Cras eleifend gravida nulla, vitae mollis eros varius eleifend.
|
19
|
+
Pellentesque elit sem, lacinia eget fringilla vitae, condimentum eu quam.
|
20
|
+
Proin quis orci arcu, ut suscipit arcu.","product_url":"https://www.google.com/?q=pforducturl","product_image_url":"https://www.google.com/images/srpr/logo4w.png","display_name":"User
|
21
|
+
Name","email":"user@email.com","review_content":"Integer feugiat nunc non
|
22
|
+
leo vehicula bibendum. Nulla at tortor at nulla faucibus suscipit. Curabitur
|
23
|
+
sodales est vel orci lobortis convallis. Vestibulum sit amet tellus neque,
|
24
|
+
ac euismod arcu. Phasellus a nunc ultrices erat condimentum facilisis. Donec
|
25
|
+
a odio in ligula vestibulum lobortis. Mauris posuere, justo tincidunt tincidunt
|
26
|
+
interdum, felis velit venenatis augue, vel rhoncus purus turpis ut magna.
|
27
|
+
Quisque consequat elit vitae enim molestie mattis. Class aptent taciti sociosqu
|
28
|
+
ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur adipiscing
|
29
|
+
consequat lectus eu pulvinar. Vestibulum ante ipsum primis in faucibus orci
|
30
|
+
luctus et ultrices posuere cubilia Curae","review_title":"Fusce commodo felis
|
31
|
+
quis turpis fringilla egestas","review_score":4.5,"signature":"e3a30f856453983fc3884ca0c9ef1f31862e6ad25199803dbc192bf2a58f2b31","time_stamp":"1426770722","reviewer_type":"verified_buyer"}'
|
32
|
+
headers:
|
33
|
+
User-Agent:
|
34
|
+
- Faraday v0.9.2
|
35
|
+
Yotpo-Api-Connector:
|
36
|
+
- Ruby1.0.6
|
37
|
+
Content-Type:
|
38
|
+
- application/json
|
39
|
+
Expect:
|
40
|
+
- ''
|
41
|
+
response:
|
42
|
+
status:
|
43
|
+
code: 200
|
44
|
+
message: OK
|
45
|
+
headers:
|
46
|
+
Access-Control-Allow-Credentials:
|
47
|
+
- 'true'
|
48
|
+
Cache-Control:
|
49
|
+
- max-age=0, private, must-revalidate
|
50
|
+
Content-Type:
|
51
|
+
- application/json; charset=utf-8
|
52
|
+
Date:
|
53
|
+
- Thu, 15 Nov 2018 18:19:14 GMT
|
54
|
+
Etag:
|
55
|
+
- W/"46acf7135ae19284c8c1e53efe5a509a"
|
56
|
+
P3p:
|
57
|
+
- policyref="/w3c/p3p.xml", CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi
|
58
|
+
CONi HIS OUR IND CNT", CP="CAO PSA OUR"
|
59
|
+
Server:
|
60
|
+
- nginx
|
61
|
+
Set-Cookie:
|
62
|
+
- _yotpo-api-1_session=eyJzZXNzaW9uX2lkIjoiOTNhMTg2MjMzNzQxYTQ2ZjUwZjJmNzllNjUwM2Y5ZjIiLCJhbm9ueW1vdXNfdXNlcl9pZCI6MjQzMzM4MjJ9--0d3bb3997137ac24f940144c0d410163a163c92b;
|
63
|
+
path=/; expires=Sat, 15 Dec 2018 18:19:14 -0000; secure; HttpOnly
|
64
|
+
X-Content-Type-Options:
|
65
|
+
- nosniff
|
66
|
+
X-Frame-Options:
|
67
|
+
- SAMEORIGIN
|
68
|
+
X-Request-Id:
|
69
|
+
- 3326bb45-b218-448b-a3d8-6c147698a298
|
70
|
+
X-Runtime:
|
71
|
+
- '1.159279'
|
72
|
+
X-Xss-Protection:
|
73
|
+
- 1; mode=block
|
74
|
+
Content-Length:
|
75
|
+
- '2189'
|
76
|
+
Connection:
|
77
|
+
- keep-alive
|
78
|
+
body:
|
79
|
+
encoding: UTF-8
|
80
|
+
string: '{"status":{"code":200,"message":"OK"},"response":{"reviews":[{"id":73391005,"content":"Integer
|
81
|
+
feugiat nunc non leo vehicula bibendum. Nulla at tortor at nulla faucibus
|
82
|
+
suscipit. Curabitur sodales est vel orci lobortis convallis. Vestibulum sit
|
83
|
+
amet tellus neque, ac euismod arcu. Phasellus a nunc ultrices erat condimentum
|
84
|
+
facilisis. Donec a odio in ligula vestibulum lobortis. Mauris posuere, justo
|
85
|
+
tincidunt tincidunt interdum, felis velit venenatis augue, vel rhoncus purus
|
86
|
+
turpis ut magna. Quisque consequat elit vitae enim molestie mattis. Class
|
87
|
+
aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
|
88
|
+
himenaeos. Curabitur adipiscing consequat lectus eu pulvinar. Vestibulum ante
|
89
|
+
ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae","title":"Fusce
|
90
|
+
commodo felis quis turpis fringilla egestas","score":4,"user":{"id":24333822,"display_name":"User
|
91
|
+
N.","social_image":"https://ddcfq0gxiontw.cloudfront.net/images/anonymous_user.png","is_social_connected":false},"user_type":"AnonymousUser","users":[],"products":[{"Location_idx":[0,0],"Product":{"id":6558012,"name":"Product
|
92
|
+
Title","slug":"product-title--429","product_url":"https://www.google.com/?q=pforducturl","shorten_url":"https://yotpo.com/go/oyhF9ltB","images":[{"id":6299789,"image_url":"https://ddcfq0gxiontw.cloudfront.net/Product/6558012/6299789/square.png?1455254154","big_image_url":"https://ddcfq0gxiontw.cloudfront.net/Product/6558012/6299789/big.png?1455254154"}],"social_network_links":{"facebook":"https://yotpo.com/go/zjgc1NGk","twitter":"https://yotpo.com/go/ay9VqGAW","linkedin":"https://yotpo.com/go/rt8WlkID","google_oauth2":"https://yotpo.com/go/7yeVqGzJ"},"facebook_testemonials_page_product_url":"https://yotpo.com/go/gp6zp25E"}}],"votes_up":0,"votes_down":0,"user_vote":0,"created_at":"2018-11-15T18:19:13.269Z","deleted":false,"new":true,"verified_buyer":true,"archived":false,"social_pushed":false,"facebook_pushed":0,"twitter_pushed":0,"account":{"id":19699,"domain":"http://vlad-test-shop.myshopify.com"},"products_apps":[{"id":6481683,"product_url":"https://www.google.com/?q=pforducturl","domain_key":"D-4771","product":{"id":6558012,"name":"Product
|
93
|
+
Title"}}]}]}}'
|
94
|
+
http_version:
|
95
|
+
recorded_at: Thu, 15 Nov 2018 18:19:14 GMT
|
96
|
+
recorded_with: VCR 4.0.0
|
data/yotpo.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
|
22
22
|
gem.add_dependency 'faraday'
|
23
23
|
gem.add_dependency 'typhoeus'
|
24
|
-
gem.add_dependency 'faraday_middleware', '
|
24
|
+
gem.add_dependency 'faraday_middleware', '~> 0.12.0'
|
25
25
|
gem.add_dependency 'hashie'
|
26
26
|
gem.add_dependency 'oj'
|
27
27
|
gem.add_dependency 'activesupport'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yotpo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladislav Shub
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -42,22 +42,16 @@ dependencies:
|
|
42
42
|
name: faraday_middleware
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.8'
|
48
|
-
- - "<"
|
45
|
+
- - "~>"
|
49
46
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
47
|
+
version: 0.12.0
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
|
-
- - "
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '0.8'
|
58
|
-
- - "<"
|
52
|
+
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
54
|
+
version: 0.12.0
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: hashie
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,6 +160,7 @@ files:
|
|
166
160
|
- spec/cassettes/create_new_purchase.yml
|
167
161
|
- spec/cassettes/create_new_purchases.yml
|
168
162
|
- spec/cassettes/create_review.yml
|
163
|
+
- spec/cassettes/create_review_trusted_vendor.yml
|
169
164
|
- spec/cassettes/create_user.yml
|
170
165
|
- spec/cassettes/get_account_social.yml
|
171
166
|
- spec/cassettes/get_feature_settings.yml
|
@@ -229,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
224
|
version: '0'
|
230
225
|
requirements: []
|
231
226
|
rubyforge_project:
|
232
|
-
rubygems_version: 2.7.
|
227
|
+
rubygems_version: 2.7.8
|
233
228
|
signing_key:
|
234
229
|
specification_version: 4
|
235
230
|
summary: A Ruby interface to the YOTPO API
|
@@ -263,6 +258,7 @@ test_files:
|
|
263
258
|
- spec/cassettes/create_new_purchase.yml
|
264
259
|
- spec/cassettes/create_new_purchases.yml
|
265
260
|
- spec/cassettes/create_review.yml
|
261
|
+
- spec/cassettes/create_review_trusted_vendor.yml
|
266
262
|
- spec/cassettes/create_user.yml
|
267
263
|
- spec/cassettes/get_account_social.yml
|
268
264
|
- spec/cassettes/get_feature_settings.yml
|