vault_client 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,6 +5,10 @@ module VC
5
5
  OPEN = "open"
6
6
  CLOSE = "close"
7
7
 
8
+ def all
9
+ VC.handle_req {RestClient.get([VC.url, "/billable_events"].join, VC.headers)}
10
+ end
11
+
8
12
  def open(args)
9
13
  hid = args.delete(:hid)
10
14
  entity_id = args.delete(:entity_id)
@@ -0,0 +1,14 @@
1
+ module VC
2
+ module RCode
3
+ extend self
4
+
5
+ def create(args)
6
+ VC.handle_req {RestClient.post(rate_codes_url, args, VC.headers)}
7
+ end
8
+
9
+ def rate_codes_url
10
+ [VC.url, "/rate_codes"].join
11
+ end
12
+
13
+ end
14
+ end
@@ -22,6 +22,7 @@ require 'models/unit_group'
22
22
  require 'models/line_item'
23
23
  require 'models/b_event'
24
24
  require 'models/res_own'
25
+ require 'models/r_code'
25
26
 
26
27
  require 'services/line_item_builder'
27
28
 
data/readme.md CHANGED
@@ -80,6 +80,26 @@ API docs.](https://github.com/heroku/shushu/blob/master/doc/account_ownership_ap
80
80
  #=> {"payment_method_id"=>"456", "account_id"=>"1", "entity_id"=>"event124"}
81
81
  ```
82
82
 
83
+ ### RateCodes
84
+
85
+ Before you can send BillableEvents to Shushu, you will need to provision a
86
+ RateCode.
87
+
88
+ * rate - int. units should be pennies.
89
+ * product_group - string.
90
+ * product_name - string. optional. you can also pass the product name in an event.
91
+
92
+ [Shushu API Docs](https://github.com/heroku/shushu/blob/master/doc/rate_code_api.md)
93
+
94
+ ```ruby
95
+ VC::RCode.create(
96
+ :rate => 5,
97
+ :product_group => "addon",
98
+ :product_name => "postgres"
99
+ )
100
+ #=> {:slug => "AO01", :rate => 5, :product_group => "addon", :product_name => "postgres"}
101
+ ```
102
+
83
103
  ### ResourceOwnerships
84
104
 
85
105
  Use this API when dealing with resources and Vault accounts. For instance:
@@ -0,0 +1,18 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ class RCodeTest < VCTest
4
+ def test_open
5
+ our_params = {
6
+ :rate => 5,
7
+ :product_group => "addon",
8
+ :product_name => "postgres",
9
+ :description => "A database service."
10
+ }
11
+ api_resp_body = VC::HttpHelpers.enc_json(our_params.merge(:slug => "AO01"))
12
+ VC.url = "http://provider:password@shushu.heroku.com"
13
+ FakeWeb.register_uri(:post, (VC.url + "/rate_codes"), :body => api_resp_body)
14
+ rate_code = VC::RCode.create(our_params)
15
+ assert_equal("AO01", rate_code["slug"])
16
+ end
17
+ end
18
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vault_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-12-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &10827140 !ruby/object:Gem::Requirement
16
+ requirement: &19156220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10827140
24
+ version_requirements: *19156220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yajl-ruby
27
- requirement: &10826660 !ruby/object:Gem::Requirement
27
+ requirement: &19155740 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 1.1.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *10826660
35
+ version_requirements: *19155740
36
36
  description: A ruby wrapper around The Vault's HTTP API.
37
37
  email: ryan@heroku.com
38
38
  executables: []
@@ -51,6 +51,7 @@ files:
51
51
  - lib/models/report.rb
52
52
  - lib/models/unit_group.rb
53
53
  - lib/models/line_item.rb
54
+ - lib/models/r_code.rb
54
55
  - lib/models/res_own.rb
55
56
  - lib/models/b_event.rb
56
57
  - lib/models/billable_unit.rb
@@ -59,6 +60,7 @@ files:
59
60
  - test/presenters/line_item_presenter_test.rb
60
61
  - test/presenters/report_presenter_test.rb
61
62
  - test/fixtures.rb
63
+ - test/models/r_code_test.rb
62
64
  - test/models/billable_unit_test.rb
63
65
  - test/models/b_event_test.rb
64
66
  - test/models/unit_group_test.rb
@@ -92,6 +94,7 @@ summary: The Vault Client
92
94
  test_files:
93
95
  - test/presenters/line_item_presenter_test.rb
94
96
  - test/presenters/report_presenter_test.rb
97
+ - test/models/r_code_test.rb
95
98
  - test/models/billable_unit_test.rb
96
99
  - test/models/b_event_test.rb
97
100
  - test/models/unit_group_test.rb