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 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
- Licensario::Base.establish_connection(key: "MY_API_KEY" , secret: "MY_API_SECRET" )
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
- # 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
- ```
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.
@@ -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 }
@@ -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
@@ -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 })
@@ -1,3 +1,3 @@
1
1
  module Licensario
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -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.2
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-25 00:00:00.000000000 Z
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: &10408180 !ruby/object:Gem::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: *10408180
24
+ version_requirements: *22299180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: factory_girl
27
- requirement: &10407680 !ruby/object:Gem::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: *10407680
35
+ version_requirements: *22298760
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard
38
- requirement: &10406120 !ruby/object:Gem::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: *10406120
46
+ version_requirements: *22298340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: shoulda
49
- requirement: &10404300 !ruby/object:Gem::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: *10404300
57
+ version_requirements: *22297920
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rdoc
60
- requirement: &10388980 !ruby/object:Gem::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: *10388980
68
+ version_requirements: *22297500
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nokogiri
71
- requirement: &10388560 !ruby/object:Gem::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: *10388560
79
+ version_requirements: *22297080
80
80
  description: Licensario SDK
81
81
  email:
82
82
  - marcelo.wiermann@gmail.com