seoshop-api 0.0.3 → 0.0.4
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 +6 -14
- data/lib/seoshop-api/api/brand.rb +8 -0
- data/lib/seoshop-api/api/product_category.rb +21 -0
- data/lib/seoshop-api/api/shop_script.rb +32 -0
- data/lib/seoshop-api/api/shop_tracking.rb +32 -0
- data/lib/seoshop-api/client.rb +9 -1
- data/lib/seoshop-api/core/response_parser.rb +4 -1
- data/lib/seoshop-api/version.rb +1 -1
- data/seoshop-api.gemspec +2 -2
- metadata +30 -26
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MWFkMDYyYjQxYWY2YzkwMWFiZTNiMzY5MTNmZGFkNTI0MzkwODc0YTI0YTc4
|
10
|
-
N2I5ZTRhZmUyZDFhYWYwNDY1Mjk2ZjllMzAwZDNiMzcwMTM1MjMwMzk4ZDA4
|
11
|
-
ZTYxZDUxODhjMmIzNmJkZDUzZTY3ZTE5ZTQ0Y2I4MGQyMmU5YmE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MTM3NWUwOGYyNzU1ZmJhYWM3NTY4YzM1NTA4M2EzNDAyMTc4ZjA5Yjg4MGFh
|
14
|
-
N2ZkY2U3YTQ5YzhmNWUxMzBmYWJlMDQ2OTgzY2E5ZGM4N2ZlYWVjZjE1Njhl
|
15
|
-
Y2VmNDcxMDU0ZDQwYmEwOGQxMzlkOWZjNmE0MWUzZTAwMzYxMjE=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: aa4ed35ddec2b94c48f102a8fd322718c2e0dde8
|
4
|
+
data.tar.gz: 54d1314177f02692537da16b0ebff55fe16e3e25
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2451896576a230b2feeed3937b3f276c3c5a2697f8ffdb20b207322e4efc866e2554f54cccba3f00006d85c628eac25a7fdda54c42eb9212b94c3584667d463b
|
7
|
+
data.tar.gz: 49208714ff54f4971c1cea0e786ae201e257702c0570a5d4d550347e057eef26405143862408f0bda312dc824c74a4bdf96967599c7b45a4d5318e604382d495
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Seoshop
|
2
|
+
module ProductCategory
|
3
|
+
def get_category category_id
|
4
|
+
response = get("#{@shop_language}/categories/#{category_id}.json")
|
5
|
+
response.body ? response.body['category'] : nil
|
6
|
+
end
|
7
|
+
def get_product_category_path(product_id)
|
8
|
+
response = get("#{@shop_language}/categories/products.json?product=#{product_id}")
|
9
|
+
categories_products = response.body ? response.body['categories_products'] : []
|
10
|
+
categories_products.map{|category|
|
11
|
+
get_category(category.category.resource.id).fulltitle
|
12
|
+
}.join(">")
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_categories_count
|
16
|
+
response = get("#{@shop_language}/categories/products/count.json")
|
17
|
+
response.body ? response.body['count'] : false
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Seoshop
|
2
|
+
module ShopScript
|
3
|
+
|
4
|
+
def get_scripts_count(params = {})
|
5
|
+
response = get("#{@shop_language}/shop/scripts/count.json", params)
|
6
|
+
response.body ? response.body['count'].to_i : 0
|
7
|
+
end
|
8
|
+
def get_scripts(params = {})
|
9
|
+
response = get("#{@shop_language}/shop/scripts.json", params)
|
10
|
+
response.body ? response.body['shop_scripts'] || [] : []
|
11
|
+
end
|
12
|
+
|
13
|
+
def post_script(params)
|
14
|
+
response = post("#{@shop_language}/shop/scripts.json", { "shopScript" => params })
|
15
|
+
response.body ? response.body['shopScript'] : false
|
16
|
+
end
|
17
|
+
|
18
|
+
def update_script(script_id, params)
|
19
|
+
response = put("#{@shop_language}/shop/scripts/#{script_id}.json", { "shopScript" => params } )
|
20
|
+
response.body ? response.body['shopScript'] : {}
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_script(script_id)
|
24
|
+
response = get("#{@shop_language}/shop/scripts/#{script_id}.json")
|
25
|
+
response.body ? response.body['shopScript'] : nil
|
26
|
+
end
|
27
|
+
def delete_script(script_id)
|
28
|
+
response = delete("#{@shop_language}/shop/scripts/#{script_id}.json")
|
29
|
+
true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Seoshop
|
2
|
+
module ShopTracking
|
3
|
+
|
4
|
+
def get_trackings_count(params = {})
|
5
|
+
response = get("#{@shop_language}/shop/tracking/count.json", params)
|
6
|
+
response.body ? response.body['count'] : false
|
7
|
+
end
|
8
|
+
def get_trackings(params = {})
|
9
|
+
response = get("#{@shop_language}/shop/tracking.json", params)
|
10
|
+
response.body ? response.body['shopTracking'] : false
|
11
|
+
end
|
12
|
+
|
13
|
+
def post_tracking(params)
|
14
|
+
response = post("#{@shop_language}/shop/tracking.json", { "shopTracking" => params })
|
15
|
+
response.body ? response.body['shopTracking'] : false
|
16
|
+
end
|
17
|
+
|
18
|
+
def update_tracking(tracking_id, params)
|
19
|
+
response = put("#{@shop_language}/shop/tracking/#{tracking_id}.json", { "shopTracking" => params } )
|
20
|
+
response.body ? response.body['shopTracking'] : false
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_tracking(tracking_id)
|
24
|
+
response = get("#{@shop_language}/shop/tracking/#{tracking_id}.json")
|
25
|
+
response.body ? response.body['shopTracking'] : false
|
26
|
+
end
|
27
|
+
def delete_tracking(tracking_id)
|
28
|
+
response = delete("#{@shop_language}/shop/tracking/#{script_id}.json")
|
29
|
+
true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/seoshop-api/client.rb
CHANGED
@@ -8,16 +8,24 @@ require 'seoshop-api/version'
|
|
8
8
|
require 'seoshop-api/api/order'
|
9
9
|
require 'seoshop-api/api/shop'
|
10
10
|
require 'seoshop-api/api/product'
|
11
|
+
require 'seoshop-api/api/product_category'
|
12
|
+
require 'seoshop-api/api/brand'
|
11
13
|
require 'seoshop-api/api/customer'
|
12
14
|
require 'seoshop-api/api/account'
|
15
|
+
require 'seoshop-api/api/shop_script'
|
16
|
+
require 'seoshop-api/api/shop_tracking'
|
13
17
|
|
14
18
|
module Seoshop
|
15
19
|
class Client
|
16
20
|
include Seoshop::Order
|
17
21
|
include Seoshop::Shop
|
22
|
+
include Seoshop::ShopScript
|
23
|
+
include Seoshop::ShopTracking
|
18
24
|
include Seoshop::Product
|
25
|
+
include Seoshop::ProductCategory
|
19
26
|
include Seoshop::Customer
|
20
27
|
include Seoshop::Account
|
28
|
+
include Seoshop::Brand
|
21
29
|
|
22
30
|
attr_accessor :access_token
|
23
31
|
attr_accessor :shop_language
|
@@ -74,7 +82,7 @@ module Seoshop
|
|
74
82
|
# Does a DELETE request to the url with the params
|
75
83
|
#
|
76
84
|
# @param url [String] the relative path in the Seoshop API
|
77
|
-
def delete(url
|
85
|
+
def delete(url)
|
78
86
|
preform(url, :delete) do
|
79
87
|
return connection.delete(url)
|
80
88
|
end
|
@@ -11,8 +11,10 @@ module Seoshop
|
|
11
11
|
body = env[:response].body.response || env[:response].body
|
12
12
|
elsif env[:status] == 401
|
13
13
|
raise Seoshop::ResponseParser::HTTPUnauthorized.new 'invalid Seoshop credentials'
|
14
|
+
elsif env[:status] == 403
|
15
|
+
raise Seoshop::ResponseParser::HTTPForbidden.new env[:response].body.message
|
14
16
|
elsif env[:status] == 404
|
15
|
-
raise Seoshop::ResponseParser::HTTPNotFound.new
|
17
|
+
raise Seoshop::ResponseParser::HTTPNotFound.new env[:response].body.message
|
16
18
|
elsif env[:status] == 429
|
17
19
|
rate_limits = env[:response_headers]['X-RateLimit-Remaining'].split('/')
|
18
20
|
rate_limits_reset = env[:response_headers]['X-RateLimit-Reset'].split('/')
|
@@ -93,6 +95,7 @@ module Seoshop
|
|
93
95
|
end
|
94
96
|
|
95
97
|
class Seoshop::ResponseParser::RateLimit < Exception; end
|
98
|
+
class Seoshop::ResponseParser::HTTPForbidden < Exception; end
|
96
99
|
class Seoshop::ResponseParser::HTTPUnauthorized < Exception; end
|
97
100
|
class Seoshop::ResponseParser::HTTPNotFound < Exception; end
|
98
101
|
end
|
data/lib/seoshop-api/version.rb
CHANGED
data/seoshop-api.gemspec
CHANGED
@@ -24,8 +24,8 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency 'oauth2'
|
25
25
|
spec.add_dependency 'faraday'
|
26
26
|
spec.add_dependency 'typhoeus'
|
27
|
-
spec.add_dependency 'faraday_middleware'
|
27
|
+
spec.add_dependency 'faraday_middleware', '0.9.0'
|
28
28
|
spec.add_dependency 'rash'
|
29
29
|
spec.add_dependency 'oj'
|
30
30
|
spec.add_dependency 'activesupport'
|
31
|
-
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,139 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seoshop-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nimrod Popper
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: oauth2
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: faraday
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: typhoeus
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: faraday_middleware
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 0.9.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 0.9.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rash
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: oj
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: activesupport
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
description: Ruby wrapper for SEOshop API - written by Yotpo
|
@@ -143,7 +143,7 @@ executables: []
|
|
143
143
|
extensions: []
|
144
144
|
extra_rdoc_files: []
|
145
145
|
files:
|
146
|
-
- .gitignore
|
146
|
+
- ".gitignore"
|
147
147
|
- Gemfile
|
148
148
|
- Gemfile.lock
|
149
149
|
- LICENSE.txt
|
@@ -151,10 +151,14 @@ files:
|
|
151
151
|
- Rakefile
|
152
152
|
- lib/seoshop-api.rb
|
153
153
|
- lib/seoshop-api/api/account.rb
|
154
|
+
- lib/seoshop-api/api/brand.rb
|
154
155
|
- lib/seoshop-api/api/customer.rb
|
155
156
|
- lib/seoshop-api/api/order.rb
|
156
157
|
- lib/seoshop-api/api/product.rb
|
158
|
+
- lib/seoshop-api/api/product_category.rb
|
157
159
|
- lib/seoshop-api/api/shop.rb
|
160
|
+
- lib/seoshop-api/api/shop_script.rb
|
161
|
+
- lib/seoshop-api/api/shop_tracking.rb
|
158
162
|
- lib/seoshop-api/client.rb
|
159
163
|
- lib/seoshop-api/core/response_parser.rb
|
160
164
|
- lib/seoshop-api/version.rb
|
@@ -169,17 +173,17 @@ require_paths:
|
|
169
173
|
- lib
|
170
174
|
required_ruby_version: !ruby/object:Gem::Requirement
|
171
175
|
requirements:
|
172
|
-
- -
|
176
|
+
- - ">="
|
173
177
|
- !ruby/object:Gem::Version
|
174
178
|
version: '0'
|
175
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
180
|
requirements:
|
177
|
-
- -
|
181
|
+
- - ">="
|
178
182
|
- !ruby/object:Gem::Version
|
179
183
|
version: '0'
|
180
184
|
requirements: []
|
181
185
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.
|
186
|
+
rubygems_version: 2.4.5
|
183
187
|
signing_key:
|
184
188
|
specification_version: 4
|
185
189
|
summary: Ruby wrapper for SEOshop API - written by Yotpo
|