Class: Mousetrap::Subscription

Inherits:
Resource
  • Object
show all
Defined in:
lib/mousetrap/subscription.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Resource

#initialize, #new?

Constructor Details

This class inherits a constructor from Mousetrap::Resource

Instance Attribute Details

#billing_first_nameObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def billing_first_name
  @billing_first_name
end

#billing_last_nameObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def billing_last_name
  @billing_last_name
end

#billing_zip_codeObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def billing_zip_code
  @billing_zip_code
end

#canceled_atObject

Attributes that come from the API.



19
20
21
# File 'lib/mousetrap/subscription.rb', line 19

def canceled_at
  @canceled_at
end

#created_atObject

Attributes that come from the API.



19
20
21
# File 'lib/mousetrap/subscription.rb', line 19

def created_at
  @created_at
end

#credit_card_expiration_dateObject

Attributes that come from the API.



19
20
21
# File 'lib/mousetrap/subscription.rb', line 19

def credit_card_expiration_date
  @credit_card_expiration_date
end

#credit_card_expiration_monthObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def credit_card_expiration_month
  @credit_card_expiration_month
end

#credit_card_expiration_yearObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def credit_card_expiration_year
  @credit_card_expiration_year
end

#credit_card_last_four_digitsObject

Attributes that come from the API.



19
20
21
# File 'lib/mousetrap/subscription.rb', line 19

def credit_card_last_four_digits
  @credit_card_last_four_digits
end

#credit_card_numberObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def credit_card_number
  @credit_card_number
end

#credit_card_security_codeObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def credit_card_security_code
  @credit_card_security_code
end

#credit_card_typeObject

Attributes that come from the API.



19
20
21
# File 'lib/mousetrap/subscription.rb', line 19

def credit_card_type
  @credit_card_type
end

#customer_codeObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def customer_code
  @customer_code
end

#idObject

Attributes that come from the API.



19
20
21
# File 'lib/mousetrap/subscription.rb', line 19

def id
  @id
end

#initial_bill_dateObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def initial_bill_date
  @initial_bill_date
end

#planObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def plan
  @plan
end

#plan_codeObject

Attributes we send to the API.



4
5
6
# File 'lib/mousetrap/subscription.rb', line 4

def plan_code
  @plan_code
end

Class Method Details

.[](code) ⇒ Object



27
28
29
# File 'lib/mousetrap/subscription.rb', line 27

def self.[](code)
  raise_api_unsupported_error
end

.allObject



31
32
33
# File 'lib/mousetrap/subscription.rb', line 31

def self.all
  raise_api_unsupported_error
end

.destroy_allObject



35
36
37
# File 'lib/mousetrap/subscription.rb', line 35

def self.destroy_all
  raise_api_unsupported_error
end

.exists?(code) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/mousetrap/subscription.rb', line 39

def self.exists?(code)
  raise_api_unsupported_error
end

.new_from_api(attributes) ⇒ Object



70
71
72
73
74
# File 'lib/mousetrap/subscription.rb', line 70

def self.new_from_api(attributes)
  subscription = new(attributes_from_api(attributes))
  subscription.plan = Plan.new_from_api(attributes['plans']['plan'])
  subscription
end

.update(customer_code, attributes) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/mousetrap/subscription.rb', line 76

def self.update(customer_code, attributes)
  mutated_attributes = attributes_for_api(attributes)

  mutated_attributes.delete_if { |k, v| v.blank? }

  response = put_resource(
    'customers',
    'edit-subscription',
    customer_code,
    mutated_attributes
  )

  raise response['error'] if response['error']
end

Instance Method Details

#attributesObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/mousetrap/subscription.rb', line 43

def attributes
  {
    :id                           => id,
    :plan_code                    => plan_code,
    :billing_first_name           => billing_first_name,
    :billing_last_name            => billing_last_name,
    :credit_card_number           => credit_card_number,
    :credit_card_expiration_month => credit_card_expiration_month,
    :credit_card_expiration_year  => credit_card_expiration_year,
    :credit_card_security_code    => credit_card_security_code,
    :billing_zip_code             => billing_zip_code,
    :initial_bill_date            => initial_bill_date,
  }
end

#attributes_for_apiObject



58
59
60
# File 'lib/mousetrap/subscription.rb', line 58

def attributes_for_api
  self.class.attributes_for_api(attributes)
end

#destroyObject



62
63
64
# File 'lib/mousetrap/subscription.rb', line 62

def destroy
  self.class.raise_api_unsupported_error
end

#exists?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/mousetrap/subscription.rb', line 66

def exists?
  self.class.raise_api_unsupported_error
end