gyft 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +40 -2
- data/lib/gyft/card.rb +4 -0
- data/lib/gyft/client.rb +5 -2
- data/lib/gyft/client/partner.rb +5 -2
- data/lib/gyft/client/reseller.rb +8 -2
- data/lib/gyft/client/transactions.rb +9 -4
- data/lib/gyft/transaction.rb +7 -0
- data/lib/gyft/version.rb +1 -1
- 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: 8e6eeace4f248958e53b36ea5adcff736fbdedc8
|
4
|
+
data.tar.gz: dc6b3b16b6c9b3cc78c6c9c6958ead8a44178aa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 543e7cf9d0e3cb507861c3ec4190767c26f0df1a0858448334e7de46fff2dfe3c5579a03ef3cffed148fd453b5c03e5d9ebfc680dfe19db2e80d740ae6dde5ac
|
7
|
+
data.tar.gz: 8111036baa68ba2a81b4420d57a7b2e912490fe4ed79259f516702cfb39801b3e6c5ce950fba7430ac4601354d5c9c67093b1e1c93ef903ece18383af950d670
|
data/README.md
CHANGED
@@ -38,15 +38,35 @@ The client provides with direct access to every API call as documented in the de
|
|
38
38
|
|
39
39
|
```rb
|
40
40
|
# get a card to purchase
|
41
|
-
card = client.
|
41
|
+
card = client.cards.first
|
42
42
|
# purchase the card for someone
|
43
|
-
transaction = card.purchase(to_email: 'customer@example.com'
|
43
|
+
transaction = card.purchase(to_email: 'customer@example.com')
|
44
44
|
# load more details on the transaction
|
45
45
|
transaction = transaction.reload
|
46
46
|
# refund the transaction
|
47
47
|
transaction.refund
|
48
48
|
```
|
49
49
|
|
50
|
+
## Convenience methods
|
51
|
+
|
52
|
+
### `client.cards`
|
53
|
+
|
54
|
+
Maps to `client.reseller.shop_cards`, allows for easier access and a less verbose DSL.
|
55
|
+
|
56
|
+
### `card.purchase`
|
57
|
+
|
58
|
+
Maps to `client.partner.purchase.gift_card_direct` and passes along all the same parameters while automatically setting the `shop_card_id`.
|
59
|
+
|
60
|
+
### `transaction.reload`
|
61
|
+
|
62
|
+
The purchase method returns an incomplete transaction object. This convenience methods
|
63
|
+
calls `client.reseller.transaction.find` passing along the transaction `id` and returns a
|
64
|
+
new `Gyft::Transaction` object.
|
65
|
+
|
66
|
+
### `transaction.refund`
|
67
|
+
|
68
|
+
Maps to `client.reseller.transactions.refund` and automatically passes along the transaction `id`.
|
69
|
+
|
50
70
|
## API
|
51
71
|
|
52
72
|
### GET /health/check
|
@@ -271,3 +291,21 @@ Gyft::Transaction {
|
|
271
291
|
:url => "https://staging.gyft.com/card/#/?c=...."
|
272
292
|
}
|
273
293
|
```
|
294
|
+
|
295
|
+
## Contributing
|
296
|
+
|
297
|
+
1. **Fork** the repo on GitHub
|
298
|
+
2. **Clone** the project to your own machine
|
299
|
+
3. **Commit** changes to your own branch
|
300
|
+
4. **Push** your work back up to your fork
|
301
|
+
5. Submit a **Pull request** so that we can review your changes
|
302
|
+
|
303
|
+
### Development
|
304
|
+
|
305
|
+
* `bundle install` to get dependencies
|
306
|
+
* `rake` to run tests
|
307
|
+
* `rake console` to run a local console with the library loaded
|
308
|
+
|
309
|
+
## License
|
310
|
+
|
311
|
+
This library is released under the [MIT License](LICENSE).
|
data/lib/gyft/card.rb
CHANGED
data/lib/gyft/client.rb
CHANGED
@@ -4,8 +4,7 @@ require 'json'
|
|
4
4
|
|
5
5
|
module Gyft
|
6
6
|
class Client
|
7
|
-
class
|
8
|
-
class ServerError < Error; end
|
7
|
+
class ServerError < StandardError; end
|
9
8
|
|
10
9
|
ENDPOINTS = {
|
11
10
|
'production' => 'api.gyft.com',
|
@@ -39,6 +38,10 @@ module Gyft
|
|
39
38
|
http.use_ssl = true
|
40
39
|
end
|
41
40
|
|
41
|
+
def cards
|
42
|
+
reseller.shop_cards
|
43
|
+
end
|
44
|
+
|
42
45
|
def health
|
43
46
|
Gyft::Client::Health.new(self)
|
44
47
|
end
|
data/lib/gyft/client/partner.rb
CHANGED
@@ -11,8 +11,11 @@ class Gyft::Client::Partner
|
|
11
11
|
params = symbolize(params)
|
12
12
|
options = extract(params, :to_email, :shop_card_id)
|
13
13
|
options = merge(options, params, :reseller_reference, :notes, :first_name, :last_name, :gender, :birthday)
|
14
|
-
|
15
|
-
|
14
|
+
|
15
|
+
transaction = @client.post("/partner/purchase/gift_card_direct", options)
|
16
|
+
|
17
|
+
transaction[:client] = @client
|
18
|
+
Gyft::Transaction.new(transaction)
|
16
19
|
end
|
17
20
|
|
18
21
|
private
|
data/lib/gyft/client/reseller.rb
CHANGED
@@ -6,23 +6,28 @@ class Gyft::Client::Reseller
|
|
6
6
|
|
7
7
|
def shop_cards
|
8
8
|
@client.get('/reseller/shop_cards').map do |card|
|
9
|
+
card[:client] = @client
|
9
10
|
Gyft::Card.new(card)
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
13
14
|
def categories
|
14
15
|
@client.get('/reseller/categories')['details'].map do |category|
|
16
|
+
category[:client] = @client
|
15
17
|
Gyft::Category.new(category)
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
19
21
|
def merchants
|
20
22
|
@client.get('/reseller/merchants')['details'].map do |merchant|
|
23
|
+
merchant[:client] = @client
|
21
24
|
merchant = Gyft::Merchant.new(merchant)
|
22
25
|
merchant.shop_cards = merchant.shop_cards.map do |card|
|
26
|
+
card[:client] = @client
|
23
27
|
Gyft::Card.new(card)
|
24
28
|
end
|
25
29
|
merchant.categories = merchant.categories.map do |category|
|
30
|
+
category[:client] = @client
|
26
31
|
Gyft::Category.new(category)
|
27
32
|
end
|
28
33
|
merchant
|
@@ -30,8 +35,9 @@ class Gyft::Client::Reseller
|
|
30
35
|
end
|
31
36
|
|
32
37
|
def account
|
33
|
-
|
34
|
-
|
38
|
+
account = @client.get('/reseller/account')
|
39
|
+
account[:client] = @client
|
40
|
+
Gyft::Account.new(account)
|
35
41
|
end
|
36
42
|
|
37
43
|
def transactions
|
@@ -5,30 +5,35 @@ class Gyft::Client::Transactions
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def find id
|
8
|
-
|
9
|
-
|
8
|
+
transaction = @client.get("/reseller/transaction/#{id}")
|
9
|
+
transaction[:client] = @client
|
10
|
+
Gyft::Transaction.new(transaction)
|
10
11
|
end
|
11
12
|
|
12
13
|
def all
|
13
14
|
@client.get('/reseller/transactions').map do |transaction|
|
15
|
+
transaction[:client] = @client
|
14
16
|
Gyft::Transaction.new(transaction)
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
20
|
def first number_of_records
|
19
21
|
@client.get("/reseller/transactions/first/#{number_of_records}").map do |transaction|
|
22
|
+
transaction[:client] = @client
|
20
23
|
Gyft::Transaction.new(transaction)
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
24
27
|
def last number_of_records
|
25
28
|
@client.get("/reseller/transactions/last/#{number_of_records}").map do |transaction|
|
29
|
+
transaction[:client] = @client
|
26
30
|
Gyft::Transaction.new(transaction)
|
27
31
|
end
|
28
32
|
end
|
29
33
|
|
30
34
|
def refund id
|
31
|
-
|
32
|
-
|
35
|
+
transaction = @client.post("/reseller/transaction/refund", id: id)
|
36
|
+
transaction[:client] = @client
|
37
|
+
Gyft::Refund.new(transaction)
|
33
38
|
end
|
34
39
|
end
|
data/lib/gyft/transaction.rb
CHANGED
data/lib/gyft/version.rb
CHANGED