Class: Moip::Subscription

Inherits:
Model
  • Object
show all
Includes:
HTTParty, Header
Defined in:
lib/moip/models/subscription.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Header

#auth, #base_url, #default_header

Methods inherited from Model

build, #set_parameters, #to_json, #validate_response

Instance Attribute Details

#amountObject

Returns the value of attribute amount.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def amount
  @amount
end

#codeObject

Returns the value of attribute code.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def code
  @code
end

#creation_dateObject

Returns the value of attribute creation_date.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def creation_date
  @creation_date
end

#customerObject

Returns the value of attribute customer.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def customer
  @customer
end

#expiration_dateObject

Returns the value of attribute expiration_date.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def expiration_date
  @expiration_date
end

#invoiceObject

Returns the value of attribute invoice.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def invoice
  @invoice
end

#messageObject

Returns the value of attribute message.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def message
  @message
end

#next_invoice_dateObject

Returns the value of attribute next_invoice_date.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def next_invoice_date
  @next_invoice_date
end

#planObject

Returns the value of attribute plan.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def plan
  @plan
end

#statusObject

Returns the value of attribute status.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def status
  @status
end

#subscriptionsObject

Returns the value of attribute subscriptions.



6
7
8
# File 'lib/moip/models/subscription.rb', line 6

def subscriptions
  @subscriptions
end

Instance Method Details

#activateObject



96
97
98
# File 'lib/moip/models/subscription.rb', line 96

def activate
	self.class.put(base_url(:subscriptions, :code => self.code, :status => "activate"), default_header({}.to_json)).parsed_response
end

#active?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/moip/models/subscription.rb', line 22

def active?
	self.satus == "ACTIVE"
end

#attributesObject



13
14
15
16
17
18
19
20
# File 'lib/moip/models/subscription.rb', line 13

def attributes
	{
    "code" => code,
    "amount" => amount,
    "plan" => plan,
    "customer" => customer
	}
end

#cancelObject



100
101
102
# File 'lib/moip/models/subscription.rb', line 100

def cancel
	self.class.put(base_url(:subscriptions, :code => self.code, :status => "cancel"), default_header({}.to_json)).parsed_response
end

#createObject



71
72
73
74
75
76
77
78
# File 'lib/moip/models/subscription.rb', line 71

def create
	if self.valid?
		response = self.class.post(base_url(:subscriptions), default_header(self.to_json)).parsed_response
		self.validate_response response
	else
		false
	end
end

#create_with_costumerObject

To Do



81
82
83
84
# File 'lib/moip/models/subscription.rb', line 81

def create_with_costumer
	# To Do: will not be developed this feature right now, if you
	#       want to fork and develop this feature, be welcome.
end

#find(code) ⇒ Object



87
88
89
90
# File 'lib/moip/models/subscription.rb', line 87

def find code
	response = self.class.get(base_url(:subscriptions, :code => code), default_header).parsed_response
	self.set_parameters response unless response.nil?
end

#invoicesObject



60
61
62
# File 'lib/moip/models/subscription.rb', line 60

def invoices		
	@invoices ||= Moip::Invoice.build(:subscription_code => self.code).invoices
end

#loadObject



65
66
67
68
# File 'lib/moip/models/subscription.rb', line 65

def load
	list = self.class.get(base_url(:subscriptions), default_header).parsed_response
	self.subscriptions = list["subscriptions"]
end

#suspendObject



92
93
94
# File 'lib/moip/models/subscription.rb', line 92

def suspend
	self.class.put(base_url(:subscriptions, :code => self.code, :status => "suspend"), default_header({}.to_json)).parsed_response
end

#update_amount(plan, new_amount) ⇒ Object



121
122
123
124
125
126
127
128
129
130
# File 'lib/moip/models/subscription.rb', line 121

def update_amount plan, new_amount
	hash = {}

	self.find self.code

	hash[:plan] = { :code => plan }
	hash[:amount] = new_amount

	self.class.put(base_url(:subscriptions, :code => self.code), default_header(hash.to_json)).parsed_response
end

#update_next_invoice(plan, next_invoice_date) ⇒ Object



113
114
115
116
117
118
119
# File 'lib/moip/models/subscription.rb', line 113

def update_next_invoice plan, next_invoice_date
	hash = {}
	hash[:plan] = { :code => plan }
	hash[:next_invoice_date] = next_invoice_date

	self.class.put(base_url(:subscriptions, :code => self.code), default_header(hash.to_json)).parsed_response
end

#update_plan(new_plan) ⇒ Object



105
106
107
108
109
110
# File 'lib/moip/models/subscription.rb', line 105

def update_plan new_plan
	hash = {}
	hash[:plan] = { :code => new_plan }

	self.class.put(base_url(:subscriptions, :code => self.code), default_header(hash.to_json)).parsed_response
end