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

Instance Attribute Details

#alertsObject

Returns the value of attribute alerts.



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

def alerts
  @alerts
end

#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

#errorsObject

Returns the value of attribute errors.



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

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



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

def activate
	if self.status != "activate"
		self.status = "activate"
		self.class.put(base_url(:subscriptions, :code => self.code, :status => "activate"), default_header).parsed_response
		true
	end
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

#createObject



63
64
65
# File 'lib/moip/models/subscription.rb', line 63

def create
	self.class.post(base_url(:subscriptions), default_header(self.to_json)).parsed_response
end

#create_with_costumerObject

To Do



68
69
70
71
# File 'lib/moip/models/subscription.rb', line 68

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



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

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



52
53
54
# File 'lib/moip/models/subscription.rb', line 52

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

#loadObject



57
58
59
60
# File 'lib/moip/models/subscription.rb', line 57

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

#suspendObject



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

def suspend
	if self.status != "suspend"
		self.status = "suspend"	
		self.class.put(base_url(:subscriptions, :code => self.code, :status => "suspend"), default_header).parsed_response
		true
	end
end

#update_amount(plan, new_amount) ⇒ Object



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

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



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

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



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

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