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.



17
18
19
# File 'lib/mousetrap/subscription.rb', line 17

def canceled_at
  @canceled_at
end

#created_atObject

Attributes that come from the API.



17
18
19
# File 'lib/mousetrap/subscription.rb', line 17

def created_at
  @created_at
end

#credit_card_expiration_dateObject

Attributes that come from the API.



17
18
19
# File 'lib/mousetrap/subscription.rb', line 17

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.



17
18
19
# File 'lib/mousetrap/subscription.rb', line 17

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_typeObject

Attributes that come from the API.



17
18
19
# File 'lib/mousetrap/subscription.rb', line 17

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.



17
18
19
# File 'lib/mousetrap/subscription.rb', line 17

def id
  @id
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



25
26
27
# File 'lib/mousetrap/subscription.rb', line 25

def self.[](code)
  raise_api_unsupported_error
end

.allObject



29
30
31
# File 'lib/mousetrap/subscription.rb', line 29

def self.all
  raise_api_unsupported_error
end

.destroy_allObject



33
34
35
# File 'lib/mousetrap/subscription.rb', line 33

def self.destroy_all
  raise_api_unsupported_error
end

.exists?(code) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/mousetrap/subscription.rb', line 37

def self.exists?(code)
  raise_api_unsupported_error
end

.new_from_api(attributes) ⇒ Object



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

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



72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/mousetrap/subscription.rb', line 72

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



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/mousetrap/subscription.rb', line 41

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,
    :billing_zip_code             => billing_zip_code,
  }
end

#attributes_for_apiObject



54
55
56
# File 'lib/mousetrap/subscription.rb', line 54

def attributes_for_api
  self.class.attributes_for_api(attributes)
end

#destroyObject



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

def destroy
  self.class.raise_api_unsupported_error
end

#exists?Boolean

Returns:

  • (Boolean)


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

def exists?
  self.class.raise_api_unsupported_error
end