licensario 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +23 -23
- data/lib/licensario/api.rb +11 -4
- data/lib/licensario/base.rb +3 -2
- data/lib/licensario/user.rb +6 -0
- data/lib/licensario/version.rb +1 -1
- data/spec/licensario_spec.rb +3 -0
- data/spec/manual_tests.rb +4 -1
- metadata +14 -14
data/README.md
CHANGED
@@ -31,34 +31,34 @@ base API class which you need to configure before start working. These are the s
|
|
31
31
|
|
32
32
|
1. **Configure**: first you need to setup your connection to Licensario's API server. You can do so by:
|
33
33
|
|
34
|
-
```ruby
|
35
|
-
|
36
|
-
```
|
34
|
+
```ruby
|
35
|
+
Licensario::Base.establish_connection(key: "MY_API_KEY" , secret: "MY_API_SECRET" )
|
36
|
+
```
|
37
37
|
|
38
38
|
2. **Use**: now you can start playing with Licensario's interface classes. This gem provides you with four
|
39
39
|
public accessible ones: *Licensario::User*, *Licensario::License*, *Licensario::LicensedResource* and *Licensario::LicensedFeature*.
|
40
40
|
You can now do cool things like:
|
41
41
|
|
42
|
-
```ruby
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
```
|
42
|
+
```ruby
|
43
|
+
# Initialize an User
|
44
|
+
user = Licensario::User.new(external_user_id: 1, email: 'some@user.net')
|
45
|
+
|
46
|
+
# Retrieve this user's Licenses
|
47
|
+
feature_ids = [1..100]
|
48
|
+
payment_plan_ids = [1..100]
|
49
|
+
licenses = user.get_licenses(feature_ids, payment_plan_ids)
|
50
|
+
|
51
|
+
# Get the current amount available of a given Feature
|
52
|
+
feature_id = '19273812'
|
53
|
+
payment_plan_id = '123987128'
|
54
|
+
feature_amount = user.get_available_feature_amount(feature_id, payment_plan_id)
|
55
|
+
|
56
|
+
# Increment the previous feature's usage (i.e. diminish the available amount)
|
57
|
+
user.increment_feature_usage(1, feature_id, payment_plan_id)
|
58
|
+
|
59
|
+
# Create a new License for this User
|
60
|
+
new_license = user.create_license(payment_plan_id)
|
61
|
+
```
|
62
62
|
|
63
63
|
3. **Rock'n'Roll'**: Now that you have the hang of it, be sure to take a look at the [RDocs](http://rdoc.info/github/marcelow/licensario/master/frames) for more detailed information
|
64
64
|
on the finer aspects of the gem. Don't worry, we made sure to make it super easy to get you up and running in no time.
|
data/lib/licensario/api.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
module Licensario
|
4
4
|
class API
|
5
5
|
|
6
|
-
attr_reader :key, :secret, :base_url
|
6
|
+
attr_reader :key, :secret, :base_url, :debug
|
7
7
|
|
8
|
-
def initialize(key, secret, base_url = 'users.licensario.com', use_ssl = true)
|
9
|
-
@key, @secret, @base_url, @use_ssl = key, secret, base_url, use_ssl
|
8
|
+
def initialize(key, secret, base_url = 'users.licensario.com', use_ssl = true, debug = false)
|
9
|
+
@key, @secret, @base_url, @use_ssl, @debug = key, secret, base_url, use_ssl, debug
|
10
10
|
end
|
11
11
|
|
12
12
|
# Forms the appropriate request URL
|
@@ -19,7 +19,6 @@ module Licensario
|
|
19
19
|
begin
|
20
20
|
uri = URI.parse(request_url(resource))
|
21
21
|
uri.query = URI.encode_www_form(params) if !params.empty? and method == :get
|
22
|
-
puts "#{method} - #{uri.request_uri}"
|
23
22
|
http = Net::HTTP.new(uri.host, uri.port)
|
24
23
|
http.use_ssl = @use_ssl
|
25
24
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if @use_ssl
|
@@ -40,6 +39,14 @@ module Licensario
|
|
40
39
|
request['LCNS_DISABLE_SIGN'] = 'true'
|
41
40
|
request.set_form_data(params) if !params.empty? and [:post,:put].include?(method)
|
42
41
|
response = http.request(request)
|
42
|
+
if @debug
|
43
|
+
puts "################################"
|
44
|
+
puts "REQUEST: #{method.upcase} #{uri.request_uri}"
|
45
|
+
puts "PARAMETERS: #{params}" if !params.empty? and [:post,:put].include?(method)
|
46
|
+
puts "RESPONSE CODE: #{response.code}"
|
47
|
+
puts "BODY:\n#{response.body}"
|
48
|
+
puts "================================"
|
49
|
+
end
|
43
50
|
return { body: response.body, status: response.code.to_i }
|
44
51
|
rescue
|
45
52
|
return { body: nil, status: nil }
|
data/lib/licensario/base.rb
CHANGED
@@ -20,9 +20,10 @@ module Licensario
|
|
20
20
|
def self.establish_connection(options = {})
|
21
21
|
@options = {
|
22
22
|
base_url: 'users.licensario.com',
|
23
|
-
use_ssl: true
|
23
|
+
use_ssl: true,
|
24
|
+
debug: false
|
24
25
|
}.merge(options)
|
25
|
-
@@api = Licensario::API.new(@options[:key], @options[:secret], @options[:base_url], @options[:use_ssl])
|
26
|
+
@@api = Licensario::API.new(@options[:key], @options[:secret], @options[:base_url], @options[:use_ssl], @options[:debug])
|
26
27
|
end
|
27
28
|
|
28
29
|
def self.api
|
data/lib/licensario/user.rb
CHANGED
@@ -51,6 +51,12 @@ module Licensario
|
|
51
51
|
return res[:status] == 200
|
52
52
|
end
|
53
53
|
|
54
|
+
# Update a given Feature usage
|
55
|
+
def update_feature_usage(amount, feature_id, payment_plan_id = nil)
|
56
|
+
res = @@api.do_request(:put, build_url("/features/#{feature_id}/alloc"), { 'amount' => amount.to_s, 'paymentPlanId' => payment_plan_id })
|
57
|
+
return res[:status] == 200
|
58
|
+
end
|
59
|
+
|
54
60
|
# Create a license for this User
|
55
61
|
def create_license(payment_plan_id)
|
56
62
|
res = @@api.do_request(:post, build_url("/licenses"), { 'paymentPlanId' => payment_plan_id.to_s })
|
data/lib/licensario/version.rb
CHANGED
data/spec/licensario_spec.rb
CHANGED
@@ -17,6 +17,9 @@ describe Licensario do
|
|
17
17
|
user.increment_feature_usage(1, feature_id, payment_plan_id)
|
18
18
|
new_feature_amount = user.get_available_feature_amount(feature_id, payment_plan_id)
|
19
19
|
( feature_amount - new_feature_amount ).should eq(1)
|
20
|
+
user.update_feature_usage(feature_amount, feature_id, payment_plan_id)
|
21
|
+
new_feature_amount = user.get_available_feature_amount(feature_id, payment_plan_id)
|
22
|
+
new_feature_amount.should eq(feature_amount)
|
20
23
|
end
|
21
24
|
|
22
25
|
describe Licensario::User do
|
data/spec/manual_tests.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
Licensario::Base.establish_connection(
|
2
2
|
key: "db886331e9105fc19dc9fd6df2caebab9f112c3c81877ea3a3bfcfe3076aa77d",
|
3
|
-
secret: "5545981d57eb3244e857d561946f4ee312023000da1b9f6b86ab017ee48e5c2d"
|
3
|
+
secret: "5545981d57eb3244e857d561946f4ee312023000da1b9f6b86ab017ee48e5c2d",
|
4
|
+
debug: true
|
4
5
|
)
|
5
6
|
|
6
7
|
res = Licensario::Base.api.ensure_external_user_exists('1', 'some@user.net')
|
@@ -21,6 +22,8 @@ licenses = user.get_licenses([feature_id],[payment_plan_id])
|
|
21
22
|
|
22
23
|
feature_amount = user.get_available_feature_amount(feature_id, payment_plan_id)
|
23
24
|
|
25
|
+
user.update_feature_usage(1, feature_id, payment_plan_id)
|
26
|
+
|
24
27
|
user.increment_feature_usage(1, feature_id, payment_plan_id)
|
25
28
|
|
26
29
|
new_feature_amount = user.get_available_feature_amount(feature_id, payment_plan_id)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: licensario
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &22299180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *22299180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: factory_girl
|
27
|
-
requirement: &
|
27
|
+
requirement: &22298760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *22298760
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: guard
|
38
|
-
requirement: &
|
38
|
+
requirement: &22298340 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *22298340
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: shoulda
|
49
|
-
requirement: &
|
49
|
+
requirement: &22297920 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *22297920
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rdoc
|
60
|
-
requirement: &
|
60
|
+
requirement: &22297500 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *22297500
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: nokogiri
|
71
|
-
requirement: &
|
71
|
+
requirement: &22297080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *22297080
|
80
80
|
description: Licensario SDK
|
81
81
|
email:
|
82
82
|
- marcelo.wiermann@gmail.com
|