beyond_api 0.1.0.pre
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 +17 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +4 -0
- data/CONTRIBUTING.md +48 -0
- data/GETTING_STARTED.md +0 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +55 -0
- data/LICENSE +19 -0
- data/README.md +51 -0
- data/Rakefile +11 -0
- data/beyond_api.gemspec +31 -0
- data/bin/console +18 -0
- data/bin/setup +8 -0
- data/lib/beyond_api.rb +37 -0
- data/lib/beyond_api/connection.rb +30 -0
- data/lib/beyond_api/ext.rb +43 -0
- data/lib/beyond_api/request.rb +55 -0
- data/lib/beyond_api/resources/base.rb +17 -0
- data/lib/beyond_api/resources/carts.rb +547 -0
- data/lib/beyond_api/resources/categories.rb +168 -0
- data/lib/beyond_api/resources/categories_view.rb +142 -0
- data/lib/beyond_api/resources/checkout_settings.rb +48 -0
- data/lib/beyond_api/resources/newsletter_target.rb +97 -0
- data/lib/beyond_api/resources/order_settings.rb +80 -0
- data/lib/beyond_api/resources/orders.rb +968 -0
- data/lib/beyond_api/resources/payment_methods.rb +192 -0
- data/lib/beyond_api/resources/product_attribute_definitions.rb +109 -0
- data/lib/beyond_api/resources/product_settings.rb +28 -0
- data/lib/beyond_api/resources/products.rb +245 -0
- data/lib/beyond_api/resources/products/attachments.rb +119 -0
- data/lib/beyond_api/resources/products/availability.rb +177 -0
- data/lib/beyond_api/resources/products/custom_attributes.rb +141 -0
- data/lib/beyond_api/resources/products/images.rb +165 -0
- data/lib/beyond_api/resources/products/searches.rb +52 -0
- data/lib/beyond_api/resources/products/variation_properties.rb +87 -0
- data/lib/beyond_api/resources/products_view.rb +158 -0
- data/lib/beyond_api/resources/scopes.rb +31 -0
- data/lib/beyond_api/resources/script_tags.rb +122 -0
- data/lib/beyond_api/resources/shipping_zones.rb +324 -0
- data/lib/beyond_api/resources/shop.rb +561 -0
- data/lib/beyond_api/resources/signers.rb +63 -0
- data/lib/beyond_api/resources/token.rb +41 -0
- data/lib/beyond_api/resources/users.rb +376 -0
- data/lib/beyond_api/resources/variations.rb +145 -0
- data/lib/beyond_api/resources/variations/availability.rb +105 -0
- data/lib/beyond_api/resources/webhook_subscriptions.rb +176 -0
- data/lib/beyond_api/session.rb +121 -0
- data/lib/beyond_api/utils.rb +51 -0
- data/lib/beyond_api/version.rb +3 -0
- data/lib/generators/beyond_api/install_generator.rb +13 -0
- data/lib/generators/templates/beyond_api_initializer.rb +29 -0
- metadata +194 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BeyondApi
|
4
|
+
module Utils
|
5
|
+
extend self
|
6
|
+
|
7
|
+
def handle_response(response, status, respond_with_true: false)
|
8
|
+
if status.between?(200, 299)
|
9
|
+
return true if respond_with_true
|
10
|
+
response = sanitize_response(response)
|
11
|
+
BeyondApi.configuration.object_struct_responses ? to_object_struct(response) : response
|
12
|
+
else
|
13
|
+
BeyondApi::Error.new(response)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_object_struct(data)
|
18
|
+
if data.is_a? Hash
|
19
|
+
return OpenStruct.new(data.map { |key, val| [key, to_object_struct(val)] }.to_h)
|
20
|
+
elsif data.is_a? Array
|
21
|
+
return data.map { |o| to_object_struct(o) }
|
22
|
+
else
|
23
|
+
return data
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def sanitize_response(hash)
|
28
|
+
{}.tap do |h|
|
29
|
+
hash.each do |key, value|
|
30
|
+
next if key == "_links" && BeyondApi.configuration.remove_response_links
|
31
|
+
key = sanitize_key(key) if BeyondApi.configuration.remove_response_key_underscores
|
32
|
+
h[key.underscore.to_sym] = transform(value)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def sanitize_key(key)
|
38
|
+
key.chars.first == "_" ? key[1..-1] : key
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def transform(thing)
|
44
|
+
case thing
|
45
|
+
when Hash; sanitize_response(thing)
|
46
|
+
when Array; thing.map { |v| transform(v) }
|
47
|
+
else; thing
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BeyondApi
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
source_root File.expand_path("../../templates", __FILE__)
|
7
|
+
|
8
|
+
def copy_initializer
|
9
|
+
template "beyond_api_initializer.rb", "config/initializers/beyond_api.rb"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
BeyondApi.setup do |config|
|
4
|
+
# ==> Client configuration
|
5
|
+
config.client_id = nil
|
6
|
+
config.client_secret = nil
|
7
|
+
|
8
|
+
# ==> Api configuration
|
9
|
+
# Configure the open connection timeout in seconds. Default is 2 seconds.
|
10
|
+
# config.open_timeout = 2.seconds
|
11
|
+
|
12
|
+
# Configure the request timeout in seconds. Default is 5 seconds.
|
13
|
+
# config.timeout = 5.seconds
|
14
|
+
|
15
|
+
# ==> Response configuration
|
16
|
+
# Configure if :_links should be removed from response. Default is false and
|
17
|
+
# :_links are gonna be part of the response.
|
18
|
+
# config.remove_response_links = false
|
19
|
+
|
20
|
+
# Configure if first character underescores should be removed on response hash
|
21
|
+
# keys. For example, if set to true, :_id will become :id. Default is false.
|
22
|
+
# config.remove_response_key_underscores = false
|
23
|
+
|
24
|
+
# Configure if responses should be transformed to ObjectStructs. If set to
|
25
|
+
# true, it gives you the posibility to access response data on a doted way.
|
26
|
+
# With OpenStructs => response.embeded.products.first.id
|
27
|
+
# Without OpenStructs => response["embeded"]["products"].first["id"]
|
28
|
+
# config.object_struct_responses = false
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: beyond_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0.pre
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Unai Abrisketa
|
8
|
+
- Kathia Salazar
|
9
|
+
- German San Emeterio
|
10
|
+
autorequire:
|
11
|
+
bindir: exe
|
12
|
+
cert_chain: []
|
13
|
+
date: 2019-10-03 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bundler
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '2.0'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rake
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '10.0'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '10.0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rspec
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '3.0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: yard
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0.9'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0.9'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: faker
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2.2'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '2.2'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: dotenv
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '2.7'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '2.7'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: faraday
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0.15'
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0.15'
|
113
|
+
description:
|
114
|
+
email:
|
115
|
+
executables: []
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".gitignore"
|
120
|
+
- ".rspec"
|
121
|
+
- ".travis.yml"
|
122
|
+
- ".yardopts"
|
123
|
+
- CHANGELOG.md
|
124
|
+
- CONTRIBUTING.md
|
125
|
+
- GETTING_STARTED.md
|
126
|
+
- Gemfile
|
127
|
+
- Gemfile.lock
|
128
|
+
- LICENSE
|
129
|
+
- README.md
|
130
|
+
- Rakefile
|
131
|
+
- beyond_api.gemspec
|
132
|
+
- bin/console
|
133
|
+
- bin/setup
|
134
|
+
- lib/beyond_api.rb
|
135
|
+
- lib/beyond_api/connection.rb
|
136
|
+
- lib/beyond_api/ext.rb
|
137
|
+
- lib/beyond_api/request.rb
|
138
|
+
- lib/beyond_api/resources/base.rb
|
139
|
+
- lib/beyond_api/resources/carts.rb
|
140
|
+
- lib/beyond_api/resources/categories.rb
|
141
|
+
- lib/beyond_api/resources/categories_view.rb
|
142
|
+
- lib/beyond_api/resources/checkout_settings.rb
|
143
|
+
- lib/beyond_api/resources/newsletter_target.rb
|
144
|
+
- lib/beyond_api/resources/order_settings.rb
|
145
|
+
- lib/beyond_api/resources/orders.rb
|
146
|
+
- lib/beyond_api/resources/payment_methods.rb
|
147
|
+
- lib/beyond_api/resources/product_attribute_definitions.rb
|
148
|
+
- lib/beyond_api/resources/product_settings.rb
|
149
|
+
- lib/beyond_api/resources/products.rb
|
150
|
+
- lib/beyond_api/resources/products/attachments.rb
|
151
|
+
- lib/beyond_api/resources/products/availability.rb
|
152
|
+
- lib/beyond_api/resources/products/custom_attributes.rb
|
153
|
+
- lib/beyond_api/resources/products/images.rb
|
154
|
+
- lib/beyond_api/resources/products/searches.rb
|
155
|
+
- lib/beyond_api/resources/products/variation_properties.rb
|
156
|
+
- lib/beyond_api/resources/products_view.rb
|
157
|
+
- lib/beyond_api/resources/scopes.rb
|
158
|
+
- lib/beyond_api/resources/script_tags.rb
|
159
|
+
- lib/beyond_api/resources/shipping_zones.rb
|
160
|
+
- lib/beyond_api/resources/shop.rb
|
161
|
+
- lib/beyond_api/resources/signers.rb
|
162
|
+
- lib/beyond_api/resources/token.rb
|
163
|
+
- lib/beyond_api/resources/users.rb
|
164
|
+
- lib/beyond_api/resources/variations.rb
|
165
|
+
- lib/beyond_api/resources/variations/availability.rb
|
166
|
+
- lib/beyond_api/resources/webhook_subscriptions.rb
|
167
|
+
- lib/beyond_api/session.rb
|
168
|
+
- lib/beyond_api/utils.rb
|
169
|
+
- lib/beyond_api/version.rb
|
170
|
+
- lib/generators/beyond_api/install_generator.rb
|
171
|
+
- lib/generators/templates/beyond_api_initializer.rb
|
172
|
+
homepage: https://github.com/ePages-de/beyond_api-ruby_client
|
173
|
+
licenses: []
|
174
|
+
metadata: {}
|
175
|
+
post_install_message:
|
176
|
+
rdoc_options: []
|
177
|
+
require_paths:
|
178
|
+
- lib
|
179
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: 2.5.1
|
184
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">"
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: 1.3.1
|
189
|
+
requirements: []
|
190
|
+
rubygems_version: 3.0.3
|
191
|
+
signing_key:
|
192
|
+
specification_version: 4
|
193
|
+
summary: Ruby client to access the Beyond API
|
194
|
+
test_files: []
|