slidepay 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +107 -7
- data/lib/slidepay/resources/api_resource.rb +17 -55
- data/lib/slidepay/resources/customer.rb +11 -0
- data/lib/slidepay/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0717f747633f7aa532d21e58b8867ac449c4bcfe
|
4
|
+
data.tar.gz: c1a4afcf7d8c27775bd2e91b5288dcd27eec5141
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6066b6d41e7909b954fc490a1d94927e8691c372f6ed331298a57ae0423c0db87be3da2fd401dfa7d0f649f606fb2693017c6e3f50f765542f19331dfd9f2b87
|
7
|
+
data.tar.gz: 3b89bd21f9ba4de0c611d89dd533ad65735382ccdc34b5f1ad22526d5c914bb14a4c0b503a916afb04a71f7680ba061305fcfaeb6d5fad2af594fb523d4ac4a2
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# Slidepay Ruby Sdk
|
4
4
|
|
5
|
-
[![Build Status](https://travis-ci.org/SlidePay/slidepay-ruby-sdk.png)](https://travis-ci.org/SlidePay/slidepay-ruby-sdk) [![Code Climate](https://codeclimate.com/
|
5
|
+
[![Build Status](https://travis-ci.org/SlidePay/slidepay-ruby-sdk.png)](https://travis-ci.org/SlidePay/slidepay-ruby-sdk) [![Code Climate](https://codeclimate.com/github/SlidePay/slidepay-ruby-sdk.png)](https://codeclimate.com/github/SlidePay/slidepay-ruby-sdk)
|
6
6
|
|
7
7
|
First version of the SlidePay Ruby SDK
|
8
8
|
|
@@ -59,7 +59,7 @@ SlidePay.authenticate(email, password)
|
|
59
59
|
You can retrieve a token for use in any context with the retrieve_token method, which is similar to SlidePay.authenticate except that it returns the token string and does not set a global token value.
|
60
60
|
|
61
61
|
```ruby
|
62
|
-
SlidePay.
|
62
|
+
SlidePay.retrieve_token(email, password)
|
63
63
|
```
|
64
64
|
|
65
65
|
These fields can also be used on an instance or per-request level by either passing them into the SlidePay module request methods as a field in a hash, or by assigning instance variables on a SlidePay::Client.
|
@@ -74,13 +74,101 @@ SlidePay.get(path: "payment/#{payment_id}", api_key: "MY_API_KEY")
|
|
74
74
|
|
75
75
|
## Resources
|
76
76
|
|
77
|
-
|
77
|
+
The Ruby SDK provides explicit interfaces to the following SlidePay resources:
|
78
|
+
- api_key through the [ApiKey](https://github.com/SlidePay/slidepay-ruby-sdk/blob/master/lib/slidepay/resources/api_key.rb) class
|
79
|
+
- bank_account through the [BankAccount](https://github.com/SlidePay/slidepay-ruby-sdk/blob/master/lib/slidepay/resources/bank_account.rb) class
|
80
|
+
- payment through the [Payment](https://github.com/SlidePay/slidepay-ruby-sdk/blob/master/lib/slidepay/resources/payment.rb) class
|
81
|
+
- user_master through the [UserMaster](https://github.com/SlidePay/slidepay-ruby-sdk/blob/master/lib/slidepay/resources/user_master.rb) class
|
82
|
+
- customer through the [Customer](https://github.com/SlidePay/slidepay-ruby-sdk/blob/master/lib/slidepay/resources/customer.rb) class
|
83
|
+
|
84
|
+
All of the above resource classes inherit class- and instance-level functionality from [SlidePay::ApiResource](https://github.com/SlidePay/slidepay-ruby-sdk/blob/master/lib/slidepay/resources/api_resource.rb).
|
85
|
+
|
86
|
+
As a result, each resource class provides common searching and CRUD functionality.
|
87
|
+
|
88
|
+
## Search
|
89
|
+
|
90
|
+
Each ApiResource offers several class-level search methods:
|
91
|
+
|
92
|
+
- find(search_filter_array)
|
93
|
+
- find_where(value_hash)
|
94
|
+
- find_between(start_value_hash, end_value_hash)
|
95
|
+
- find_greater_than(value_hash)
|
96
|
+
- find_less_than(value_hash)
|
97
|
+
|
98
|
+
Each of these methods will return an array of zero or more instances of the ApiResource class.
|
99
|
+
|
100
|
+
### find(search_filter_array)
|
101
|
+
|
102
|
+
```find``` is a flexible interface for placing restrictions on a search. Search parameters must be supplied in the form of a [search filter array](https://getcube.atlassian.net/wiki/display/CDP/search_filter+and+search_filter_array). To supply them, pass an array of search filter Hashes as the first parameter.
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
|
106
|
+
# Find users whose first name contains "at"
|
107
|
+
users = SlidePay::UserMaster.find(field: "first_name", condition: "contains", value: "at")
|
108
|
+
|
109
|
+
# Find all users whose first name is "Matt"
|
110
|
+
users = SlidePay::UserMaster.find(field: "first_name", condition: "equals", value: "Matt")
|
111
|
+
|
112
|
+
```
|
113
|
+
|
114
|
+
### find_where(value_hash)
|
115
|
+
|
116
|
+
```find_where``` allows you to specify equality constraints in your search. For instance, the following example is equivalent to the second ```find``` example above.
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
|
120
|
+
# Find all users whose first name is "Matt"
|
121
|
+
users = SlidePay::UserMaster.find_where(first_name: "Matt")
|
122
|
+
|
123
|
+
```
|
124
|
+
|
125
|
+
### find_greater_than(value_hash) and find_less_than(value_hash)
|
126
|
+
|
127
|
+
```find_greater_than``` and ```find_less_than``` allow searching for resources with values greater than or less than what is provided in the hash.
|
128
|
+
|
129
|
+
```ruby
|
130
|
+
|
131
|
+
# Find all payments greater than $200.00
|
132
|
+
payments = SlidePay::Payment.find_greater_than(amount: 200.00)
|
133
|
+
|
134
|
+
# Find all payments less than $10.00
|
135
|
+
payments = SlidePay::Payment.find_less_than(amount: 10.00)
|
136
|
+
|
137
|
+
# Find all users created after 10/12/2013 at 12:00 AM
|
138
|
+
users = SlidePay::UserMaster.find_greater_than(created: "10/12/2013")
|
139
|
+
|
140
|
+
# Find all users created before 10/05/2013 at 12:00 AM
|
141
|
+
users = SlidePay::UserMaster.find_less_than(created: "10/05/2013")
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
### find_between(start_value_hash, end_value_hash)
|
146
|
+
|
147
|
+
```find_between``` takes two value hashes as arguments to combine the functionality of find_greater_than and find_less_than.
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
|
151
|
+
# Find all payments made between 10/05/2013 and 10/12/2013
|
152
|
+
start_values = { created: "10/05/2013" }
|
153
|
+
end_values = { created: "10/12/2013" }
|
154
|
+
payments = SlidePay::Payment.find_between(start_values, end_values)
|
155
|
+
|
156
|
+
# Find all payments between $3.00 and $10.00
|
157
|
+
start_values = { amount: 3.00 }
|
158
|
+
end_values = { amount: 10.00 }
|
159
|
+
payments = SlidePay::Payment.find_between(start_values, end_values)
|
160
|
+
|
161
|
+
```
|
162
|
+
|
163
|
+
## CRUD (Create, Read, Update, Delete)
|
164
|
+
|
165
|
+
Each ApiResource class provides RESTful CRUD functionality through the following instance methods:
|
78
166
|
|
79
167
|
- ```save ```
|
80
168
|
- ```destroy ```
|
81
169
|
- ```retrieve ```
|
82
170
|
|
83
|
-
The ```save``` method can handle both creation
|
171
|
+
The ```save``` method can handle both creation via POST, and updating via PUT. It determines which verb is appropriate by the ```ApiResource.is_new?``` method, which checks for data in the appropriate *_id field of the resource.
|
84
172
|
|
85
173
|
## Payments
|
86
174
|
|
@@ -105,13 +193,27 @@ SlidePay.post(path: 'payment/refund/#{payment_id}')
|
|
105
193
|
|
106
194
|
## Testing
|
107
195
|
|
196
|
+
### Basics
|
197
|
+
|
108
198
|
Test are in the spec directory, and can be run from the root of the repository:
|
109
199
|
|
110
200
|
```bash
|
111
201
|
$ rspec spec
|
112
202
|
```
|
113
203
|
|
114
|
-
|
204
|
+
### Automatic Testing
|
205
|
+
|
206
|
+
There is also a Guardfile in the root directory of the library that will help test changes automatically. If you intend to modify this code, we highly recommend you configure [Guard](https://github.com/guard/guard) on your system to make use of this.
|
207
|
+
|
208
|
+
Once installed, run the Guard monitor from the root of the repository:
|
209
|
+
|
210
|
+
```bash
|
211
|
+
$ guard
|
212
|
+
```
|
213
|
+
|
214
|
+
### Scenarios Requiring Account Information
|
215
|
+
|
216
|
+
Some tests, the ones in the scenarios directory, will require that you have an active SlidePay account on the development server, and that you supply those credentials in an ```environment.rb``` file in the root of this repository.
|
115
217
|
|
116
218
|
Your populated environment.rb should look something like this:
|
117
219
|
|
@@ -124,8 +226,6 @@ ENV["api_key"] = "super-secret-api-key-that-you-never-share"
|
|
124
226
|
|
125
227
|
## Notes
|
126
228
|
|
127
|
-
The SlidePay::Client class is largely untested and likely non-functional.
|
128
|
-
|
129
229
|
Though this document rarely mentions authentication in most examples following the section above dedicated to it, an api_key or token, and an endpoint, may be supplied to any object or module that can perform an API request. This flexibility allows for interacting with a single instance of a single ApiResource class without having to use the SlidePay module methods directly, or having to use an instance of the SlidePay::Client class. It also accommodates those developers who may wish to authenticate many SlidePay accounts within a single thread, such as inside a request context of a Rails application, or in a scheduled task, without having to repeatedly set the SlidePay.token or SlidePay.api_key global values.
|
130
230
|
|
131
231
|
## License
|
@@ -119,17 +119,23 @@ module SlidePay
|
|
119
119
|
end
|
120
120
|
|
121
121
|
class << self
|
122
|
-
def
|
123
|
-
|
124
|
-
|
125
|
-
results = []
|
122
|
+
def api_resource_array_from_response(response)
|
123
|
+
resources_array = []
|
126
124
|
if response.was_successful? and response.data != nil
|
127
125
|
data = response.data
|
128
126
|
data.each do |resource_hash|
|
129
|
-
|
127
|
+
resources_array.push self.new(resource_hash)
|
130
128
|
end
|
131
129
|
end
|
132
|
-
|
130
|
+
|
131
|
+
resources_array
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
def retrieve(token=nil, api_key=nil, endpoint=nil)
|
136
|
+
response = SlidePay.get(path: self::URL_ROOT, token: token, api_key: api_key, endpoint: endpoint)
|
137
|
+
|
138
|
+
return api_resource_array_from_response(response)
|
133
139
|
end
|
134
140
|
|
135
141
|
def find(search_params, token=nil, api_key=nil, endpoint=nil)
|
@@ -141,17 +147,9 @@ module SlidePay
|
|
141
147
|
elsif not search_params.is_a? Array
|
142
148
|
raise Exception.new("Invalid or no search filter supplied.")
|
143
149
|
end
|
144
|
-
|
145
|
-
search_results = []
|
146
150
|
response = SlidePay.put(path: self::URL_ROOT, data: search_params.to_json, token: token, api_key: api_key, endpoint: endpoint)
|
147
|
-
if response.was_successful? and response.data != nil
|
148
|
-
data = response.data
|
149
|
-
data.each do |resource_hash|
|
150
|
-
search_results.push self.new(resource_hash)
|
151
|
-
end
|
152
|
-
end
|
153
151
|
|
154
|
-
|
152
|
+
return api_resource_array_from_response(response)
|
155
153
|
end
|
156
154
|
|
157
155
|
def find_where(search_params, token=nil, api_key=nil, endpoint=nil)
|
@@ -160,16 +158,7 @@ module SlidePay
|
|
160
158
|
sfa.push(field: k, condition: "equals", value: v)
|
161
159
|
end
|
162
160
|
|
163
|
-
|
164
|
-
response = SlidePay.put(path: self::URL_ROOT, data: sfa.to_json, token: token, api_key: api_key, endpoint: endpoint)
|
165
|
-
if response.was_successful? and response.data != nil
|
166
|
-
data = response.data
|
167
|
-
data.each do |resource_hash|
|
168
|
-
search_results.push self.new(resource_hash)
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
search_results
|
161
|
+
return find(sfa, token, api_key, endpoint)
|
173
162
|
end
|
174
163
|
|
175
164
|
def find_between(start_params, end_params, token=nil, api_key=nil, endpoint=nil)
|
@@ -182,16 +171,7 @@ module SlidePay
|
|
182
171
|
sfa.push(field: k, condition: "less_than", value: v)
|
183
172
|
end
|
184
173
|
|
185
|
-
|
186
|
-
response = SlidePay.put(path: self::URL_ROOT, data: sfa.to_json, token: token, api_key: api_key, endpoint: endpoint)
|
187
|
-
if response.was_successful? and response.data != nil
|
188
|
-
data = response.data
|
189
|
-
data.each do |resource_hash|
|
190
|
-
search_results.push self.new(resource_hash)
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
search_results
|
174
|
+
return find(sfa, token, api_key, endpoint)
|
195
175
|
end
|
196
176
|
|
197
177
|
def find_greater_than(search_params, token=nil, api_key=nil, endpoint=nil)
|
@@ -200,16 +180,7 @@ module SlidePay
|
|
200
180
|
sfa.push(field: k, condition: "greater_than", value: v)
|
201
181
|
end
|
202
182
|
|
203
|
-
|
204
|
-
response = SlidePay.put(path: self::URL_ROOT, data: sfa.to_json, token: token, api_key: api_key, endpoint: endpoint)
|
205
|
-
if response.was_successful? and response.data != nil
|
206
|
-
data = response.data
|
207
|
-
data.each do |resource_hash|
|
208
|
-
search_results.push self.new(resource_hash)
|
209
|
-
end
|
210
|
-
end
|
211
|
-
|
212
|
-
search_results
|
183
|
+
return find(sfa, token, api_key, endpoint)
|
213
184
|
end
|
214
185
|
|
215
186
|
def find_less_than(search_params, token=nil, api_key=nil, endpoint=nil)
|
@@ -218,16 +189,7 @@ module SlidePay
|
|
218
189
|
sfa.push(field: k, condition: "less_than", value: v)
|
219
190
|
end
|
220
191
|
|
221
|
-
|
222
|
-
response = SlidePay.put(path: self::URL_ROOT, data: sfa.to_json, token: token, api_key: api_key, endpoint: endpoint)
|
223
|
-
if response.was_successful? and response.data != nil
|
224
|
-
data = response.data
|
225
|
-
data.each do |resource_hash|
|
226
|
-
search_results.push self.new(resource_hash)
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
search_results
|
192
|
+
return find(sfa, token, api_key, endpoint)
|
231
193
|
end
|
232
194
|
end
|
233
195
|
|
data/lib/slidepay/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slidepay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Rothstein
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- lib/slidepay/resources/api_key.rb
|
161
161
|
- lib/slidepay/resources/api_resource.rb
|
162
162
|
- lib/slidepay/resources/bank_account.rb
|
163
|
+
- lib/slidepay/resources/customer.rb
|
163
164
|
- lib/slidepay/resources/payment.rb
|
164
165
|
- lib/slidepay/resources/user_master.rb
|
165
166
|
- lib/slidepay/response.rb
|