simplify 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/simplify.rb +2 -0
- data/lib/simplify/accesstoken.rb +111 -0
- data/lib/simplify/authentication.rb +64 -0
- data/lib/simplify/cardtoken.rb +32 -30
- data/lib/simplify/chargeback.rb +33 -32
- data/lib/simplify/constants.rb +8 -4
- data/lib/simplify/coupon.rb +42 -48
- data/lib/simplify/customer.rb +43 -48
- data/lib/simplify/deposit.rb +32 -31
- data/lib/simplify/event.rb +5 -13
- data/lib/simplify/invoice.rb +34 -33
- data/lib/simplify/invoiceitem.rb +42 -48
- data/lib/simplify/payment.rb +41 -46
- data/lib/simplify/paymentsapi.rb +158 -26
- data/lib/simplify/plan.rb +42 -48
- data/lib/simplify/refund.rb +41 -46
- data/lib/simplify/subscription.rb +42 -48
- data/lib/simplify/webhook.rb +42 -48
- metadata +70 -65
data/lib/simplify.rb
CHANGED
@@ -25,6 +25,8 @@
|
|
25
25
|
# SUCH DAMAGE.
|
26
26
|
#
|
27
27
|
|
28
|
+
require File.dirname(__FILE__) + '/simplify/authentication'
|
29
|
+
require File.dirname(__FILE__) + '/simplify/accesstoken'
|
28
30
|
require File.dirname(__FILE__) + '/simplify/cardtoken'
|
29
31
|
require File.dirname(__FILE__) + '/simplify/chargeback'
|
30
32
|
require File.dirname(__FILE__) + '/simplify/coupon'
|
@@ -0,0 +1,111 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2013, MasterCard International Incorporated
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# Redistributions of source code must retain the above copyright notice, this list of
|
9
|
+
# conditions and the following disclaimer.
|
10
|
+
# Redistributions in binary form must reproduce the above copyright notice, this list of
|
11
|
+
# conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
# Neither the name of the MasterCard International Incorporated nor the names of its
|
14
|
+
# contributors may be used to endorse or promote products derived from this software
|
15
|
+
# without specific prior written permission.
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
17
|
+
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
18
|
+
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
19
|
+
# SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
21
|
+
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
22
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
23
|
+
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
24
|
+
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
25
|
+
# SUCH DAMAGE.
|
26
|
+
#
|
27
|
+
|
28
|
+
module Simplify
|
29
|
+
|
30
|
+
require 'uri'
|
31
|
+
|
32
|
+
# An OAuth access token.
|
33
|
+
class AccessToken < Hash
|
34
|
+
|
35
|
+
#
|
36
|
+
# Construct a AccessToken from a hash.
|
37
|
+
#
|
38
|
+
def initialize(options = {})
|
39
|
+
self.merge!(options)
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
# Creates an OAuth access token object.
|
44
|
+
#
|
45
|
+
# auth_code: The OAuth authentication code.
|
46
|
+
# redirect_uri: The OAuth redirection URI.
|
47
|
+
# 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.
|
48
|
+
#
|
49
|
+
def self.create(auth_code, redirect_uri, *auth)
|
50
|
+
|
51
|
+
props = {
|
52
|
+
'grant_type' => 'authorization_code',
|
53
|
+
'code' => auth_code,
|
54
|
+
'redirect_uri' => redirect_uri
|
55
|
+
}
|
56
|
+
|
57
|
+
h = Simplify::PaymentsApi.send_auth_request(props, 'token', Simplify::PaymentsApi.create_auth_object(auth))
|
58
|
+
|
59
|
+
obj = AccessToken.new()
|
60
|
+
obj = obj.merge!(h)
|
61
|
+
|
62
|
+
obj
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
# Refreshes the OAuth access token
|
68
|
+
#
|
69
|
+
# 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.
|
70
|
+
#
|
71
|
+
def refresh(*auth)
|
72
|
+
|
73
|
+
rt = self['refresh_token']
|
74
|
+
if rt == nil || rt.empty?
|
75
|
+
raise ArgumentError.new("Cannot refresh access token; refresh token is invalid.")
|
76
|
+
end
|
77
|
+
|
78
|
+
props = {
|
79
|
+
'grant_type' => 'refresh_token',
|
80
|
+
'refresh_token' => rt
|
81
|
+
}
|
82
|
+
|
83
|
+
h = Simplify::PaymentsApi.send_auth_request(props, 'token', Simplify::PaymentsApi.create_auth_object(auth))
|
84
|
+
|
85
|
+
self.merge!(h)
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
# Revokes the access token.
|
91
|
+
#
|
92
|
+
# 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.
|
93
|
+
#
|
94
|
+
def revoke(*auth)
|
95
|
+
|
96
|
+
token = self['access_token']
|
97
|
+
if token == nil || token.empty?
|
98
|
+
raise ArgumentError.new("Cannot revoke access token; access token is invalid.")
|
99
|
+
end
|
100
|
+
|
101
|
+
props = {
|
102
|
+
'token' => token
|
103
|
+
}
|
104
|
+
|
105
|
+
h = Simplify::PaymentsApi.send_auth_request(props, 'revoke', Simplify::PaymentsApi.create_auth_object(auth))
|
106
|
+
self.clear
|
107
|
+
self
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2013, MasterCard International Incorporated
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# Redistributions of source code must retain the above copyright notice, this list of
|
9
|
+
# conditions and the following disclaimer.
|
10
|
+
# Redistributions in binary form must reproduce the above copyright notice, this list of
|
11
|
+
# conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
# Neither the name of the MasterCard International Incorporated nor the names of its
|
14
|
+
# contributors may be used to endorse or promote products derived from this software
|
15
|
+
# without specific prior written permission.
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
17
|
+
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
18
|
+
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
19
|
+
# SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
21
|
+
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
22
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
23
|
+
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
24
|
+
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
25
|
+
# SUCH DAMAGE.
|
26
|
+
#
|
27
|
+
|
28
|
+
module Simplify
|
29
|
+
|
30
|
+
# Holds Authentication information used when accessing the API
|
31
|
+
class Authentication
|
32
|
+
|
33
|
+
# Public key used to access the API.
|
34
|
+
attr_accessor :public_key
|
35
|
+
|
36
|
+
# Private key used to access the API.
|
37
|
+
attr_accessor :private_key
|
38
|
+
|
39
|
+
# OAuth token used to access the API.
|
40
|
+
attr_accessor :access_token
|
41
|
+
|
42
|
+
# Creates an Authentication object.
|
43
|
+
#
|
44
|
+
# options:: hash containing information to initialise the object. Valid options are :public_key, :private_key and :access_token.
|
45
|
+
# If no value for public_key is passed or the value is nil then Simplify::public_key is used. If no value for private_key is
|
46
|
+
# passed or the value is nil then Simplify::private_key is used.
|
47
|
+
#
|
48
|
+
def initialize(options = {})
|
49
|
+
|
50
|
+
@public_key = options[:public_key]
|
51
|
+
if @public_key == nil
|
52
|
+
@public_key = Simplify::public_key
|
53
|
+
end
|
54
|
+
|
55
|
+
@private_key = options[:private_key]
|
56
|
+
if private_key == nil
|
57
|
+
@private_key = Simplify::private_key
|
58
|
+
end
|
59
|
+
|
60
|
+
@access_token = options[:access_token]
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
data/lib/simplify/cardtoken.rb
CHANGED
@@ -33,12 +33,28 @@ module Simplify
|
|
33
33
|
#
|
34
34
|
class CardToken < Hash
|
35
35
|
|
36
|
-
#
|
37
|
-
attr_accessor :
|
36
|
+
# Authentication object used to access the API (See Simplify::Authentication for details)
|
37
|
+
attr_accessor :authentication
|
38
38
|
|
39
|
-
#
|
40
|
-
|
39
|
+
# Returns the public key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
40
|
+
def public_key
|
41
|
+
return self.authentication.public_key
|
42
|
+
end
|
43
|
+
|
44
|
+
# Sets the public key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
45
|
+
def public_key=(k)
|
46
|
+
return self.authentication.public_key = k
|
47
|
+
end
|
41
48
|
|
49
|
+
# Returns the private key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
50
|
+
def private_key
|
51
|
+
return self.authentication.private_key
|
52
|
+
end
|
53
|
+
|
54
|
+
# Sets the private key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
55
|
+
def private_key=(k)
|
56
|
+
return self.authentication.private_key = k
|
57
|
+
end
|
42
58
|
|
43
59
|
|
44
60
|
# Creates an CardToken object
|
@@ -57,44 +73,30 @@ class CardToken < Hash
|
|
57
73
|
# * <code>card => name</code> Name as appears on the card.
|
58
74
|
# * <code>card => number</code> Card number as it appears on the card. <b>required </b>
|
59
75
|
# * <code>key</code> Key used to create the card token.
|
60
|
-
#
|
61
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
76
|
+
# 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.
|
62
77
|
# Returns a CardToken object.
|
63
|
-
def self.create(parms,
|
64
|
-
if public_key == nil then
|
65
|
-
public_key = Simplify::public_key
|
66
|
-
end
|
67
|
-
if private_key == nil then
|
68
|
-
private_key = Simplify::private_key
|
69
|
-
end
|
78
|
+
def self.create(parms, *auth)
|
70
79
|
|
71
|
-
|
80
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
81
|
+
h = Simplify::PaymentsApi.execute("cardToken", 'create', parms, auth_obj)
|
72
82
|
obj = CardToken.new()
|
73
|
-
obj.
|
74
|
-
obj
|
75
|
-
obj = obj.merge(h)
|
83
|
+
obj.authentication = auth_obj
|
84
|
+
obj = obj.merge!(h)
|
76
85
|
obj
|
77
86
|
end
|
78
87
|
|
79
88
|
# Retrieve a CardToken object from the API
|
80
89
|
#
|
81
90
|
# id:: ID of object to retrieve
|
82
|
-
#
|
83
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
91
|
+
# 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.
|
84
92
|
# Returns a CardToken object.
|
85
|
-
def self.find(id,
|
86
|
-
if public_key == nil then
|
87
|
-
public_key = Simplify::public_key
|
88
|
-
end
|
89
|
-
if private_key == nil then
|
90
|
-
private_key = Simplify::private_key
|
91
|
-
end
|
93
|
+
def self.find(id, *auth)
|
92
94
|
|
93
|
-
|
95
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
96
|
+
h = Simplify::PaymentsApi.execute("cardToken", 'show', {"id" => id}, auth_obj)
|
94
97
|
obj = CardToken.new()
|
95
|
-
obj.
|
96
|
-
obj
|
97
|
-
obj = obj.merge(h)
|
98
|
+
obj.authentication = auth_obj
|
99
|
+
obj = obj.merge!(h)
|
98
100
|
obj
|
99
101
|
end
|
100
102
|
|
data/lib/simplify/chargeback.rb
CHANGED
@@ -33,12 +33,28 @@ module Simplify
|
|
33
33
|
#
|
34
34
|
class Chargeback < Hash
|
35
35
|
|
36
|
-
#
|
37
|
-
attr_accessor :
|
36
|
+
# Authentication object used to access the API (See Simplify::Authentication for details)
|
37
|
+
attr_accessor :authentication
|
38
38
|
|
39
|
-
#
|
40
|
-
|
39
|
+
# Returns the public key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
40
|
+
def public_key
|
41
|
+
return self.authentication.public_key
|
42
|
+
end
|
41
43
|
|
44
|
+
# Sets the public key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
45
|
+
def public_key=(k)
|
46
|
+
return self.authentication.public_key = k
|
47
|
+
end
|
48
|
+
|
49
|
+
# Returns the private key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
50
|
+
def private_key
|
51
|
+
return self.authentication.private_key
|
52
|
+
end
|
53
|
+
|
54
|
+
# Sets the private key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
55
|
+
def private_key=(k)
|
56
|
+
return self.authentication.private_key = k
|
57
|
+
end
|
42
58
|
|
43
59
|
|
44
60
|
# Retrieve Chargeback objects.
|
@@ -46,25 +62,17 @@ class Chargeback < Hash
|
|
46
62
|
# * <code>filter</code> Filters to apply to the list.
|
47
63
|
# * <code>max</code> Allows up to a max of 50 list items to return. <b>default:20</b>
|
48
64
|
# * <code>offset</code> Used in paging of the list. This is the start offset of the page. <b>default:0</b>
|
49
|
-
# * <code>sorting</code> Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either <code>asc</code> for ascending or <code>desc</code> for descending). Sortable properties are: <code> id</code><code> amount</code><code> description</code><code> dateCreated</code
|
50
|
-
#
|
51
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
65
|
+
# * <code>sorting</code> Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either <code>asc</code> for ascending or <code>desc</code> for descending). Sortable properties are: <code> id</code><code> amount</code><code> description</code><code> dateCreated</code>.
|
66
|
+
# 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.
|
52
67
|
# Returns an object where the <code>list</code> property contains the list of Chargeback objects and the <code>total</code>
|
53
68
|
# property contains the total number of Chargeback objects available for the given criteria.
|
54
|
-
def self.list(criteria = nil,
|
55
|
-
|
56
|
-
if public_key == nil then
|
57
|
-
public_key = Simplify::public_key
|
58
|
-
end
|
59
|
-
if private_key == nil then
|
60
|
-
private_key = Simplify::private_key
|
61
|
-
end
|
69
|
+
def self.list(criteria = nil, *auth)
|
62
70
|
|
63
|
-
|
71
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
72
|
+
h = Simplify::PaymentsApi.execute("chargeback", 'list', criteria, auth_obj)
|
64
73
|
obj = Chargeback.new()
|
65
|
-
obj.
|
66
|
-
obj
|
67
|
-
obj = obj.merge(h)
|
74
|
+
obj.authentication = auth_obj
|
75
|
+
obj = obj.merge!(h)
|
68
76
|
obj
|
69
77
|
|
70
78
|
end
|
@@ -72,22 +80,15 @@ class Chargeback < Hash
|
|
72
80
|
# Retrieve a Chargeback object from the API
|
73
81
|
#
|
74
82
|
# id:: ID of object to retrieve
|
75
|
-
#
|
76
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
83
|
+
# 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.
|
77
84
|
# Returns a Chargeback object.
|
78
|
-
def self.find(id,
|
79
|
-
if public_key == nil then
|
80
|
-
public_key = Simplify::public_key
|
81
|
-
end
|
82
|
-
if private_key == nil then
|
83
|
-
private_key = Simplify::private_key
|
84
|
-
end
|
85
|
+
def self.find(id, *auth)
|
85
86
|
|
86
|
-
|
87
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
88
|
+
h = Simplify::PaymentsApi.execute("chargeback", 'show', {"id" => id}, auth_obj)
|
87
89
|
obj = Chargeback.new()
|
88
|
-
obj.
|
89
|
-
obj
|
90
|
-
obj = obj.merge(h)
|
90
|
+
obj.authentication = auth_obj
|
91
|
+
obj = obj.merge!(h)
|
91
92
|
obj
|
92
93
|
end
|
93
94
|
|
data/lib/simplify/constants.rb
CHANGED
@@ -30,10 +30,10 @@ module Simplify
|
|
30
30
|
# Constants.
|
31
31
|
class Constants
|
32
32
|
|
33
|
-
@@version = '1.0
|
33
|
+
@@version = '1.1.0'
|
34
34
|
@@api_base_live_url = 'https://api.simplify.com/v1/api'
|
35
35
|
@@api_base_sandbox_url = 'https://sandbox.simplify.com/v1/api'
|
36
|
-
|
36
|
+
@@oauth_base_url = 'https://www.simplify.com/commerce/oauth';
|
37
37
|
|
38
38
|
# Returns the base URL for the live API.
|
39
39
|
def self.api_base_live_url
|
@@ -45,12 +45,16 @@ module Simplify
|
|
45
45
|
@@api_base_sandbox_url
|
46
46
|
end
|
47
47
|
|
48
|
+
# Returns the base URL for OAuth.
|
49
|
+
def self.oauth_base_url
|
50
|
+
@@oauth_base_url
|
51
|
+
end
|
52
|
+
|
48
53
|
# Returns the SDK version.
|
49
54
|
def self.version
|
50
|
-
|
55
|
+
@@version
|
51
56
|
end
|
52
57
|
|
53
|
-
|
54
58
|
end
|
55
59
|
end
|
56
60
|
|
data/lib/simplify/coupon.rb
CHANGED
@@ -33,12 +33,28 @@ module Simplify
|
|
33
33
|
#
|
34
34
|
class Coupon < Hash
|
35
35
|
|
36
|
-
#
|
37
|
-
attr_accessor :
|
36
|
+
# Authentication object used to access the API (See Simplify::Authentication for details)
|
37
|
+
attr_accessor :authentication
|
38
38
|
|
39
|
-
#
|
40
|
-
|
39
|
+
# Returns the public key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
40
|
+
def public_key
|
41
|
+
return self.authentication.public_key
|
42
|
+
end
|
41
43
|
|
44
|
+
# Sets the public key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
45
|
+
def public_key=(k)
|
46
|
+
return self.authentication.public_key = k
|
47
|
+
end
|
48
|
+
|
49
|
+
# Returns the private key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
50
|
+
def private_key
|
51
|
+
return self.authentication.private_key
|
52
|
+
end
|
53
|
+
|
54
|
+
# Sets the private key used when accessing this object. <b>Deprecated: please use 'authentication' instead.</b>
|
55
|
+
def private_key=(k)
|
56
|
+
return self.authentication.private_key = k
|
57
|
+
end
|
42
58
|
|
43
59
|
|
44
60
|
# Creates an Coupon object
|
@@ -52,28 +68,21 @@ class Coupon < Hash
|
|
52
68
|
# * <code>maxRedemptions</code> Maximum number of redemptions allowed for the coupon. A redemption is defined as when the coupon is applied to the subscription for the first time.
|
53
69
|
# * <code>percentOff</code> Percentage off of the price of the product. While this field is optional, you must provide either amountOff or percentOff for a coupon. The percent off is a whole number.
|
54
70
|
# * <code>startDate</code> First date of the coupon in UTC millis that the coupon can be applied to a subscription. This starts at midnight of the merchant timezone. <b>required </b>
|
55
|
-
#
|
56
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
71
|
+
# 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.
|
57
72
|
# Returns a Coupon object.
|
58
|
-
def self.create(parms,
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
if private_key == nil then
|
63
|
-
private_key = Simplify::private_key
|
64
|
-
end
|
65
|
-
|
66
|
-
h = Simplify::PaymentsApi.execute("coupon", 'create', parms, public_key, private_key)
|
73
|
+
def self.create(parms, *auth)
|
74
|
+
|
75
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
76
|
+
h = Simplify::PaymentsApi.execute("coupon", 'create', parms, auth_obj)
|
67
77
|
obj = Coupon.new()
|
68
|
-
obj.
|
69
|
-
obj
|
70
|
-
obj = obj.merge(h)
|
78
|
+
obj.authentication = auth_obj
|
79
|
+
obj = obj.merge!(h)
|
71
80
|
obj
|
72
81
|
end
|
73
82
|
|
74
83
|
# Delete this object
|
75
84
|
def delete()
|
76
|
-
h = Simplify::PaymentsApi.execute("coupon", 'delete', self, self.
|
85
|
+
h = Simplify::PaymentsApi.execute("coupon", 'delete', self, self.authentication)
|
77
86
|
self.merge!(h)
|
78
87
|
self
|
79
88
|
end
|
@@ -84,24 +93,16 @@ class Coupon < Hash
|
|
84
93
|
# * <code>max</code> Allows up to a max of 50 list items to return. <b>default:20</b>
|
85
94
|
# * <code>offset</code> Used in paging of the list. This is the start offset of the page. <b>default:0</b>
|
86
95
|
# * <code>sorting</code> Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either <code>asc</code> for ascending or <code>desc</code> for descending). Sortable properties are: <code> dateCreated</code><code> maxRedemptions</code><code> timesRedeemed</code><code> id</code><code> startDate</code><code> endDate</code><code> percentOff</code><code> couponCode</code><code> durationInMonths</code><code> amountOff</code>.
|
87
|
-
#
|
88
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
96
|
+
# 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.
|
89
97
|
# Returns an object where the <code>list</code> property contains the list of Coupon objects and the <code>total</code>
|
90
98
|
# property contains the total number of Coupon objects available for the given criteria.
|
91
|
-
def self.list(criteria = nil,
|
99
|
+
def self.list(criteria = nil, *auth)
|
92
100
|
|
93
|
-
|
94
|
-
|
95
|
-
end
|
96
|
-
if private_key == nil then
|
97
|
-
private_key = Simplify::private_key
|
98
|
-
end
|
99
|
-
|
100
|
-
h = Simplify::PaymentsApi.execute("coupon", 'list', criteria, public_key, private_key)
|
101
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
102
|
+
h = Simplify::PaymentsApi.execute("coupon", 'list', criteria, auth_obj)
|
101
103
|
obj = Coupon.new()
|
102
|
-
obj.
|
103
|
-
obj
|
104
|
-
obj = obj.merge(h)
|
104
|
+
obj.authentication = auth_obj
|
105
|
+
obj = obj.merge!(h)
|
105
106
|
obj
|
106
107
|
|
107
108
|
end
|
@@ -109,22 +110,15 @@ class Coupon < Hash
|
|
109
110
|
# Retrieve a Coupon object from the API
|
110
111
|
#
|
111
112
|
# id:: ID of object to retrieve
|
112
|
-
#
|
113
|
-
# private_key:: Private key to use for the API call. If nil, the value of Simplify::private_key will be used.
|
113
|
+
# 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.
|
114
114
|
# Returns a Coupon object.
|
115
|
-
def self.find(id,
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
if private_key == nil then
|
120
|
-
private_key = Simplify::private_key
|
121
|
-
end
|
122
|
-
|
123
|
-
h = Simplify::PaymentsApi.execute("coupon", 'show', {"id" => id}, public_key, private_key)
|
115
|
+
def self.find(id, *auth)
|
116
|
+
|
117
|
+
auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
|
118
|
+
h = Simplify::PaymentsApi.execute("coupon", 'show', {"id" => id}, auth_obj)
|
124
119
|
obj = Coupon.new()
|
125
|
-
obj.
|
126
|
-
obj
|
127
|
-
obj = obj.merge(h)
|
120
|
+
obj.authentication = auth_obj
|
121
|
+
obj = obj.merge!(h)
|
128
122
|
obj
|
129
123
|
end
|
130
124
|
|
@@ -134,7 +128,7 @@ class Coupon < Hash
|
|
134
128
|
# * <code>endDate</code> The ending date in UTC millis for the coupon. This must be after the starting date of the coupon.
|
135
129
|
# * <code>maxRedemptions</code> Maximum number of redemptions allowed for the coupon. A redemption is defined as when the coupon is applied to the subscription for the first time.
|
136
130
|
def update()
|
137
|
-
h = Simplify::PaymentsApi.execute("coupon", 'update', self, self.
|
131
|
+
h = Simplify::PaymentsApi.execute("coupon", 'update', self, self.authentication)
|
138
132
|
self.merge!(h)
|
139
133
|
self
|
140
134
|
end
|