gyft 1.0.0 → 1.0.1
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.
- checksums.yaml +4 -4
- data/README.md +27 -24
- data/lib/gyft/client.rb +4 -1
- data/lib/gyft/version.rb +1 -1
- data/spec/client_spec.rb +9 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee03ef5abdae355a5a55b541b832c113d073fdad
|
4
|
+
data.tar.gz: efe4359388cad2c6790a963d829d4c5bb7e99946
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c17a8f7263b7ecd1ab0a0f59a36a600a8e63e37bd63bd9f5844e6d14ceb86834c362a486a43ce9f9f1eda197d8c865b2f78f85849f3812447f2021fdc286b63
|
7
|
+
data.tar.gz: 28eaa9153cf168f5ab795f91104022ef8007e6257459c0af4ffa8dc6135f44389f46afa3595968c71946992fbeee90b54bfb3569e22b92bdd4b4849b47b057e1
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/gyft) [](https://travis-ci.org/cbetta/gyft)
|
4
4
|
|
5
|
-
A wrapper for the [Gyft API](http://developer.gyft.com). Specification as
|
5
|
+
A wrapper for the [Gyft API](http://developer.gyft.com). Specification is as described in the the [developer documentation](http://developer.gyft.com/io-docs).
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -15,7 +15,7 @@ gem 'gyft'
|
|
15
15
|
## Getting started
|
16
16
|
|
17
17
|
The client will accept the API key and secret either as parameters on initialization,
|
18
|
-
or as environment variables. Additionally an `environment` can be set to either
|
18
|
+
or as environment variables. Additionally an `environment` parameter can be set to either
|
19
19
|
`sandbox` (default) or `production`.
|
20
20
|
|
21
21
|
```rb
|
@@ -24,17 +24,15 @@ require 'gyft'
|
|
24
24
|
# using parameters
|
25
25
|
client = Gyft::Client.new(api_key: '...', api_secret: '...', environment: 'production')
|
26
26
|
|
27
|
-
# using
|
27
|
+
# using environment variables:
|
28
28
|
# * GYFT_RESELLER_API_KEY
|
29
29
|
# * GYFT_RESELLER_API_SECRET
|
30
30
|
# * GYFT_RESELLER_API_ENVIRONMENT
|
31
31
|
client = Gyft::Client.new
|
32
|
-
|
33
|
-
# now you are ready for your first API call
|
34
|
-
client.reseller.shop_cards # => [#<Gyft::Card id=123, merchant_id="123", ...>, ...]
|
35
32
|
```
|
36
33
|
|
37
|
-
The client provides with direct access to every API call as documented in the
|
34
|
+
The client provides with direct access to every API call as documented in the
|
35
|
+
developer documentation. Additionally it also provides some convenience methods.
|
38
36
|
|
39
37
|
```rb
|
40
38
|
# get a card to purchase
|
@@ -51,25 +49,28 @@ transaction.refund
|
|
51
49
|
|
52
50
|
### `client.cards`
|
53
51
|
|
54
|
-
Maps to `client.reseller.shop_cards`, allows for easier access and a less
|
52
|
+
Maps to `client.reseller.shop_cards`, allows for easier access and a less
|
53
|
+
verbose DSL.
|
55
54
|
|
56
55
|
### `card.purchase`
|
57
56
|
|
58
|
-
Maps to `client.partner.purchase.gift_card_direct` and passes along all the
|
57
|
+
Maps to `client.partner.purchase.gift_card_direct` and passes along all the
|
58
|
+
same parameters while automatically setting the `shop_card_id`.
|
59
59
|
|
60
60
|
### `transaction.reload`
|
61
61
|
|
62
|
-
The purchase method returns an incomplete transaction object. This convenience
|
63
|
-
calls `client.reseller.transaction.find` passing along the transaction
|
64
|
-
new `Gyft::Transaction` object.
|
62
|
+
The purchase method returns an incomplete transaction object. This convenience
|
63
|
+
methods calls `client.reseller.transaction.find` passing along the transaction
|
64
|
+
`id` and returning a new `Gyft::Transaction` object.
|
65
65
|
|
66
66
|
### `transaction.refund`
|
67
67
|
|
68
|
-
Maps to `client.reseller.transactions.refund` and automatically passes along
|
68
|
+
Maps to `client.reseller.transactions.refund` and automatically passes along
|
69
|
+
the transaction `id`.
|
69
70
|
|
70
71
|
## API
|
71
72
|
|
72
|
-
### GET /health/check
|
73
|
+
### `GET /health/check`
|
73
74
|
|
74
75
|
```rb
|
75
76
|
# with a connection
|
@@ -81,7 +82,7 @@ true
|
|
81
82
|
false
|
82
83
|
```
|
83
84
|
|
84
|
-
### GET /reseller/shop_cards
|
85
|
+
### `GET /reseller/shop_cards`
|
85
86
|
|
86
87
|
Returns the shop cards available for purchase.
|
87
88
|
|
@@ -102,7 +103,7 @@ Gyft::Card {
|
|
102
103
|
}
|
103
104
|
```
|
104
105
|
|
105
|
-
### GET /reseller/categories
|
106
|
+
### `GET /reseller/categories`
|
106
107
|
|
107
108
|
Returns all of the categories.
|
108
109
|
|
@@ -116,7 +117,7 @@ Gyft::Category {
|
|
116
117
|
}
|
117
118
|
```
|
118
119
|
|
119
|
-
### GET /reseller/merchants
|
120
|
+
### `GET /reseller/merchants`
|
120
121
|
|
121
122
|
Returns all of the merchants.
|
122
123
|
|
@@ -169,7 +170,7 @@ Gyft::Merchant {
|
|
169
170
|
}
|
170
171
|
```
|
171
172
|
|
172
|
-
### GET /reseller/account
|
173
|
+
### `GET /reseller/account`
|
173
174
|
|
174
175
|
Returns details of the reseller's account.
|
175
176
|
|
@@ -189,7 +190,7 @@ Gyft::Account {
|
|
189
190
|
}
|
190
191
|
```
|
191
192
|
|
192
|
-
### GET /reseller/transactions
|
193
|
+
### `GET /reseller/transactions`
|
193
194
|
|
194
195
|
Returns a list of all the transactions for the reseller.
|
195
196
|
|
@@ -205,7 +206,7 @@ Gyft::Transaction {
|
|
205
206
|
}
|
206
207
|
```
|
207
208
|
|
208
|
-
### GET /transactions/last/:number_of_records
|
209
|
+
### `GET /transactions/last/:number_of_records`
|
209
210
|
|
210
211
|
Returns a limited list of recent transactions for the reseller.
|
211
212
|
|
@@ -221,7 +222,7 @@ Gyft::Transaction {
|
|
221
222
|
}
|
222
223
|
```
|
223
224
|
|
224
|
-
### GET /transactions/first/:number_of_records
|
225
|
+
### `GET /transactions/first/:number_of_records`
|
225
226
|
|
226
227
|
Returns a limited list of initial transactions for the reseller.
|
227
228
|
|
@@ -237,7 +238,7 @@ Gyft::Transaction {
|
|
237
238
|
}
|
238
239
|
```
|
239
240
|
|
240
|
-
### GET /transaction/:id
|
241
|
+
### `GET /transaction/:id`
|
241
242
|
|
242
243
|
Returns a full details for a sent transaction
|
243
244
|
|
@@ -258,7 +259,7 @@ Gyft::Transaction {
|
|
258
259
|
}
|
259
260
|
```
|
260
261
|
|
261
|
-
### POST /transaction/refund
|
262
|
+
### `POST /transaction/refund`
|
262
263
|
|
263
264
|
Refund transaction and get card details.
|
264
265
|
|
@@ -278,7 +279,9 @@ Gyft::Refund {
|
|
278
279
|
}
|
279
280
|
```
|
280
281
|
|
281
|
-
### POST /partner/purchase/gift_card_direct
|
282
|
+
### `POST /partner/purchase/gift_card_direct`
|
283
|
+
|
284
|
+
Purchase a gift card returning a direct link to the card.
|
282
285
|
|
283
286
|
```rb
|
284
287
|
> client.partner.purchase.gift_card_direct(
|
data/lib/gyft/client.rb
CHANGED
@@ -7,7 +7,8 @@ module Gyft
|
|
7
7
|
class ServerError < StandardError; end
|
8
8
|
class NotFoundError < StandardError; end
|
9
9
|
class BadRequestError < StandardError; end
|
10
|
-
|
10
|
+
class UnauthorizedError < StandardError; end
|
11
|
+
|
11
12
|
ENDPOINTS = {
|
12
13
|
'production' => 'api.gyft.com',
|
13
14
|
'sandbox' => 'apitest.gyft.com'
|
@@ -98,6 +99,8 @@ module Gyft
|
|
98
99
|
raise NotFoundError, "Record not found (404)"
|
99
100
|
when Net::HTTPBadRequest
|
100
101
|
raise BadRequestError, "Bad request (400)"
|
102
|
+
when Net::HTTPUnauthorized
|
103
|
+
raise UnauthorizedError, "Access Denied (401)"
|
101
104
|
else
|
102
105
|
if json?(response)
|
103
106
|
raise ServerError, "HTTP #{response.code}: #{JSON.parse(response.body)}"
|
data/lib/gyft/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -79,6 +79,15 @@ describe 'Gyft::Client' do
|
|
79
79
|
result['details'].first['id'].must_equal 4
|
80
80
|
end
|
81
81
|
|
82
|
+
it "should raise on 401" do
|
83
|
+
stub_request(:get, /apitest.gyft.com\/mashery\/v1\/reseller\/categories/).
|
84
|
+
to_return(:status => 401)
|
85
|
+
|
86
|
+
assert_raises Gyft::Client::UnauthorizedError do
|
87
|
+
@client.get('/reseller/categories')
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
82
91
|
it "should raise on 404" do
|
83
92
|
stub_request(:get, /apitest.gyft.com\/mashery\/v1\/reseller\/categories/).
|
84
93
|
to_return(:status => 404)
|