yotpo 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +20 -0
  3. data/.rspec +3 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +4 -0
  7. data/Gemfile +16 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +51 -0
  10. data/Rakefile +11 -0
  11. data/lib/yotpo/api/account.rb +45 -0
  12. data/lib/yotpo/api/account_platform.rb +20 -0
  13. data/lib/yotpo/api/product.rb +25 -0
  14. data/lib/yotpo/api/purchase.rb +38 -0
  15. data/lib/yotpo/api/reminder.rb +14 -0
  16. data/lib/yotpo/api/review.rb +67 -0
  17. data/lib/yotpo/api/user.rb +64 -0
  18. data/lib/yotpo/client.rb +134 -0
  19. data/lib/yotpo/core/response_parser.rb +84 -0
  20. data/lib/yotpo/version.rb +3 -0
  21. data/lib/yotpo.rb +58 -0
  22. data/spec/api/account_platform_spec.rb +33 -0
  23. data/spec/api/account_spec.rb +45 -0
  24. data/spec/api/product_spec.rb +44 -0
  25. data/spec/api/purchase_spec.rb +100 -0
  26. data/spec/api/reminder_spec.rb +22 -0
  27. data/spec/api/review_spec.rb +55 -0
  28. data/spec/api/user_spec.rb +63 -0
  29. data/spec/fixtures/bearer_token.json +4 -0
  30. data/spec/fixtures/check_subdomain.json +12 -0
  31. data/spec/fixtures/get_all_bottom_lines.json +29 -0
  32. data/spec/fixtures/get_list_of_purchases.json +39 -0
  33. data/spec/fixtures/get_login_url.json +10 -0
  34. data/spec/fixtures/get_product_bottom_line.json +12 -0
  35. data/spec/fixtures/get_product_reviews.json +356 -0
  36. data/spec/fixtures/new_account_platform.json +23 -0
  37. data/spec/fixtures/new_purchase.json +4 -0
  38. data/spec/fixtures/new_review.json +64 -0
  39. data/spec/fixtures/new_user.json +12 -0
  40. data/spec/fixtures/send_test_email.json +6 -0
  41. data/spec/fixtures/update_account.json +53 -0
  42. data/spec/helper.rb +65 -0
  43. data/spec/yotpo_spec.rb +4 -0
  44. data/yotpo.gemspec +29 -0
  45. metadata +193 -0
