Module: StripeMock::RequestHandlers::Products

Included in:
Instance
Defined in:
lib/stripe_mock/request_handlers/products.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/stripe_mock/request_handlers/products.rb', line 4

def self.included(base)
  base.add_handler 'post /v1/products',        :create_product
  base.add_handler 'get /v1/products/(.*)',    :retrieve_product
  base.add_handler 'post /v1/products/(.*)',   :update_product
  base.add_handler 'get /v1/products',         :list_products
  base.add_handler 'delete /v1/products/(.*)', :destroy_product
end

Instance Method Details

#create_product(_route, _method_url, params, _headers) ⇒ Object



12
13
14
15
16
# File 'lib/stripe_mock/request_handlers/products.rb', line 12

def create_product(_route, _method_url, params, _headers)
  params[:id] ||= new_id('prod')
  validate_create_product_params(params)
  products[params[:id]] = Data.mock_product(params)
end

#destroy_product(route, method_url, _params, _headers) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/stripe_mock/request_handlers/products.rb', line 35

def destroy_product(route, method_url, _params, _headers)
  id = method_url.match(route).captures.first
  assert_existence :product, id, products[id]

  products.delete(id)
  { id: id, object: 'product', deleted: true }
end

#list_products(_route, _method_url, params, _headers) ⇒ Object



30
31
32
33
# File 'lib/stripe_mock/request_handlers/products.rb', line 30

def list_products(_route, _method_url, params, _headers)
  limit = params[:limit] || 10
  Data.mock_list_object(products.values.take(limit), params)
end

#retrieve_product(route, method_url, _params, _headers) ⇒ Object



18
19
20
21
# File 'lib/stripe_mock/request_handlers/products.rb', line 18

def retrieve_product(route, method_url, _params, _headers)
  id = method_url.match(route).captures.first
  assert_existence :product, id, products[id]
end

#update_product(route, method_url, params, _headers) ⇒ Object



23
24
25
26
27
28
# File 'lib/stripe_mock/request_handlers/products.rb', line 23

def update_product(route, method_url, params, _headers)
  id = method_url.match(route).captures.first
  product = assert_existence :product, id, products[id]

  product.merge!(params)
end