storenvy-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 +7 -0
- data/.gitignore +3 -1
- data/lib/storenvy/client.rb +5 -5
- data/lib/storenvy/core/response_parser.rb +3 -72
- data/lib/storenvy/version.rb +1 -1
- data/storenvy-api.gemspec +3 -3
- metadata +30 -59
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/Gemfile.lock +0 -65
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f1d5e349914df7d69b3cd6badfcfa30f225379f3
|
4
|
+
data.tar.gz: be5b07d7967560fa838e801fbb7b7e2fc9c47839
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b3bd18b180482fa1f1891ddc5fcbac4c10a64598d6bafd1fd1a98c6635a0b15f90234881b0f358f533135e9d97cf443473a8a0702bf7c8cc6f661aa54b8e9aaf
|
7
|
+
data.tar.gz: 3f99296f3089adc4e2497c86c130eb7c57e05c340f37aa216d95419f99d3c99a233275a3f3fe9c2e9104c2652e36801b793a16f00d218400aa8a946d02ac1965
|
data/.gitignore
CHANGED
data/lib/storenvy/client.rb
CHANGED
@@ -3,6 +3,7 @@ require 'faraday'
|
|
3
3
|
require 'typhoeus'
|
4
4
|
require 'typhoeus/adapters/faraday'
|
5
5
|
require 'faraday_middleware'
|
6
|
+
require 'faraday_middleware/parse_oj'
|
6
7
|
require 'storenvy/core/response_parser'
|
7
8
|
require 'storenvy/version'
|
8
9
|
require 'storenvy/api/order'
|
@@ -122,11 +123,10 @@ module Storenvy
|
|
122
123
|
|
123
124
|
conn.use Storenvy::ResponseParser
|
124
125
|
|
125
|
-
# Set the response to be
|
126
|
-
conn.response :
|
126
|
+
# Set the response to be mashified
|
127
|
+
conn.response :mashify
|
127
128
|
|
128
|
-
# Setting request and response to use JSON
|
129
|
-
conn.request :oj
|
129
|
+
# Setting request and response to use JSON using Oj
|
130
130
|
conn.response :oj
|
131
131
|
|
132
132
|
# Set to use instrumentals to get time logs
|
@@ -147,4 +147,4 @@ module Storenvy
|
|
147
147
|
end
|
148
148
|
end
|
149
149
|
end
|
150
|
-
end
|
150
|
+
end
|
@@ -10,83 +10,14 @@ module Storenvy
|
|
10
10
|
if env[:status] >= 200 || env[:status] < 300
|
11
11
|
body = env[:response].body.response || env[:response].body
|
12
12
|
elsif env[:status] == 401
|
13
|
-
raise
|
13
|
+
raise HTTPUnauthorized.new 'invalid storeenvy credentials'
|
14
14
|
elsif env[:response] && env[:response].body && env[:response].body.status
|
15
15
|
body = env[:response].body.status
|
16
16
|
end
|
17
17
|
env[:body] = body
|
18
18
|
end
|
19
19
|
end
|
20
|
-
|
21
|
-
|
22
|
-
#
|
23
|
-
# Response middleware that decodes the response body from JSON.
|
24
|
-
#
|
25
|
-
class ParseOj < FaradayMiddleware::ResponseMiddleware
|
26
|
-
dependency do
|
27
|
-
require 'oj' unless defined?(::Oj)
|
28
|
-
end
|
29
|
-
|
30
|
-
define_parser do |body|
|
31
|
-
begin
|
32
|
-
::Oj.load(body, mode: :compat) unless body.strip.empty?
|
33
|
-
rescue Oj::ParseError => e
|
34
|
-
end
|
20
|
+
class HTTPUnauthorized < Exception
|
35
21
|
end
|
36
22
|
end
|
37
|
-
|
38
|
-
# Request middleware that encodes the body as JSON.
|
39
|
-
#
|
40
|
-
# Processes only requests with matching Content-type or those without a type.
|
41
|
-
# If a request doesn't have a type but has a body, it sets the Content-type
|
42
|
-
# to JSON MIME-type.
|
43
|
-
#
|
44
|
-
# Doesn't try to encode bodies that already are in string form.
|
45
|
-
class EncodeOj < Faraday::Middleware
|
46
|
-
CONTENT_TYPE = 'Content-Type'.freeze
|
47
|
-
MIME_TYPE = 'application/json'.freeze
|
48
|
-
|
49
|
-
dependency do
|
50
|
-
require 'oj' unless defined?(::Oj)
|
51
|
-
end
|
52
|
-
|
53
|
-
def call(env)
|
54
|
-
match_content_type(env) do |data|
|
55
|
-
env[:body] = encode data
|
56
|
-
end
|
57
|
-
@app.call env
|
58
|
-
end
|
59
|
-
|
60
|
-
def encode(data)
|
61
|
-
::Oj.dump data
|
62
|
-
end
|
63
|
-
|
64
|
-
def match_content_type(env)
|
65
|
-
if process_request?(env)
|
66
|
-
env[:request_headers][CONTENT_TYPE] ||= MIME_TYPE
|
67
|
-
yield env[:body] unless env[:body].respond_to?(:to_str)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def process_request?(env)
|
72
|
-
type = request_type(env)
|
73
|
-
has_body?(env) and (type.empty? or type == MIME_TYPE)
|
74
|
-
end
|
75
|
-
|
76
|
-
def has_body?(env)
|
77
|
-
body = env[:body] and !(body.respond_to?(:to_str) and body.empty?)
|
78
|
-
end
|
79
|
-
|
80
|
-
def request_type(env)
|
81
|
-
type = env[:request_headers][CONTENT_TYPE].to_s
|
82
|
-
type = type.split(';', 2).first if type.index(';')
|
83
|
-
type
|
84
|
-
end
|
85
|
-
|
86
|
-
class Storenvy::ResponseParser::HTTPUnauthorized < Exception
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
Faraday.register_middleware :response, oj: Storenvy::ParseOj
|
92
|
-
Faraday.register_middleware :request, oj: Storenvy::EncodeOj
|
23
|
+
end
|
data/lib/storenvy/version.rb
CHANGED
data/storenvy-api.gemspec
CHANGED
@@ -18,14 +18,14 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler"
|
21
|
+
spec.add_development_dependency "bundler"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
|
24
24
|
spec.add_dependency "oauth2"
|
25
25
|
spec.add_dependency 'faraday'
|
26
26
|
spec.add_dependency 'typhoeus'
|
27
27
|
spec.add_dependency 'faraday_middleware'
|
28
|
-
spec.add_dependency '
|
29
|
-
spec.add_dependency '
|
28
|
+
spec.add_dependency 'faraday_middleware-parse_oj'
|
29
|
+
spec.add_dependency 'hashie'
|
30
30
|
spec.add_dependency 'activesupport'
|
31
31
|
end
|
metadata
CHANGED
@@ -1,158 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: storenvy-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Omri Cohen
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-08-27 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
19
|
+
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
26
|
+
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: oauth2
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: faraday
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: typhoeus
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: faraday_middleware
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
98
|
+
name: faraday_middleware-parse_oj
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
112
|
+
name: hashie
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: activesupport
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - ">="
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - ">="
|
156
137
|
- !ruby/object:Gem::Version
|
157
138
|
version: '0'
|
158
139
|
description: Ruby wrapper for Sotrenvy API - written by Yotpo
|
@@ -162,11 +143,8 @@ executables: []
|
|
162
143
|
extensions: []
|
163
144
|
extra_rdoc_files: []
|
164
145
|
files:
|
165
|
-
- .gitignore
|
166
|
-
- .ruby-gemset
|
167
|
-
- .ruby-version
|
146
|
+
- ".gitignore"
|
168
147
|
- Gemfile
|
169
|
-
- Gemfile.lock
|
170
148
|
- LICENSE.txt
|
171
149
|
- README.md
|
172
150
|
- Rakefile
|
@@ -183,32 +161,25 @@ files:
|
|
183
161
|
homepage: https://developers.storenvy.com/docs
|
184
162
|
licenses:
|
185
163
|
- MIT
|
164
|
+
metadata: {}
|
186
165
|
post_install_message:
|
187
166
|
rdoc_options: []
|
188
167
|
require_paths:
|
189
168
|
- lib
|
190
169
|
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
-
none: false
|
192
170
|
requirements:
|
193
|
-
- -
|
171
|
+
- - ">="
|
194
172
|
- !ruby/object:Gem::Version
|
195
173
|
version: '0'
|
196
|
-
segments:
|
197
|
-
- 0
|
198
|
-
hash: 1645622815384724283
|
199
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
175
|
requirements:
|
202
|
-
- -
|
176
|
+
- - ">="
|
203
177
|
- !ruby/object:Gem::Version
|
204
178
|
version: '0'
|
205
|
-
segments:
|
206
|
-
- 0
|
207
|
-
hash: 1645622815384724283
|
208
179
|
requirements: []
|
209
180
|
rubyforge_project:
|
210
|
-
rubygems_version:
|
181
|
+
rubygems_version: 2.6.11
|
211
182
|
signing_key:
|
212
|
-
specification_version:
|
183
|
+
specification_version: 4
|
213
184
|
summary: Ruby wrapper for Sotrenvy API - written by Yotpo
|
214
185
|
test_files: []
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
storenvy-api-ruby
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-1.9.3-p429
|
data/Gemfile.lock
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
storenvy-api (0.0.3)
|
5
|
-
activesupport
|
6
|
-
faraday
|
7
|
-
faraday_middleware
|
8
|
-
oauth2
|
9
|
-
oj
|
10
|
-
rash
|
11
|
-
typhoeus
|
12
|
-
|
13
|
-
GEM
|
14
|
-
remote: https://rubygems.org/
|
15
|
-
specs:
|
16
|
-
activesupport (4.0.0)
|
17
|
-
i18n (~> 0.6, >= 0.6.4)
|
18
|
-
minitest (~> 4.2)
|
19
|
-
multi_json (~> 1.3)
|
20
|
-
thread_safe (~> 0.1)
|
21
|
-
tzinfo (~> 0.3.37)
|
22
|
-
atomic (1.1.9)
|
23
|
-
ethon (0.5.12)
|
24
|
-
ffi (>= 1.3.0)
|
25
|
-
mime-types (~> 1.18)
|
26
|
-
faraday (0.8.7)
|
27
|
-
multipart-post (~> 1.1)
|
28
|
-
faraday_middleware (0.9.0)
|
29
|
-
faraday (>= 0.7.4, < 0.9)
|
30
|
-
ffi (1.9.0)
|
31
|
-
hashie (2.0.5)
|
32
|
-
httpauth (0.2.0)
|
33
|
-
i18n (0.6.4)
|
34
|
-
jwt (0.1.8)
|
35
|
-
multi_json (>= 1.5)
|
36
|
-
mime-types (1.23)
|
37
|
-
minitest (4.7.5)
|
38
|
-
multi_json (1.7.7)
|
39
|
-
multi_xml (0.5.4)
|
40
|
-
multipart-post (1.2.0)
|
41
|
-
oauth2 (0.9.1)
|
42
|
-
faraday (~> 0.8)
|
43
|
-
httpauth (~> 0.1)
|
44
|
-
jwt (~> 0.1.4)
|
45
|
-
multi_json (~> 1.0)
|
46
|
-
multi_xml (~> 0.5)
|
47
|
-
rack (~> 1.2)
|
48
|
-
oj (2.1.2)
|
49
|
-
rack (1.5.2)
|
50
|
-
rake (10.0.4)
|
51
|
-
rash (0.4.0)
|
52
|
-
hashie (~> 2.0.0)
|
53
|
-
thread_safe (0.1.0)
|
54
|
-
atomic
|
55
|
-
typhoeus (0.6.3)
|
56
|
-
ethon (~> 0.5.11)
|
57
|
-
tzinfo (0.3.37)
|
58
|
-
|
59
|
-
PLATFORMS
|
60
|
-
ruby
|
61
|
-
|
62
|
-
DEPENDENCIES
|
63
|
-
bundler (~> 1.3)
|
64
|
-
rake
|
65
|
-
storenvy-api!
|