levelup 0.9.3 → 0.9.4
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/Gemfile.lock +1 -1
- data/README.md +8 -1
- data/levelup.gemspec +2 -0
- data/lib/levelup.rb +2 -0
- data/lib/levelup/api.rb +4 -4
- data/lib/levelup/configuration.rb +1 -1
- data/lib/levelup/endpoints/access_tokens.rb +3 -3
- data/lib/levelup/endpoints/credit_cards.rb +0 -5
- data/lib/levelup/endpoints/location_credit.rb +25 -0
- data/lib/levelup/endpoints/qr_codes.rb +4 -4
- data/lib/levelup/endpoints/specific_location.rb +4 -0
- data/lib/levelup/requests/get_location_credit.rb +13 -0
- data/spec/data_objects/responses/error_spec.rb +3 -3
- data/spec/endpoints/location_credit_spec.rb +22 -0
- data/spec/fixtures/keys.yml.example +1 -0
- data/spec/spec_helper.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37ecaa0b0077be335d54744b34de2883647a9e99
|
4
|
+
data.tar.gz: 1eb778f8427864d578c0aa16c52b67701ac9ec42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46a0863b7ee1a7e091f658dfd855a41a75fbb19a45441e2d44abbce8a13dbaf0633832f4b20aedf49d50465e7027829d19862996db9d814661f9bd9277725c38
|
7
|
+
data.tar.gz: 82b2541958f7c3308ab338595d204234ea770976c3a6981362801142932bb62d0d85d9291344950b33856cd8946d2632231c6a5052e261d0d80823fa05a9f6c7
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -66,8 +66,15 @@ response = api.orders.create(
|
|
66
66
|
spend_amount: 350, # in cents; 350 = $3.50
|
67
67
|
items: [
|
68
68
|
{
|
69
|
-
|
69
|
+
charged_price: 350,
|
70
|
+
description: 'Non-poisonous, supplies vital nutrients',
|
71
|
+
name: 'Food',
|
72
|
+
quantity: 1,
|
73
|
+
sku: '123abc',
|
74
|
+
category: 'Edible Things',
|
75
|
+
standard_price: 350
|
70
76
|
}
|
77
|
+
# more items can go here
|
71
78
|
],
|
72
79
|
merchant_access_token: 'merchant-token',
|
73
80
|
user_access_token: 'user-token')
|
data/levelup.gemspec
CHANGED
data/lib/levelup.rb
CHANGED
@@ -18,6 +18,7 @@ require 'levelup/requests/create_address'
|
|
18
18
|
require 'levelup/requests/create_card'
|
19
19
|
require 'levelup/requests/create_order'
|
20
20
|
require 'levelup/requests/create_user'
|
21
|
+
require 'levelup/requests/get_location_credit'
|
21
22
|
require 'levelup/requests/get_order'
|
22
23
|
require 'levelup/requests/get_qr_code'
|
23
24
|
require 'levelup/requests/get_user'
|
@@ -41,6 +42,7 @@ require 'levelup/endpoints/app_locations'
|
|
41
42
|
require 'levelup/endpoints/app_users'
|
42
43
|
require 'levelup/endpoints/apps'
|
43
44
|
require 'levelup/endpoints/credit_cards'
|
45
|
+
require 'levelup/endpoints/location_credit'
|
44
46
|
require 'levelup/endpoints/location_orders'
|
45
47
|
require 'levelup/endpoints/merchant_funded_credits'
|
46
48
|
require 'levelup/endpoints/merchant_locations'
|
data/lib/levelup/api.rb
CHANGED
@@ -15,10 +15,10 @@ module Levelup
|
|
15
15
|
|
16
16
|
# Accepts any combination of the listed parameters, though +api_key+ and
|
17
17
|
# +secret+ work in tandem.
|
18
|
-
def initialize(
|
19
|
-
self.app_access_token = app_access_token
|
20
|
-
self.api_key = api_key
|
21
|
-
self.secret = secret
|
18
|
+
def initialize(options = {})
|
19
|
+
self.app_access_token = options[:app_access_token]
|
20
|
+
self.api_key = options[:api_key]
|
21
|
+
self.secret = options[:secret]
|
22
22
|
end
|
23
23
|
|
24
24
|
# Generates an interface for the +access_tokens+ endpoint.
|
@@ -8,9 +8,9 @@ module Levelup
|
|
8
8
|
# The client secret assigned to your app. Preconfigured key.
|
9
9
|
attr_writer :secret
|
10
10
|
|
11
|
-
def initialize(
|
12
|
-
@api_key = api_key
|
13
|
-
@secret = secret
|
11
|
+
def initialize(auth_info)
|
12
|
+
@api_key = auth_info[:api_key]
|
13
|
+
@secret = auth_info[:secret]
|
14
14
|
end
|
15
15
|
|
16
16
|
# Generates a new app access token. If passed no parameters, attempts to
|
@@ -3,11 +3,6 @@ module Levelup
|
|
3
3
|
# The endpoint holding all functions related to managing users' credit
|
4
4
|
# cards.
|
5
5
|
class CreditCards < Base
|
6
|
-
def initialize(api_key: nil, secret: nil)
|
7
|
-
@api_key = api_key
|
8
|
-
@secret = secret
|
9
|
-
end
|
10
|
-
|
11
6
|
# Adds a credit card to a user's account. Requires a user access token
|
12
7
|
# with create_first_credit_card permission.
|
13
8
|
# This request will fail unless the user account has no credit card on it.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Levelup
|
2
|
+
module Endpoints
|
3
|
+
# The endpoint holding all functions relating to available credit at
|
4
|
+
# locations.
|
5
|
+
class LocationCredit < Base
|
6
|
+
attr_reader :id
|
7
|
+
|
8
|
+
def initialize(location_id)
|
9
|
+
@id = location_id
|
10
|
+
end
|
11
|
+
|
12
|
+
def get(user_access_token)
|
13
|
+
request =
|
14
|
+
Requests::GetLocationCredit.new(user_access_token: user_access_token)
|
15
|
+
request.send_to_api(:get, endpoint_path)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def path
|
21
|
+
"locations/#{id}/credit"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -2,10 +2,10 @@ module Levelup
|
|
2
2
|
module Endpoints
|
3
3
|
# The endpoint holding all functions related to managing users' QR codes.
|
4
4
|
class QrCodes < Base
|
5
|
-
def initialize(
|
6
|
-
self.color = color
|
7
|
-
self.tip_amount = tip_amount
|
8
|
-
self.tip_percent = tip_percent
|
5
|
+
def initialize(options = {})
|
6
|
+
self.color = options[:color] || 0
|
7
|
+
self.tip_amount = options[:tip_amount] || 0
|
8
|
+
self.tip_percent = options[:tip_percent] || 0
|
9
9
|
end
|
10
10
|
|
11
11
|
# Retrieves the specified user's QR code using parameters specified
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Levelup
|
2
|
+
module Requests
|
3
|
+
# Represents a request to access information about a
|
4
|
+
# specific order under a merchant.
|
5
|
+
class GetLocationCredit < Base
|
6
|
+
include Templates::UserAuthenticated
|
7
|
+
|
8
|
+
def response_from_hash(hash)
|
9
|
+
Responses::Success.new(hash['credit'])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -37,9 +37,9 @@ describe 'Levelup::Responses::Error' do
|
|
37
37
|
it 'has two full errors' do
|
38
38
|
expect(@nonempty_response).to have(2).errors
|
39
39
|
@nonempty_response.errors.each do |error|
|
40
|
-
expect(error
|
41
|
-
expect(error
|
42
|
-
expect(error
|
40
|
+
expect(error.property).to_not be_nil
|
41
|
+
expect(error.object).to_not be_nil
|
42
|
+
expect(error.message).to_not be_nil
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Levelup::Endpoints::LocationCredit', vcr: true do
|
4
|
+
describe '#get' do
|
5
|
+
context 'with a valid user token' do
|
6
|
+
it 'returns a credit value at a location' do
|
7
|
+
response = @test_client.locations(TestConfig.location_id).credit.
|
8
|
+
get(TestConfig.user_token_with_manage_campaigns_perms)
|
9
|
+
expect(response).to be_success
|
10
|
+
expect(response.total_amount).to_not be_nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'with an invalid user token' do
|
15
|
+
it 'returns an error response' do
|
16
|
+
response = @test_client.locations(TestConfig.location_id).credit.
|
17
|
+
get('1234')
|
18
|
+
expect(response).to_not be_success
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -13,4 +13,5 @@ user_token_with_manage_addresses_perms: token (can be same as other user token)
|
|
13
13
|
user_token_with_read_info_perms: token (can be same as other user token)
|
14
14
|
user_token_with_read_orders_perms: token (can be same as other user token)
|
15
15
|
user_token_with_read_qr_perms: token (can be same as other user token)
|
16
|
+
user_token_with_manage_campaigns_perms: token (can be same as other user token)
|
16
17
|
user_email: user@email.tld
|
data/spec/spec_helper.rb
CHANGED
@@ -5,7 +5,7 @@ require 'support/vcr_filter_sensitive_data'
|
|
5
5
|
$LOAD_PATH << File.expand_path('../lib', __FILE__)
|
6
6
|
require 'levelup'
|
7
7
|
|
8
|
-
Levelup::Configuration.base_api_url = 'https://
|
8
|
+
Levelup::Configuration.base_api_url = 'https://sandbox.thelevelup.com/'
|
9
9
|
|
10
10
|
class TestConfig < Settingslogic
|
11
11
|
source 'spec/fixtures/keys.yml'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: levelup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- LevelUp POS Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -163,6 +163,7 @@ files:
|
|
163
163
|
- lib/levelup/endpoints/apps.rb
|
164
164
|
- lib/levelup/endpoints/base.rb
|
165
165
|
- lib/levelup/endpoints/credit_cards.rb
|
166
|
+
- lib/levelup/endpoints/location_credit.rb
|
166
167
|
- lib/levelup/endpoints/location_orders.rb
|
167
168
|
- lib/levelup/endpoints/merchant_funded_credits.rb
|
168
169
|
- lib/levelup/endpoints/merchant_locations.rb
|
@@ -187,6 +188,7 @@ files:
|
|
187
188
|
- lib/levelup/requests/create_card.rb
|
188
189
|
- lib/levelup/requests/create_order.rb
|
189
190
|
- lib/levelup/requests/create_user.rb
|
191
|
+
- lib/levelup/requests/get_location_credit.rb
|
190
192
|
- lib/levelup/requests/get_order.rb
|
191
193
|
- lib/levelup/requests/get_qr_code.rb
|
192
194
|
- lib/levelup/requests/get_user.rb
|
@@ -222,6 +224,7 @@ files:
|
|
222
224
|
- spec/endpoints/access_tokens_spec.rb
|
223
225
|
- spec/endpoints/app_locations_spec.rb
|
224
226
|
- spec/endpoints/app_users_spec.rb
|
227
|
+
- spec/endpoints/location_credit_spec.rb
|
225
228
|
- spec/endpoints/location_orders_spec.rb
|
226
229
|
- spec/endpoints/merchant_funded_credits_spec.rb
|
227
230
|
- spec/endpoints/merchant_locations_spec.rb
|
@@ -247,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
247
250
|
requirements:
|
248
251
|
- - ">="
|
249
252
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
253
|
+
version: 1.9.3
|
251
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
252
255
|
requirements:
|
253
256
|
- - ">="
|
@@ -274,6 +277,7 @@ test_files:
|
|
274
277
|
- spec/endpoints/access_tokens_spec.rb
|
275
278
|
- spec/endpoints/app_locations_spec.rb
|
276
279
|
- spec/endpoints/app_users_spec.rb
|
280
|
+
- spec/endpoints/location_credit_spec.rb
|
277
281
|
- spec/endpoints/location_orders_spec.rb
|
278
282
|
- spec/endpoints/merchant_funded_credits_spec.rb
|
279
283
|
- spec/endpoints/merchant_locations_spec.rb
|