Class: Simplify::Plan

Inherits:
Hash
  • Object
show all
Defined in:
lib/simplify/plan.rb

Overview

A Plan object.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authenticationObject

Authentication object used to access the API (See Simplify::Authentication for details)



37
38
39
# File 'lib/simplify/plan.rb', line 37

def authentication
  @authentication
end

Class Method Details

.create(parms, *auth) ⇒ Object

Creates an Plan object

parms

a hash of parameters; valid keys are:

  • amount Amount of payment for the plan in the smallest unit of your currency. Example: 100 = $1.00USD required

  • billingCycle How the plan is billed to the customer. Values must be AUTO (indefinitely until the customer cancels) or FIXED (a fixed number of billing cycles). [default: AUTO]

  • billingCycleLimit The number of fixed billing cycles for a plan. Only used if the billingCycle parameter is set to FIXED. Example: 4

  • currency Currency code (ISO-4217) for the plan. Must match the currency associated with your account. [default: USD] required

  • frequency Frequency of payment for the plan. Used in conjunction with frequencyPeriod. Valid values are “DAILY”, “WEEKLY”, “MONTHLY” and “YEARLY”. [default: MONTHLY] required

  • frequencyPeriod Period of frequency of payment for the plan. Example: if the frequency is weekly, and periodFrequency is 2, then the subscription is billed bi-weekly. [min value: 1, default: 1] required

  • name Name of the plan [max length: 50, min length: 2] required

  • renewalReminderLeadDays If set, how many days before the next billing cycle that a renewal reminder is sent to the customer. If null, then no emails are sent. Minimum value is 7 if set.

  • trialPeriod Plan free trial period selection. Must be Days, Weeks, or Month [default: NONE] required

  • trialPeriodQuantity Quantity of the trial period. Must be greater than 0 and a whole number. [min value: 1]

auth

Authentication information used for the API call. If no value is passed the global keys Simplify::public_key and Simplify::private_key are used. For backwards compatibility the public and private keys may be passed instead of the authentication object.

Returns a Plan object.



75
76
77
78
79
80
81
82
83
# File 'lib/simplify/plan.rb', line 75

def self.create(parms, *auth)

    auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
    h = Simplify::PaymentsApi.execute("plan", 'create', parms, auth_obj)
    obj = Plan.new()
    obj.authentication = auth_obj
    obj = obj.merge!(h)
    obj
end

.find(id, *auth) ⇒ Object

Retrieve a Plan object from the API

id

ID of object to retrieve

auth

Authentication information used for the API call. If no value is passed the global keys Simplify::public_key and Simplify::private_key are used. For backwards compatibility the public and private keys may be passed instead of the authentication object.

Returns a Plan object.



117
118
119
120
121
122
123
124
125
# File 'lib/simplify/plan.rb', line 117

def self.find(id, *auth)

    auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
    h = Simplify::PaymentsApi.execute("plan", 'show', {"id" => id}, auth_obj)
    obj = Plan.new()
    obj.authentication = auth_obj
    obj = obj.merge!(h)
    obj
end

.list(criteria = nil, *auth) ⇒ Object

Retrieve Plan objects.

criteria

a hash of parameters; valid keys are:

  • filter Filters to apply to the list.

  • max Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]

  • offset Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]

  • sorting Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either asc for ascending or desc for descending). Sortable properties are: dateCreated amount frequency name id.

auth

Authentication information used for the API call. If no value is passed the global keys Simplify::public_key and Simplify::private_key are used. For backwards compatibility the public and private keys may be passed instead of the authentication object.

Returns an object where the list property contains the list of Plan objects and the total property contains the total number of Plan objects available for the given criteria.



101
102
103
104
105
106
107
108
109
110
# File 'lib/simplify/plan.rb', line 101

def self.list(criteria = nil, *auth)

    auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
    h = Simplify::PaymentsApi.execute("plan", 'list', criteria, auth_obj)
    obj = Plan.new()
    obj.authentication = auth_obj
    obj = obj.merge!(h)
    obj

end

Instance Method Details

#deleteObject

Delete this object



86
87
88
89
90
# File 'lib/simplify/plan.rb', line 86

def delete()
    h = Simplify::PaymentsApi.execute("plan", 'delete', self, self.authentication)
    self.merge!(h)
    self
end

#private_keyObject

Returns the private key used when accessing this object. Deprecated: please use ‘authentication’ instead.



50
51
52
# File 'lib/simplify/plan.rb', line 50

def private_key
    return self.authentication.private_key
end

#private_key=(k) ⇒ Object

Sets the private key used when accessing this object. Deprecated: please use ‘authentication’ instead.



55
56
57
# File 'lib/simplify/plan.rb', line 55

def private_key=(k)
    return self.authentication.private_key = k
end

#public_keyObject

Returns the public key used when accessing this object. Deprecated: please use ‘authentication’ instead.



40
41
42
# File 'lib/simplify/plan.rb', line 40

def public_key
    return self.authentication.public_key
end

#public_key=(k) ⇒ Object

Sets the public key used when accessing this object. Deprecated: please use ‘authentication’ instead.



45
46
47
# File 'lib/simplify/plan.rb', line 45

def public_key=(k)
    return self.authentication.public_key = k
end

#updateObject

Updates this object

The properties that can be updated:

  • name Name of the plan. [min length: 2] (required)



131
132
133
134
135
# File 'lib/simplify/plan.rb', line 131

def update()
      h = Simplify::PaymentsApi.execute("plan", 'update', self, self.authentication)
      self.merge!(h)
      self
end