Class: GeniusReferrals::ProductsResource

Inherits:
Resource
  • Object
show all
Defined in:
lib/genius_referrals/resources/products.rb

Instance Method Summary collapse

Methods inherited from Resource

#initialize

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(, product)
  request('POST', "/accounts/#{esc()}/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(, product_slug, variant)
  request('POST',
          "/accounts/#{esc()}/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(, product_slug)
  request('DELETE', "/accounts/#{esc()}/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(, product_slug, variant_id)
  request('DELETE', "/accounts/#{esc()}/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(, page: 1, limit: 10, filter: nil, sort: nil)
  page('GET',
       "/accounts/#{esc()}/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(, product_slug, **fields)
  request('PATCH', "/accounts/#{esc()}/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(, product_slug, variant_id, **fields)
  request('PATCH',
          "/accounts/#{esc()}/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(, product_slug, variant_id, currency_code, amount:)
  request('PATCH',
          "/accounts/#{esc()}/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(, product_slug, filter: nil)
  request('GET',
          "/accounts/#{esc()}/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(, product_slug, variant_id, filter: nil)
  request('GET',
          "/accounts/#{esc()}/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(, product_slug, product)
  request('PUT',
          "/accounts/#{esc()}/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(, product_slug, variant_id, variant)
  request('PUT',
          "/accounts/#{esc()}/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(, product_slug, page: 1, limit: 10)
  page('GET',
       "/accounts/#{esc()}/products/#{esc(product_slug)}/variants",
       params: { page: page, limit: limit })
end