Class: MockChargebee::Models::Subscription

Inherits:
Base
  • Object
show all
Defined in:
lib/mock_chargebee/models/subscription.rb

Constant Summary collapse

RESOURCE_ID_PREFIX =
"sub"

Class Method Summary collapse

Methods inherited from Base

already_exists!, load_fixtures, repositories, unique_id

Class Method Details

.cancel(id, params) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/mock_chargebee/models/subscription.rb', line 51

def self.cancel(id, params)
  subscription = find(id)
  subscription.merge!(params.merge({ "status" => "cancelled", "canceled_at" => Time.now.to_i }))
  repositories.subscriptions.store(subscription["id"], subscription)

  subscription
end

.create(params) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/mock_chargebee/models/subscription.rb', line 14

def self.create(params)
  Validations::Subscriptions::CreateParams.validate_required(params)
  params["id"] ||= unique_id

  customer_params = params.delete("customer")
  customer = Customer.create(customer_params)

  coupon_ids = params.delete("coupon_ids")
  params["coupons"] = Services::CouponsForSubscription.new(coupon_ids).call

  params["customer_id"] = customer["id"]

  subscription = subscription_fixture.merge(params)

  repositories.subscriptions.store(params["id"], subscription)

  [subscription, customer]
end

.create_for_customer(customer, params) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/mock_chargebee/models/subscription.rb', line 33

def self.create_for_customer(customer, params)
  params["id"] ||= unique_id
  subscription = subscription_fixture.merge(params)
  subscription["customer_id"] = customer["id"]

  repositories.subscriptions.store(subscription["id"], subscription)

  subscription
end

.find(id) ⇒ Object



10
11
12
# File 'lib/mock_chargebee/models/subscription.rb', line 10

def self.find(id)
  repositories.subscriptions.fetch(id)
end

.reactivate(id, params) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/mock_chargebee/models/subscription.rb', line 59

def self.reactivate(id, params)
  subscription = find(id)
  subscription.merge!(params.merge({ "status" => "active", "started_at" => Time.now.to_i }))
  repositories.subscriptions.store(subscription["id"], subscription)

  subscription
end

.update(id, params) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/mock_chargebee/models/subscription.rb', line 43

def self.update(id, params)
  subscription = find(id)
  subscription.merge!(params)
  repositories.subscriptions.store(subscription["id"], subscription)

  subscription
end