Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
f12099e
wip
k4th Aug 5, 2024
75e162c
wip
k4th Aug 5, 2024
19775a7
wip
k4th Aug 5, 2024
2516fa5
wip
k4th Aug 6, 2024
754fa04
wip
k4th Aug 6, 2024
c69d9d3
adds some endpoints
citin Aug 6, 2024
0f5ac37
require created files
citin Aug 6, 2024
b4455ec
Merge pull request #1 from citin/v2
k4th Aug 6, 2024
a30d087
Add endpoints
k4th Aug 6, 2024
3446eac
wip
k4th Aug 6, 2024
c089f9b
removes configs and refactor response
citin Aug 6, 2024
cb64540
Beyond api v2 (#63)
k4th Aug 6, 2024
84818d0
adds zeitwerk
citin Aug 6, 2024
7e5b115
V2 (#62)
k4th Aug 6, 2024
28f075d
Update fetch all (#64)
k4th Aug 6, 2024
96293f3
[wip] refactor connection and request
citin Aug 7, 2024
22a7403
Merge branch 'v2' of github.com:ePages-de/beyond_api-ruby_client into v2
citin Aug 7, 2024
51b8621
[WIP] refactor connection
citin Aug 7, 2024
3f06cc0
[WIP] refactor token call
citin Aug 7, 2024
ed0d19d
Wip v2 (#65)
k4th Aug 7, 2024
d12cdce
[WIP] add authentication
citin Aug 7, 2024
ca812fc
Wip v2 (#66)
k4th Aug 7, 2024
e2eaadc
refactor session, add autentication types (#67)
citin Aug 8, 2024
d4af644
Add webhook and signer endpoints (#68)
k4th Aug 8, 2024
d5ea45b
merge-pagination
citin Aug 8, 2024
c242501
Merge pull request #70 from citin/merge-pagination
citin Aug 8, 2024
e4de87e
adds parsed parameters in request
citin Aug 8, 2024
0e62e25
add @camelize_keys to connection
citin Aug 8, 2024
544df57
removes old /resources files
citin Aug 8, 2024
4b5ff93
update gem config and some linters
citin Aug 9, 2024
4128c2b
Update README.md
k4th Aug 13, 2024
ca15e56
Update README.md
k4th Aug 13, 2024
381f4d6
Update README.md
k4th Aug 13, 2024
a10d159
update dependencies definition
citin Aug 13, 2024
ff67041
adds error handling
citin Aug 13, 2024
4602916
Update README.md
k4th Aug 14, 2024
72606fe
Add tests
k4th Aug 15, 2024
10a1133
Rename variables
k4th Aug 16, 2024
e70ca11
Rename destroy endpoint methods to delete (#73)
k4th Aug 19, 2024
bbbf757
Update tests
k4th Aug 19, 2024
9a85954
Merge remote-tracking branch 'upstream/wip-v2' into add-tests
k4th Aug 19, 2024
4410f8c
Revert "Rename destroy endpoint methods to delete (#73)" (#74)
k4th Aug 19, 2024
6677db6
Update tests
k4th Aug 19, 2024
a5a7460
Add tests
k4th Aug 19, 2024
baab83d
Update tests
k4th Aug 19, 2024
4250ec3
Update tests
k4th Aug 19, 2024
a555f4b
replace destroy by delete
citin Aug 19, 2024
8758eca
Merge pull request #3 from citin/add-tests
k4th Aug 19, 2024
7d7de9e
Merge branch 'wip-v2' into add-tests
k4th Aug 19, 2024
776c62d
Add recordings
k4th Aug 19, 2024
fe61dae
fix rubocop linter
citin Aug 19, 2024
123457c
EPT-2950 Add tests (#75)
k4th Aug 19, 2024
028109c
Revert "EPT-2950 Add tests (#75)"
citin Aug 19, 2024
5dd203e
Merge pull request #77 from ePages-de/revert-75-add-tests
citin Aug 19, 2024
f40a769
Merge pull request #76 from citin/fix-linter
citin Aug 19, 2024
6a133eb
update docs, fix some errors
citin Aug 21, 2024
8341f7c
Merge pull request #80 from citin/improve-docs
citin Aug 21, 2024
b150767
EPT-2986 Add comments (#79)
k4th Aug 21, 2024
13c1056
EPT-2953 Add endpoints to upload images (#82)
k4th Aug 28, 2024
6dc1f65
adds services from authentication
citin Sep 3, 2024
e488f0d
[WIP] add tests
citin Sep 4, 2024
8c70b3f
fix dotenv for testing
citin Sep 6, 2024
922c1fd
Merge pull request #83 from citin/add-authentication-endpoints
citin Sep 6, 2024
fdb7ba5
Add customers endpoints (#84)
k4th Sep 9, 2024
dc83c3d
EPT-2966 Add carts endpoints (#85)
k4th Oct 3, 2024
1ee4d0e
Add shop endpoints (#87)
k4th Oct 7, 2024
3e7ccbf
Add webhooks endpoints (#86)
k4th Oct 7, 2024
5df83ed
Add endpoints for shop attributes and images (#89)
k4th Oct 15, 2024
3bdb42a
Add locations endpoint (#88)
kengallego Oct 15, 2024
7a93eda
Update README.md
citin Oct 21, 2024
a4e0b3f
Adds Storefront API endpoints (#91)
citin Oct 25, 2024
0bb065f
Fix params
unabris Oct 30, 2024
6a1796a
Rename things
unabris Oct 30, 2024
df4d042
Add product availability endpoints (#92)
k4th Oct 31, 2024
bafd0d6
Add products endpoint (#93)
kengallego Nov 5, 2024
87c8778
Update versions (#95)
k4th Jun 12, 2025
130b177
Upload image by url (#96)
k4th Jul 16, 2025
cf94613
Add variation endpoints (#97)
k4th Jul 22, 2025
7d41026
Fix update variation properties (#98)
kengallego Jul 23, 2025
d069da4
Add Search endpoint (#99)
kengallego Aug 14, 2025
2c2edd0
Add endpoint to upload external images to variations (#100)
unabris Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
V2 (#62)
* add product management category

* Fix namespaces
  • Loading branch information
k4th authored Aug 6, 2024
commit 7e5b115f0940763810a0f02a0d9f7880cab3b88d
1 change: 1 addition & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ PATH
beyond_api (0.24.2.pre)
faraday (~> 1.9.0)
faraday_middleware (~> 1.1)
zeitwerk

GEM
remote: https://rubygems.org/
Expand Down
3 changes: 2 additions & 1 deletion lib/beyond_api.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# frozen_string_literal: true

require 'zeitwerk'
require 'faraday'
require 'faraday_middleware'
require 'json'
require 'forwardeable'
require 'forwardable'

module BeyondApi
loader = Zeitwerk::Loader.for_gem
Expand Down
22 changes: 11 additions & 11 deletions lib/beyond_api/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ class Request
class << self
[:get, :delete].each do |method|
define_method(method) do |session, path, params = {}|
response = BeyondApi::Connection.default.send(method) do |request|
response = Connection.default.send(method) do |request|
request.url(session.api_url + path)
request.headers["Authorization"] = "Bearer #{session.access_token}" unless session.access_token.nil?
request.params = camelize_keys(params)
request.params = Utils.camelize_keys(params)
end

Response.new(response).handle
Expand All @@ -19,13 +19,13 @@ class << self

[:post, :put, :patch].each do |method|
define_method(method) do |session, path, body = {}, params = {}, content_type = 'application/json'|
response = BeyondApi::Connection.default.send(method) do |request|
response = Connection.default.send(method) do |request|
request.url(session.api_url + path)
request.headers["Authorization"] = "Bearer #{session.access_token}" unless session.access_token.nil?
request.headers["Content-Type"] = content_type
request.params = camelize_keys(params)
request.params = Utils.camelize_keys(params)

request.body = camelize_keys(body).to_json
request.body = Utils.camelize_keys(body).to_json
end

Response.new(response).handle
Expand All @@ -34,11 +34,11 @@ class << self
end

def self.upload(session, path, file_binary, content_type, params)
response = BeyondApi::Connection.default.post do |request|
response = Connection.default.post do |request|
request.url(session.api_url + path)
request.headers["Authorization"] = "Bearer #{session.access_token}" unless session.access_token.nil?
request.headers["Content-Type"] = content_type
request.params = camelize_keys(params)
request.params = Utils.camelize_keys(params)

request.body = file_binary
end
Expand All @@ -47,7 +47,7 @@ def self.upload(session, path, file_binary, content_type, params)
end

def self.token(url, params)
response = BeyondApi::Connection.token.post do |request|
response = Connection.token.post do |request|
request.url(url)
request.params = params
end
Expand All @@ -56,16 +56,16 @@ def self.token(url, params)
end

def self.upload_by_form(session, path, files, params)
response = BeyondApi::Connection.multipart.post do |request|
response = Connection.multipart.post do |request|
request.url(session.api_url + path)
request.headers["Authorization"] = "Bearer #{session.access_token}" unless session.access_token.nil?
request.options[:params_encoder] = Faraday::FlatParamsEncoder

request.params = camelize_keys(params)
request.params = Utils.camelize_keys(params)

files = files.split unless files.is_a? Array
upload_files = files.map{ |file| Faraday::FilePart.new(File.open(file),
BeyondApi::Utils.file_content_type(file)) }
Utils.file_content_type(file)) }
request.body = { image: upload_files }
end

Expand Down
4 changes: 2 additions & 2 deletions lib/beyond_api/response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ def deep_symbolize_keys!
body.deep_symbolize_keys!
end

def remove_initial_underscore!
def remove_initial_underscore(key)
key.starts_with?('_') ? key[1..-1] : key
end

def raise_error
raise BeyondApi::Error.new(body, status)
raise Error.new(body, status)
end
end
end
6 changes: 2 additions & 4 deletions lib/beyond_api/services/base_service.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
module BeyondApi
class BaseService
include BeyondApi::Utils

attr_reader :session

def initialize(session)
@session = session

# raise InvalidSessionError, "Invalid session" unless session.is_a? BeyondApi::Session
# raise InvalidSessionError, "Invalid session" unless session.is_a? Session
# raise InvalidSessionError, "Session api_url cannot be nil" if session.api_url.nil?
end

Expand All @@ -30,7 +28,7 @@ def adjust_response(result)
end

def fetch_page(url, params = {})
BeyondApi::Request.get(@session, url, params)
Request.get(@session, url, params)
end

def fetch_pages(url, resource, params, size)
Expand Down
2 changes: 1 addition & 1 deletion lib/beyond_api/services/checkout/shipping_zone.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module Checkout
class ShippingZone < BaseService
def all
# TODO: iterate over all pages
BeyondApi::Request.get(@session, "/shipping-zones")
Request.get(@session, "/shipping-zones")
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/beyond_api/services/product_management/category.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module BeyondApi
module ProductManagement
class Category < BaseService
def find(id)
BeyondApi::Request.get(@session, "/categories/#{id}")
Request.get(@session, "/categories/#{id}")
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/beyond_api/services/product_management/image.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module BeyondApi
module ProductManagement
class Image < BaseService
def all(id)
BeyondApi::Request.get(@session, "/products/#{id}/images")
Request.get(@session, "/products/#{id}/images")
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/beyond_api/services/product_management/product.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ module BeyondApi
module ProductManagement
class Product < BaseService
def all(params = {})
# BeyondApi::Request.get(@session, "/products", params)
# Request.get(@session, "/products", params)
fetch_all_pages("/products", :products, params)
end

def find(id)
BeyondApi::Request.get(@session, "/products/#{id}")
Request.get(@session, "/products/#{id}")
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/beyond_api/services/product_management/variation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module BeyondApi
module ProductManagement
class Variation < BaseService
def all(id)
BeyondApi::Request.get(@session, "/products/#{id}/variations")
Request.get(@session, "/products/#{id}/variations")
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module BeyondApi
module ProductManagement
class VariationImage < BaseService
def all(product_id, variation_id)
BeyondApi::Request.get(@session, "/products/#{product_id}/variations/#{variation_id}/images")
Request.get(@session, "/products/#{product_id}/variations/#{variation_id}/images")
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/beyond_api/services/product_view/category.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ def all(params = {})
end

def find(id)
BeyondApi::Request.get(@session, "/product-view/categories/#{id}")
Request.get(@session, "/product-view/categories/#{id}")
end

def preview(body, params = {})
BeyondApi::Request.post(@session,
Request.post(@session,
"/product-view/categories/preview",
body,
params)
Expand Down
2 changes: 1 addition & 1 deletion lib/beyond_api/services/shop/address.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module BeyondApi
module Shop
class Address < BaseService
def get
BeyondApi::Request.get(@session, "/shop/address")
Request.get(@session, "/shop/address")
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/beyond_api/services/shop/shop.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module BeyondApi
module Shop
class Shop < BaseService
def details
BeyondApi::Request.get(@session, "/shop")
Request.get(@session, "/shop")
end
end
end
Expand Down
6 changes: 3 additions & 3 deletions lib/beyond_api/services/storefront/script_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ class ScriptTag < BaseService
def all(params = {})
params.merge!(client_id: BeyondApi.configuration.client_id) if params[:only_own]

BeyondApi::Request.get(@session, "/script-tags", params)
Request.get(@session, "/script-tags", params)
end

def create(script_url)
BeyondApi::Request.post(@session, "/script-tags", script_url:)
Request.post(@session, "/script-tags", script_url:)
end

def delete(id)
BeyondApi::Request.delete(@session, "/script-tags/#{id}")
Request.delete(@session, "/script-tags/#{id}")
end
end
end
Expand Down
44 changes: 22 additions & 22 deletions lib/beyond_api/session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,91 +18,91 @@ def initialize(api_url:, access_token: nil, refresh_token: nil)
end

def carts
BeyondApi::Carts.new(self)
Carts.new(self)
end

def categories_view
BeyondApi::CategoriesView.new(self)
CategoriesView.new(self)
end

def categories
BeyondApi::Categories.new(self)
Categories.new(self)
end

def checkout_settings
BeyondApi::CheckoutSettings.new(self)
CheckoutSettings.new(self)
end

def customers
BeyondApi::Customers.new(self)
Customers.new(self)
end

def newsletter_target
BeyondApi::NewsletterTarget.new(self)
NewsletterTarget.new(self)
end

def order_settings
BeyondApi::OrderSettings.new(self)
OrderSettings.new(self)
end

def orders
BeyondApi::Orders.new(self)
Orders.new(self)
end

def payment_method_definitions
BeyondApi::PaymentMethodDefinitions.new(self)
PaymentMethodDefinitions.new(self)
end

def payment_methods
BeyondApi::PaymentMethods.new(self)
PaymentMethods.new(self)
end

def pickup_options
BeyondApi::PickupOptions.new(self)
PickupOptions.new(self)
end

def product_attribute_definitions
BeyondApi::ProductAttributeDefinitions.new(self)
ProductAttributeDefinitions.new(self)
end

def products_view
BeyondApi::ProductsView.new(self)
ProductsView.new(self)
end

def products
BeyondApi::Products.new(self)
Products.new(self)
end

def script_tags
BeyondApi::ScriptTags.new(self)
ScriptTags.new(self)
end

def shipping_zones
BeyondApi::ShippingZones.new(self)
ShippingZones.new(self)
end

def shop
BeyondApi::Shop.new(self)
Shop.new(self)
end

def signers
BeyondApi::Signers.new(self)
Signers.new(self)
end

def token
BeyondApi::Token.new(self)
Token.new(self)
end

def users
BeyondApi::Users.new(self)
Users.new(self)
end

def variations
BeyondApi::Variations.new(self)
Variations.new(self)
end

def webhook_subscriptions
BeyondApi::WebhookSubscriptions.new(self)
WebhookSubscriptions.new(self)
end
end
end
2 changes: 0 additions & 2 deletions lib/beyond_api/token.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ module BeyondApi
class Token
class InvalidSessionError < StandardError; end

include BeyondApi::Utils

attr_reader :session

def initialize(session)
Expand Down
6 changes: 2 additions & 4 deletions lib/beyond_api/utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@

module BeyondApi
module Utils
extend self

def file_content_type(file_path)
def self.file_content_type(file_path)
case File.extname(file_path)
when ".png"
"image/png"
Expand All @@ -17,7 +15,7 @@ def file_content_type(file_path)
end
end

def camelize_keys(hash)
def self.camelize_keys(hash)
hash.deep_transform_keys { |key| key.to_s.camelize(:lower) }
end
end
Expand Down