data/lib/yotpo.rb ADDED
@@ -0,0 +1,58 @@
1
+ require 'yotpo/version'
2
+ require 'yotpo/client'
3
+
4
+ module Yotpo
5
+ class << self
6
+ # @!attribute url
7
+ # @return [String] the base url of the Yotpo Api
8
+ attr_accessor :url
9
+
10
+ # @!attribute parallel_requests
11
+ # @return [Integer String] defines the maximum parallel request for the gem to preform
12
+ attr_accessor :parallel_requests
13
+
14
+ # @!attribute app_key
15
+ # @return [String] the app key that is registered with Yotpo
16
+ attr_accessor :app_key
17
+
18
+ # @!attribute secret
19
+ # @return [String] the secret that is registered with Yotpo
20
+ attr_accessor :secret
21
+
22
+ # Configuration interface of the gem
23
+ #
24
+ # @yield [self] to accept configuration settings
25
+ def configure
26
+ yield self
27
+ true
28
+ end
29
+
30
+ #
31
+ # Makes sure that the method missing is checked with the Yotpo::Client instance
32
+ #
33
+ # @param method_name [String] the name of the method we want to run
34
+ # @param include_private [Boolean] defines wether to check for private functions as well
35
+ def respond_to_missing?(method_name, include_private=false)
36
+ client.respond_to?(method_name, include_private)
37
+ end
38
+
39
+ #
40
+ # @return an instance of Yotpo::Client
41
+ #
42
+ def client
43
+ @client ||= Yotpo::Client.new()
44
+ end
45
+
46
+ private
47
+
48
+ #
49
+ # executes any function on the Yotpo::Client instance
50
+ #
51
+ # @param args [*] any argument that we want to pass to the client function
52
+ # @param block [Block] any block that is passed to the client function
53
+ def method_missing(method_name, *args, &block)
54
+ return super unless client.respond_to?(method_name)
55
+ client.send(method_name, *args, &block)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,33 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::AccountPlatform do
4
+ describe '#create_account_platform' do
5
+ before(:all) do
6
+ create_account_platform_request = {
7
+ shop_token: 'asdasdadads',
8
+ shop_domain: Faker::Internet.domain_name,
9
+ plan_name: 'test plan',
10
+ platform_type_id: 1,
11
+ deleted: false,
12
+ utoken: 'asdeuh1di1udifn1309fn09',
13
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG'
14
+ }
15
+ stub_post("/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/account_platform").
16
+ with(:headers => {'User-Agent' => 'Faraday v0.8.7', 'Yotpo-Api-Connector' => '0.0.1'}).
17
+ to_return(:status => 200, :body => fixture('new_account_platform.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
18
+
19
+ @response = Yotpo.create_account_platform(create_account_platform_request)
20
+ end
21
+
22
+ subject { @response.body.account_platform }
23
+ it { should be_a ::Hashie::Rash }
24
+ it { should respond_to :id }
25
+ it { should respond_to :shop_token }
26
+ it { should respond_to :shop_domain }
27
+ it { should respond_to :shop_api_url }
28
+ it { should respond_to :plan_name }
29
+ it { should respond_to :platform_type }
30
+ it { should respond_to :deleted }
31
+ it { should respond_to :shop_user_name }
32
+ end
33
+ end
@@ -0,0 +1,45 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::Account do
4
+ describe '#update_account' do
5
+ before(:all) do
6
+ account_data = {
7
+ minisite_website_name: Faker::Internet.domain_word,
8
+ minisite_website: Faker::Internet.domain_name,
9
+ minisite_subdomain: Faker::Internet.domain_name,
10
+ minisite_cname: Faker::Internet.domain_name,
11
+ minisite_subdomain_active: [true, false].sample,
12
+ utoken: '12ei1rr1i3ufn23itfoijver903',
13
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG'
14
+ }
15
+ stub_put('/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG').
16
+ to_return(:status => 200, :body => fixture('update_account.json'), :headers => {})
17
+ @response = Yotpo.update_account(account_data)
18
+ end
19
+ subject { @response.body.app }
20
+ it { should be_a ::Hashie::Rash }
21
+ it { should respond_to :id }
22
+ it { should respond_to :app_key }
23
+ end
24
+
25
+ describe '#check_minisite_subdomain' do
26
+ before(:all) do
27
+ sub_domain_data = {
28
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG',
29
+ subdomain: 'shalom1',
30
+ utoken: '12ei1rr1i3ufn23itfoijver903'
31
+ }
32
+ stub_get('/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/subomain_check/shalom1?utoken=12ei1rr1i3ufn23itfoijver903').
33
+ with(:headers => {'User-Agent'=>'Faraday v0.8.7', 'Yotpo-Api-Connector'=>'0.0.1'}).
34
+ to_return(:status => 200, :body => fixture('check_subdomain.json'), :headers => {})
35
+
36
+ @response = Yotpo.check_minisite_subdomain(sub_domain_data)
37
+ end
38
+ subject { @response.body.subdomain }
39
+ it { should be_a ::Hashie::Rash }
40
+ it { should respond_to :available }
41
+ it { should respond_to :subdomain }
42
+
43
+
44
+ end
45
+ end
@@ -0,0 +1,44 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::Product do
4
+ describe '#get_all_bottom_lines' do
5
+ before(:all) do
6
+ get_app_bottom_lines_params = {
7
+ utoken: 'asdeuh1di1udifn1309fn09',
8
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG'
9
+
10
+ }
11
+ stub_get("/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/bottom_lines?utoken=asdeuh1di1udifn1309fn09").
12
+ with(:headers => {'User-Agent'=>'Faraday v0.8.7', 'Yotpo-Api-Connector'=>'0.0.1'}).
13
+ to_return(:status => 200, :body => fixture('get_all_bottom_lines.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
14
+
15
+ @response = Yotpo.get_all_bottom_lines(get_app_bottom_lines_params)
16
+ end
17
+
18
+ subject { @response.body.bottomlines[0] }
19
+ it { should be_a ::Hashie::Rash }
20
+ it { should respond_to :domain_key }
21
+ it { should respond_to :product_score }
22
+ it { should respond_to :total_reviews }
23
+ end
24
+
25
+ describe '#get_product_bottom_line' do
26
+ before(:all) do
27
+ get_bottom_line_params = {
28
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG',
29
+ product_id: 'A12'
30
+ }
31
+
32
+ stub_get("/products/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/A12/bottomline").
33
+ with(:headers => {'User-Agent'=>'Faraday v0.8.7', 'Yotpo-Api-Connector'=>'0.0.1'}).
34
+ to_return(:status => 200, :body => fixture('get_product_bottom_line.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
35
+
36
+ @response = Yotpo.get_product_bottom_line(get_bottom_line_params)
37
+ end
38
+
39
+ subject { @response.body.bottomline }
40
+ it { should be_a ::Hashie::Rash }
41
+ it { should respond_to :average_score }
42
+ it { should respond_to :total_reviews }
43
+ end
44
+ end
@@ -0,0 +1,100 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::Purchase do
4
+ describe '#create_new_purchase' do
5
+ before(:all) do
6
+ create_new_purchase_request = {
7
+ email: Faker::Internet.email,
8
+ customer_name: Faker::Internet.user_name,
9
+ order_id: '123',
10
+ platform: 'shopify',
11
+ products: [
12
+ p1: {
13
+ url: 'http://example_product_url1.com',
14
+ name: 'product1',
15
+ image: 'http://example_product_image_url1.com',
16
+ description: 'this is the description of a product'
17
+ }
18
+ ],
19
+ utoken: 'asdeuh1di1udifn1309fn09',
20
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG'
21
+ }
22
+ stub_post("/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/purchases").
23
+ with(:headers => {'User-Agent' => 'Faraday v0.8.7', 'Yotpo-Api-Connector' => '0.0.1'}).
24
+ to_return(:status => 200, :body => fixture('new_purchase.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
25
+
26
+ @response = Yotpo.create_new_purchase(create_new_purchase_request)
27
+ end
28
+
29
+ subject { @response.body }
30
+ it { should be_a ::Hashie::Rash }
31
+ it { should respond_to :code }
32
+ it { should respond_to :message }
33
+ end
34
+
35
+ describe '#create_new_purchases' do
36
+ before(:all) do
37
+ create_new_purchase_request = {
38
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG',
39
+ utoken: 'asdeuh1di1udifn1309fn09',
40
+ orders: [
41
+ {
42
+ email: Faker::Internet.email,
43
+ customer_name: Faker::Internet.user_name,
44
+ order_id: '123',
45
+ platform: 'shopify',
46
+ products: [
47
+ p1: {
48
+ url: 'http://example_product_url1.com',
49
+ name: 'product1',
50
+ image: 'http://example_product_image_url1.com',
51
+ description: 'this is the description of a product'
52
+ }
53
+ ]
54
+
55
+
56
+ }
57
+ ]
58
+ }
59
+ stub_post("/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/purchases/mass_create").
60
+ with(:headers => {'User-Agent' => 'Faraday v0.8.7', 'Yotpo-Api-Connector' => '0.0.1'}).
61
+ to_return(:status => 200, :body => fixture('new_purchase.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
62
+
63
+ @response = Yotpo.create_new_purchases(create_new_purchase_request)
64
+ end
65
+
66
+ subject { @response.body }
67
+ it { should be_a ::Hashie::Rash }
68
+ it { should respond_to :code }
69
+ it { should respond_to :message }
70
+ end
71
+
72
+ describe '#get_purchases' do
73
+ before(:all) do
74
+ get_purchases_request = {
75
+ utoken: 'asdeuh1di1udifn1309fn09',
76
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG'
77
+ }
78
+ stub_get('/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/purchases?count=10&page=1&utoken=asdeuh1di1udifn1309fn09').
79
+ with(:headers => {'User-Agent' => 'Faraday v0.8.7', 'Yotpo-Api-Connector' => '0.0.1'}).
80
+ to_return(:status => 200, :body => fixture('get_list_of_purchases.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
81
+
82
+ @response = Yotpo.get_purchases(get_purchases_request)
83
+ end
84
+
85
+ subject { @response.body.purchases[0] }
86
+ it { should be_a ::Hashie::Rash }
87
+ it { should respond_to :id }
88
+ it { should respond_to :user_email }
89
+ it { should respond_to :user_name }
90
+ it { should respond_to :product_sku }
91
+ it { should respond_to :order_id }
92
+ it { should respond_to :product_name }
93
+ it { should respond_to :product_url }
94
+ it { should respond_to :order_date }
95
+ it { should respond_to :product_description }
96
+ it { should respond_to :product_image }
97
+ it { should respond_to :delivery_date }
98
+ it { should respond_to :created_at }
99
+ end
100
+ end
@@ -0,0 +1,22 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::Reminder do
4
+ describe Yotpo::Product do
5
+ describe '#send_test_reminder' do
6
+ before(:all) do
7
+ request ={
8
+ utoken: 'asdeuh1di1udifn1309fn09',
9
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG',
10
+ email: 'vlad@yotpo.com'
11
+ }
12
+ stub_post('/apps/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/reminders/send_test_email').with(:body => Oj.dump({utoken: 'asdeuh1di1udifn1309fn09',
13
+ email: 'vlad@yotpo.com'})).
14
+ to_return(:body => fixture('send_test_email.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
15
+ @response = Yotpo.send_test_reminder(request)
16
+ end
17
+ subject { @response.body }
18
+ it { should be_a ::Hashie::Rash }
19
+ it { should respond_to :status }
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,55 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::Review do
4
+
5
+ describe '#create_review' do
6
+ before(:all) do
7
+ anonymous_review = {
8
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG',
9
+ sku: Faker::Product.model,
10
+ domain: Faker::Internet.domain_name,
11
+ product_title: Faker::Product.product,
12
+ product_description: Faker::Lorem.paragraph(3),
13
+ product_url: Faker::Internet.http_url,
14
+ product_image_url: 'https://www.google.com/images/srpr/logo4w.png',
15
+ display_name: Faker::Internet.user_name,
16
+ email: Faker::Internet.email,
17
+ review_content: Faker::Lorem.paragraph(3),
18
+ review_title: Faker::Lorem.sentence(5),
19
+ review_score: [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5].sample
20
+ }
21
+ stub_get('/reviews/dynamic_create').with(:query => hash_including({:app_key => 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG'})).to_return(:body => fixture('new_review.json'),
22
+ :headers => {:content_type => 'application/json; charset=utf-8'})
23
+ @response = Yotpo.create_review(anonymous_review)
24
+ end
25
+
26
+ subject { @response.body.reviews[0] }
27
+ it { should be_a ::Hashie::Rash }
28
+ it { should respond_to :id }
29
+ it { should respond_to :user }
30
+ it { should respond_to :content }
31
+ it { should respond_to :title }
32
+ end
33
+
34
+ describe '#get_product_reviews' do
35
+ before(:all) do
36
+ get_reviews_params = {
37
+ page: 1,
38
+ count: 5,
39
+ app_key: 'nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG',
40
+ product_id: 'A12'
41
+ }
42
+ stub_get("/products/nNgGNA54ETOqaXQ7hRZymxqdtwwetJKDVs0v8qGG/A12/reviews?count=5&page=1").
43
+ with(:headers => {'User-Agent'=>'Faraday v0.8.7', 'Yotpo-Api-Connector'=>'0.0.1'}).
44
+ to_return(:status => 200, :body => fixture('get_product_reviews.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
45
+ @response = Yotpo.get_product_reviews(get_reviews_params)
46
+ end
47
+
48
+ subject { @response.body.reviews[0] }
49
+ it { should be_a ::Hashie::Rash }
50
+ it { should respond_to :id }
51
+ it { should respond_to :user }
52
+ it { should respond_to :content }
53
+ it { should respond_to :title }
54
+ end
55
+ end
@@ -0,0 +1,63 @@
1
+ require 'helper'
2
+
3
+ describe Yotpo::User do
4
+
5
+ describe '#create_user' do
6
+ before(:all) do
7
+ @user_info = {
8
+ email: Faker::Internet.email,
9
+ display_name: Faker::Internet.user_name,
10
+ first_name: Faker::Name.first_name,
11
+ last_name: Faker::Name.last_name,
12
+ website_name: Faker::Internet.domain_name,
13
+ password: Faker::Lorem.words(3).join(' '),
14
+ support_url: Faker::Internet.http_url,
15
+ callback_url: Faker::Internet.http_url,
16
+ url: Faker::Internet.http_url
17
+ }
18
+ stub_post('/users').with(:body => Oj.dump({:user => @user_info})).to_return(:body => fixture('new_user.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
19
+ @response = Yotpo.create_user(@user_info)
20
+ end
21
+ subject { @response.body }
22
+ it { should be_a ::Hashie::Rash }
23
+ it { should respond_to :app_key }
24
+ it { should respond_to :secret }
25
+ it { should respond_to :token }
26
+ it { should respond_to :id }
27
+ end
28
+
29
+ describe '#get_oauth_token' do
30
+ before(:all) do
31
+ oauth_request = {
32
+ app_key: 'a3lmMnC3u4SNmz0ZcHf3lODeIYM9LEQwtTWXRdDP',
33
+ secret: 'NumuadvlCGOTwnCCvY5BRAhGib1LTCFptYxfvebm',
34
+ grant_type: "client_credentials"
35
+ }
36
+ stub_request(:post, "https://api.yotpo.com/oauth/token").
37
+ with(:body => "{\":client_id\":\"a3lmMnC3u4SNmz0ZcHf3lODeIYM9LEQwtTWXRdDP\",\":client_secret\":\"NumuadvlCGOTwnCCvY5BRAhGib1LTCFptYxfvebm\",\":grant_type\":\"client_credentials\"}",
38
+ :headers => {'Content-Type'=>'application/json', 'User-Agent'=>'Faraday v0.8.7', 'Yotpo-Api-Connector'=>'0.0.1'}).
39
+ to_return(:status => 200, :body => fixture('bearer_token.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
40
+ @response = Yotpo.get_oauth_token(oauth_request)
41
+ end
42
+ subject { @response.body }
43
+ it { should be_a ::Hashie::Rash }
44
+ it { should respond_to :access_token }
45
+ it { should respond_to :token_type }
46
+ end
47
+
48
+ describe '#get_login_url' do
49
+ before(:all) do
50
+ request = {
51
+ app_key: 'a3lmMnC3u4SNmz0ZcHf3lODeIYM9LEQwtTWXRdDP',
52
+ secret: 'NumuadvlCGOTwnCCvY5BRAhGib1LTCFptYxfvebm'
53
+ }
54
+ stub_get('/users/b2blogin').with(:query => hash_including(request)).to_return(:body => fixture('get_login_url.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
55
+ @response = Yotpo.get_login_url(request)
56
+ end
57
+ subject { @response.body }
58
+ it { should be_a ::Hashie::Rash }
59
+ it { should respond_to :code }
60
+ it { should respond_to :signin_url }
61
+
62
+ end
63
+ end
@@ -0,0 +1,4 @@
1
+ {
2
+ "access_token": "DUGKea0thVDL2muWzMAd7mYlkni46cJWhiX9tGTF",
3
+ "token_type": "bearer"
4
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "status" : {
3
+ "code" : 200,
4
+ "message" : "OK"
5
+ },
6
+ "response" : {
7
+ "subdomain" : {
8
+ "available" : "true",
9
+ "subdomain" : "shalom1"
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "status" : {
3
+ "code" : 200,
4
+ "message" : "OK"
5
+ },
6
+ "response" : {
7
+ "bottomlines" : [ {
8
+ "domain_key" : "62050632",
9
+ "product_score" : "3.45",
10
+ "total_reviews" : 11
11
+ }, {
12
+ "domain_key" : "62050052",
13
+ "product_score" : "3.0",
14
+ "total_reviews" : 3
15
+ }, {
16
+ "domain_key" : "62050122",
17
+ "product_score" : "4.64",
18
+ "total_reviews" : 11
19
+ }, {
20
+ "domain_key" : "73503772",
21
+ "product_score" : "4.76",
22
+ "total_reviews" : 17
23
+ }, {
24
+ "domain_key" : "92431514",
25
+ "product_score" : "4.52",
26
+ "total_reviews" : 25
27
+ }]
28
+ }
29
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "status": {
3
+ "code": 200,
4
+ "message": "OK"
5
+ },
6
+ "response": {
7
+ "purchases": [
8
+ {
9
+ "id": 80,
10
+ "user_email": "test@use.com",
11
+ "user_name": "lamba",
12
+ "product_sku": "123",
13
+ "order_id": "100",
14
+ "product_name": "ttt",
15
+ "product_url": "http://www.google.com",
16
+ "order_date": "2013-05-06T16:45:40Z",
17
+ "product_description": "lalalala",
18
+ "product_image": "http://www.google.com/images/srpr/logo4w.png",
19
+ "delivery_date": "2013-05-19T21:00:00Z",
20
+ "created_at": "2013-05-20T16:45:40Z"
21
+ },
22
+ {
23
+ "id": 980,
24
+ "user_email": "test@use.com",
25
+ "user_name": "lamba",
26
+ "product_sku": "123",
27
+ "order_id": "1000",
28
+ "product_name": "ttt",
29
+ "product_url": "http://www.google.com",
30
+ "order_date": "2013-05-06T16:46:04Z",
31
+ "product_description": "lalalala",
32
+ "product_image": "http://www.google.com/images/srpr/logo4w.png",
33
+ "delivery_date": "2013-05-19T21:00:00Z",
34
+ "created_at": "2013-05-20T16:46:04Z"
35
+ }
36
+ ],
37
+ "total_purchases": 1001
38
+ }
39
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "status" : {
3
+ "code" : 200,
4
+ "message" : "OK"
5
+ },
6
+ "response" : {
7
+ "code" : "pStQjjzuiUfRGX0EMhqi",
8
+ "signin_url" : "https://www.yotpo.com/callbacks/login?code=pStQjjzuiUfRGX0EMhqi"
9
+ }
10
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "status":{
3
+ "code":200,
4
+ "message":"OK"
5
+ },
6
+ "response":{
7
+ "bottomline":{
8
+ "average_score":4.52,
9
+ "total_reviews":23
10
+ }
11
+ }
12
+ }