seoshop-api 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGQwMzc5YzYzMGJiYTRjYjBlOTliMGYyNTQwMzI2NjFkN2Y2OGZlNA==
5
- data.tar.gz: !binary |-
6
- NGY2NWVkNDNkNDZjOTZiNTZhM2NjZjY2ZjY1ZmFkNjc4MzFiMmZlOA==
7
- !binary "U0hBNTEy":
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,8 @@
1
+ module Seoshop
2
+ module Brand
3
+ def get_brand(brand_id)
4
+ response = get("#{@shop_language}/brands/#{brand_id}.json")
5
+ response.body ? response.body['brand'] : false
6
+ end
7
+ end
8
+ end
@@ -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
@@ -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, params)
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 'invalid Seoshop language'
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
@@ -1,3 +1,3 @@
1
1
  module Seoshop
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -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.3
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: 2013-08-13 00:00:00.000000000 Z
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: '0'
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: '0'
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.0.6
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