Class: GeniusReferrals::ProductsResource
- Defined in:
- lib/genius_referrals/resources/products.rb
Instance Method Summary collapse
-
#create(account_slug, product) ⇒ Object
Create a product using the
productwrapper. -
#create_variant(account_slug, product_slug, variant) ⇒ Object
Create a product variant.
-
#delete(account_slug, product_slug) ⇒ Object
Delete one product.
-
#delete_variant(account_slug, product_slug, variant_id) ⇒ Object
Delete one product variant.
-
#list(account_slug, page: 1, limit: 10, filter: nil, sort: nil) ⇒ Object
List products for an account.
-
#patch(account_slug, product_slug, **fields) ⇒ Object
Patch a product with unwrapped partial fields.
-
#patch_variant(account_slug, product_slug, variant_id, **fields) ⇒ Object
Patch one product variant with unwrapped partial fields.
-
#patch_variant_price(account_slug, product_slug, variant_id, currency_code, amount:) ⇒ Object
Patch a variant price with the live-doc unwrapped
amountfield. -
#retrieve(account_slug, product_slug, filter: nil) ⇒ Object
Retrieve one product.
-
#retrieve_variant(account_slug, product_slug, variant_id, filter: nil) ⇒ Object
Retrieve one product variant.
-
#update(account_slug, product_slug, product) ⇒ Object
Replace a product using the
productwrapper. -
#update_variant(account_slug, product_slug, variant_id, variant) ⇒ Object
Replace one product variant.
-
#variants(account_slug, product_slug, page: 1, limit: 10) ⇒ Object
List product variants.
Methods inherited from Resource
Constructor Details
This class inherits a constructor from GeniusReferrals::Resource
Instance Method Details
#create(account_slug, product) ⇒ Object
Create a product using the product wrapper.
11 12 13 |
# File 'lib/genius_referrals/resources/products.rb', line 11 def create(account_slug, product) request('POST', "/accounts/#{esc(account_slug)}/products", json: wrapped('product', product)) end |
#create_variant(account_slug, product_slug, variant) ⇒ Object
Create a product variant.
47 48 49 50 51 |
# File 'lib/genius_referrals/resources/products.rb', line 47 def create_variant(account_slug, product_slug, variant) request('POST', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants", json: wrapped('variant', variant)) end |
#delete(account_slug, product_slug) ⇒ Object
Delete one product.
35 36 37 |
# File 'lib/genius_referrals/resources/products.rb', line 35 def delete(account_slug, product_slug) request('DELETE', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}") end |
#delete_variant(account_slug, product_slug, variant_id) ⇒ Object
Delete one product variant.
75 76 77 |
# File 'lib/genius_referrals/resources/products.rb', line 75 def delete_variant(account_slug, product_slug, variant_id) request('DELETE', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants/#{esc(variant_id)}") end |
#list(account_slug, page: 1, limit: 10, filter: nil, sort: nil) ⇒ Object
List products for an account.
4 5 6 7 8 |
# File 'lib/genius_referrals/resources/products.rb', line 4 def list(account_slug, page: 1, limit: 10, filter: nil, sort: nil) page('GET', "/accounts/#{esc(account_slug)}/products", params: compact(page: page, limit: limit, filter: filter, sort: sort)) end |
#patch(account_slug, product_slug, **fields) ⇒ Object
Patch a product with unwrapped partial fields.
30 31 32 |
# File 'lib/genius_referrals/resources/products.rb', line 30 def patch(account_slug, product_slug, **fields) request('PATCH', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}", json: fields) end |
#patch_variant(account_slug, product_slug, variant_id, **fields) ⇒ Object
Patch one product variant with unwrapped partial fields.
68 69 70 71 72 |
# File 'lib/genius_referrals/resources/products.rb', line 68 def patch_variant(account_slug, product_slug, variant_id, **fields) request('PATCH', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants/#{esc(variant_id)}", json: fields) end |
#patch_variant_price(account_slug, product_slug, variant_id, currency_code, amount:) ⇒ Object
Patch a variant price with the live-doc unwrapped amount field.
80 81 82 83 84 |
# File 'lib/genius_referrals/resources/products.rb', line 80 def patch_variant_price(account_slug, product_slug, variant_id, currency_code, amount:) request('PATCH', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants/#{esc(variant_id)}/prices/#{esc(currency_code)}", json: { 'amount' => amount }) end |
#retrieve(account_slug, product_slug, filter: nil) ⇒ Object
Retrieve one product.
16 17 18 19 20 |
# File 'lib/genius_referrals/resources/products.rb', line 16 def retrieve(account_slug, product_slug, filter: nil) request('GET', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}", params: compact(filter: filter)) end |
#retrieve_variant(account_slug, product_slug, variant_id, filter: nil) ⇒ Object
Retrieve one product variant.
54 55 56 57 58 |
# File 'lib/genius_referrals/resources/products.rb', line 54 def retrieve_variant(account_slug, product_slug, variant_id, filter: nil) request('GET', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants/#{esc(variant_id)}", params: compact(filter: filter)) end |
#update(account_slug, product_slug, product) ⇒ Object
Replace a product using the product wrapper.
23 24 25 26 27 |
# File 'lib/genius_referrals/resources/products.rb', line 23 def update(account_slug, product_slug, product) request('PUT', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}", json: wrapped('product', product)) end |
#update_variant(account_slug, product_slug, variant_id, variant) ⇒ Object
Replace one product variant.
61 62 63 64 65 |
# File 'lib/genius_referrals/resources/products.rb', line 61 def update_variant(account_slug, product_slug, variant_id, variant) request('PUT', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants/#{esc(variant_id)}", json: wrapped('variant', variant)) end |
#variants(account_slug, product_slug, page: 1, limit: 10) ⇒ Object
List product variants.
40 41 42 43 44 |
# File 'lib/genius_referrals/resources/products.rb', line 40 def variants(account_slug, product_slug, page: 1, limit: 10) page('GET', "/accounts/#{esc(account_slug)}/products/#{esc(product_slug)}/variants", params: { page: page, limit: limit }) end |