class ProcessOut::Plan
Attributes
amount[R]
cancel_url[R]
created_at[R]
currency[R]
id[R]
interval[R]
metadata[R]
name[R]
project[R]
project_id[R]
return_url[R]
sandbox[R]
trial_period[R]
url[R]
Public Class Methods
new(client, data = {})
click to toggle source
Initializes the Plan
object Params:
client
-
ProcessOut
client instance data
-
data that can be used to fill the object
# File lib/processout/plan.rb, line 100 def initialize(client, data = {}) @client = client self.id = data.fetch(:id, nil) self.project = data.fetch(:project, nil) self.project_id = data.fetch(:project_id, nil) self.url = data.fetch(:url, nil) self.name = data.fetch(:name, nil) self.amount = data.fetch(:amount, nil) self.currency = data.fetch(:currency, nil) self.metadata = data.fetch(:metadata, nil) self.interval = data.fetch(:interval, nil) self.trial_period = data.fetch(:trial_period, nil) self.return_url = data.fetch(:return_url, nil) self.cancel_url = data.fetch(:cancel_url, nil) self.sandbox = data.fetch(:sandbox, nil) self.created_at = data.fetch(:created_at, nil) end
Public Instance Methods
all(options = {})
click to toggle source
Get all the plans. Params:
options
-
Hash
of options
# File lib/processout/plan.rb, line 226 def all(options = {}) self.prefill(options) request = Request.new(@client) path = "/plans" data = { } response = Response.new(request.get(path, data, options)) return_values = Array.new a = Array.new body = response.body for v in body['plans'] tmp = Plan.new(@client) tmp.fill_with_data(v) a.push(tmp) end return_values.push(a) return_values[0] end
amount=(val)
click to toggle source
# File lib/processout/plan.rb, line 59 def amount=(val) @amount = val end
cancel_url=(val)
click to toggle source
# File lib/processout/plan.rb, line 83 def cancel_url=(val) @cancel_url = val end
create(options = {})
click to toggle source
Create a new plan. Params:
options
-
Hash
of options
# File lib/processout/plan.rb, line 256 def create(options = {}) self.prefill(options) request = Request.new(@client) path = "/plans" data = { "id" => @id, "name" => @name, "amount" => @amount, "currency" => @currency, "interval" => @interval, "trial_period" => @trial_period, "metadata" => @metadata, "return_url" => @return_url, "cancel_url" => @cancel_url } response = Response.new(request.post(path, data, options)) return_values = Array.new body = response.body body = body["plan"] return_values.push(self.fill_with_data(body)) return_values[0] end
created_at=(val)
click to toggle source
# File lib/processout/plan.rb, line 91 def created_at=(val) @created_at = val end
currency=(val)
click to toggle source
# File lib/processout/plan.rb, line 63 def currency=(val) @currency = val end
end(options = {})
click to toggle source
Delete a plan. Subscriptions linked to this plan won't be affected. Params:
options
-
Hash
of options
# File lib/processout/plan.rb, line 348 def end(options = {}) self.prefill(options) request = Request.new(@client) path = "/plans/" + CGI.escape(@id) + "" data = { } response = Response.new(request.delete(path, data, options)) return_values = Array.new return_values.push(response.success) return_values[0] end
fill_with_data(data)
click to toggle source
Fills the object with data coming from the API Params:
data
-
Hash
of data coming from the API
# File lib/processout/plan.rb, line 148 def fill_with_data(data) if data.nil? return self end if data.include? "id" self.id = data["id"] end if data.include? "project" self.project = data["project"] end if data.include? "project_id" self.project_id = data["project_id"] end if data.include? "url" self.url = data["url"] end if data.include? "name" self.name = data["name"] end if data.include? "amount" self.amount = data["amount"] end if data.include? "currency" self.currency = data["currency"] end if data.include? "metadata" self.metadata = data["metadata"] end if data.include? "interval" self.interval = data["interval"] end if data.include? "trial_period" self.trial_period = data["trial_period"] end if data.include? "return_url" self.return_url = data["return_url"] end if data.include? "cancel_url" self.cancel_url = data["cancel_url"] end if data.include? "sandbox" self.sandbox = data["sandbox"] end if data.include? "created_at" self.created_at = data["created_at"] end self end
find(plan_id, options = {})
click to toggle source
Find a plan by its ID. Params:
plan_id
-
ID of the plan
options
-
Hash
of options
# File lib/processout/plan.rb, line 291 def find(plan_id, options = {}) self.prefill(options) request = Request.new(@client) path = "/plans/" + CGI.escape(plan_id) + "" data = { } response = Response.new(request.get(path, data, options)) return_values = Array.new body = response.body body = body["plan"] obj = Plan.new(@client) return_values.push(obj.fill_with_data(body)) return_values[0] end
id=(val)
click to toggle source
# File lib/processout/plan.rb, line 27 def id=(val) @id = val end
interval=(val)
click to toggle source
# File lib/processout/plan.rb, line 71 def interval=(val) @interval = val end
metadata=(val)
click to toggle source
# File lib/processout/plan.rb, line 67 def metadata=(val) @metadata = val end
name=(val)
click to toggle source
# File lib/processout/plan.rb, line 55 def name=(val) @name = val end
new(data = {})
click to toggle source
Create a new Plan
using the current client
# File lib/processout/plan.rb, line 121 def new(data = {}) Plan.new(@client, data) end
prefill(data)
click to toggle source
Prefills the object with the data passed as parameters Params:
data
-
Hash
of data
# File lib/processout/plan.rb, line 201 def prefill(data) if data.nil? return self end self.id = data.fetch(:id, self.id) self.project = data.fetch(:project, self.project) self.project_id = data.fetch(:project_id, self.project_id) self.url = data.fetch(:url, self.url) self.name = data.fetch(:name, self.name) self.amount = data.fetch(:amount, self.amount) self.currency = data.fetch(:currency, self.currency) self.metadata = data.fetch(:metadata, self.metadata) self.interval = data.fetch(:interval, self.interval) self.trial_period = data.fetch(:trial_period, self.trial_period) self.return_url = data.fetch(:return_url, self.return_url) self.cancel_url = data.fetch(:cancel_url, self.cancel_url) self.sandbox = data.fetch(:sandbox, self.sandbox) self.created_at = data.fetch(:created_at, self.created_at) self end
project=(val)
click to toggle source
# File lib/processout/plan.rb, line 31 def project=(val) if val.nil? @project = val return end if val.instance_of? Project @project = val else obj = Project.new(@client) obj.fill_with_data(val) @project = obj end end
project_id=(val)
click to toggle source
# File lib/processout/plan.rb, line 47 def project_id=(val) @project_id = val end
return_url=(val)
click to toggle source
# File lib/processout/plan.rb, line 79 def return_url=(val) @return_url = val end
sandbox=(val)
click to toggle source
# File lib/processout/plan.rb, line 87 def sandbox=(val) @sandbox = val end
save(options = {})
click to toggle source
Save the updated plan attributes. This action won't affect subscriptions already linked to this plan. Params:
options
-
Hash
of options
# File lib/processout/plan.rb, line 318 def save(options = {}) self.prefill(options) request = Request.new(@client) path = "/plans/" + CGI.escape(@id) + "" data = { "name" => @name, "trial_period" => @trial_period, "metadata" => @metadata, "return_url" => @return_url, "cancel_url" => @cancel_url } response = Response.new(request.put(path, data, options)) return_values = Array.new body = response.body body = body["plan"] return_values.push(self.fill_with_data(body)) return_values[0] end
to_json(options)
click to toggle source
Overrides the JSON marshaller to only send the fields we want
# File lib/processout/plan.rb, line 126 def to_json(options) { "id": self.id, "project": self.project, "project_id": self.project_id, "url": self.url, "name": self.name, "amount": self.amount, "currency": self.currency, "metadata": self.metadata, "interval": self.interval, "trial_period": self.trial_period, "return_url": self.return_url, "cancel_url": self.cancel_url, "sandbox": self.sandbox, "created_at": self.created_at, }.to_json end
trial_period=(val)
click to toggle source
# File lib/processout/plan.rb, line 75 def trial_period=(val) @trial_period = val end
url=(val)
click to toggle source
# File lib/processout/plan.rb, line 51 def url=(val) @url = val end