accepton 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71d2ad4d0b4dde6147bdd1cdbb4336c8856c1327
4
- data.tar.gz: 1a2ace303f366f42e37296e860614f6fcb8f56ad
3
+ metadata.gz: c2d8dd63ba217851acd3120adcd40c3a36484fb7
4
+ data.tar.gz: ddc86a631827bf9e42d4a8c6ac4c40e2d31943fd
5
5
  SHA512:
6
- metadata.gz: 8d5d12748a51aa3187839bcb989f77a3967b10a19f5e8aaf2b4962e4719ff9159703ada26a864db09d5b5aba48c47d5d213612c94a1df1587dae8739c73eeefe
7
- data.tar.gz: 851ae6bb5e9e85249c044ea5436949ee2f04b1d6d9cfaebfd35f092f6ee563f77a916599e95a8cdf4c3ac7311f6fc7564de5b8f8069cd587ac833a80735192f2
6
+ metadata.gz: b8ed685a6ed7c27c5df7c16de285e4e2ca448c8ca3e044860b21a2bf8e83e88a59291e77852035bdf4495f29b089a017e395920dbf6dab5c53dc39b9aa4988f6
7
+ data.tar.gz: 52431b8ac177a975f574418e292949a1449e3468a7327ee7e69f9fd76dda344d8e58581b5ca47c340706a42653cc3caa33c6cbf235a2a84d1989a5d5a543f00b
@@ -6,6 +6,15 @@ scheme are considered to be bugs.
6
6
 
7
7
  [semver]: http://semver.org/spec/v2.0.0.html
8
8
 
9
+ ## [0.3.0][0.3.0] - 2015-11-06
10
+
11
+ ### Added
12
+
13
+ - Added support for creating plans.
14
+ - Added support for querying singular and lists of plans.
15
+ - Added support for cancelling subscriptions.
16
+ - Added support for querying singular and lists of subscriptions.
17
+
9
18
  ## [0.2.0][0.2.0] - 2015-09-18
10
19
 
11
20
  ### Added
@@ -18,5 +27,6 @@ scheme are considered to be bugs.
18
27
 
19
28
  - Initial version.
20
29
 
30
+ [0.3.0]: https://github.com/accepton/accepton-ruby/compare/v0.2.0...v0.3.0
21
31
  [0.2.0]: https://github.com/accepton/accepton-ruby/compare/v0.1.0...v0.2.0
22
32
  [unreleased]: https://github.com/accepton/accepton-ruby/compare/v0.2.0...HEAD
@@ -9,4 +9,6 @@ require 'accepton/version'
9
9
  require 'accepton/base'
10
10
  require 'accepton/charge'
11
11
  require 'accepton/refund'
12
+ require 'accepton/plan'
13
+ require 'accepton/subscription'
12
14
  require 'accepton/transaction_token'
@@ -0,0 +1,31 @@
1
+ require 'accepton/api/utils'
2
+
3
+ module AcceptOn
4
+ module API
5
+ module Planning
6
+ include AcceptOn::API::Utils
7
+
8
+ # Creates a plan on AcceptOn
9
+ #
10
+ # @api public
11
+ #
12
+ # @example Create a plan named "Test plan"
13
+ # create_plan(name: 'Test Plan',
14
+ # currency: 'usd',
15
+ # amount: 20_00,
16
+ # period_unit: 'year')
17
+ #
18
+ # @param args [Hash]
19
+ # @option args [String] :name The plan name.
20
+ # @option args [String] :currency The currency to be used, in ISO 4217 format.
21
+ # @option args [Numeric] :amount The plan amount.
22
+ # @option args [String] :period_unit The billing frequency unit, (in month or year only).
23
+ #
24
+ # @raise [AcceptOn::Error] If an API error happens
25
+ # @return [AcceptOn::Plan] The created plan
26
+ def create_plan(args = {})
27
+ perform_post_with_object('/v1/plans', args, AcceptOn::Plan)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -11,7 +11,7 @@ module AcceptOn
11
11
  #
12
12
  # @param id [String] The charge identifier
13
13
  #
14
- # @raises [AcceptOn::Error]
14
+ # @raise [AcceptOn::Error]
15
15
  # @return [AcceptOn::Charge]
16
16
  def charge(id)
17
17
  perform_get_with_object("/v1/charges/#{id}", {}, AcceptOn::Charge)
@@ -29,12 +29,71 @@ module AcceptOn
29
29
  # @option args [String] :order The order to sort by (asc or desc).
30
30
  # @option args [String] :order_by The field to order by (e.g. created_at).
31
31
  #
32
- # @raises [AcceptOn::Error]
32
+ # @raise [AcceptOn::Error]
33
33
  # @return [AcceptOn::Charge]
34
34
  def charges(args = {})
35
35
  perform_get_with_objects('/v1/charges', args, AcceptOn::Charge)
36
36
  end
37
37
 
38
+ # Retrieves a plan from the API
39
+ #
40
+ # @api public
41
+ #
42
+ # @param id [String] The plan identifier
43
+ #
44
+ # @raise [AcceptOn::Error]
45
+ # @return [AcceptOn::Plan]
46
+ def plan(id)
47
+ perform_get_with_object("/v1/plans/#{id}", {}, AcceptOn::Plan)
48
+ end
49
+
50
+ # Retrieves a list of all plans from the API
51
+ #
52
+ # @api public
53
+ #
54
+ # @param args [Hash] A hash of query parameters
55
+ # @option args [String] :order The order to sort by (asc or desc).
56
+ # @option args [String] :order_by The field to order by (e.g. created_at).
57
+ # @option args [Integer] :page The page number to retrieve.
58
+ # @option args [Integer] :per_page The size of the page to retrieve (max: 100).
59
+ # @option args [String, Symbol] :period_unit The period unit to filter by.
60
+ #
61
+ # @raise [AcceptOn::Error]
62
+ # @return [AcceptOn::Plan]
63
+ def plans(args = {})
64
+ perform_get_with_objects('/v1/plans', args, AcceptOn::Plan)
65
+ end
66
+
67
+ # Retrieves a subscription from AcceptOn
68
+ #
69
+ # @api public
70
+ #
71
+ # @param id [String] The subscription identifier.
72
+ #
73
+ # @raise [AcceptOn::Error]
74
+ # @return [AcceptOn::Subscription]
75
+ def subscription(id)
76
+ perform_get_with_object("/v1/subscriptions/#{id}", {}, AcceptOn::Subscription)
77
+ end
78
+
79
+ # Retrieves a page of subscriptions from AcceptOn
80
+ #
81
+ # @api public
82
+ #
83
+ # @param args [Hash] A hash of query parameters
84
+ # @option args [String] :order The order to sort by (asc or desc).
85
+ # @option args [String] :order_by The field to order by (e.g. created_at).
86
+ # @option args [Integer] :page The page number to retrieve.
87
+ # @option args [Integer] :per_page The size of the page to retrieve (max: 100).
88
+ # @option args [Boolean] :active The activity status of the subscription to filter by.
89
+ # @option args [String] 'plan.token' The plan id of the subscription to filter by.
90
+ #
91
+ # @raise [AcceptOn::Error]
92
+ # @return [AcceptOn::Subscription>]
93
+ def subscriptions(args = {})
94
+ perform_get_with_objects('/v1/subscriptions', args, AcceptOn::Subscription)
95
+ end
96
+
38
97
  # Retrieves a promo code from AcceptOn
39
98
  #
40
99
  # @api public
@@ -76,7 +135,7 @@ module AcceptOn
76
135
  #
77
136
  # @param id [String] The transaction token identifier
78
137
  #
79
- # @raises [AcceptOn::Error]
138
+ # @raise [AcceptOn::Error]
80
139
  # @return [AcceptOn::TransactionToken]
81
140
  def token(id)
82
141
  perform_get_with_object("/v1/tokens/#{id}", {}, AcceptOn::TransactionToken)
@@ -0,0 +1,21 @@
1
+ require 'accepton/api/utils'
2
+
3
+ module AcceptOn
4
+ module API
5
+ module Subscribing
6
+ include AcceptOn::API::Utils
7
+
8
+ # Cancels a subscription on AcceptOn
9
+ #
10
+ # @api public
11
+ #
12
+ # @param id [String] The subscription identifier
13
+ #
14
+ # @raises [AcceptOn::Error]
15
+ # @return [AcceptOn::Subscription]
16
+ def cancel_subscription(id)
17
+ perform_post_with_object("/v1/subscriptions/#{id}/cancel", {}, AcceptOn::Subscription)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,13 +1,17 @@
1
+ require 'accepton/api/planning'
1
2
  require 'accepton/api/promotion'
2
3
  require 'accepton/api/querying'
3
4
  require 'accepton/api/refunding'
5
+ require 'accepton/api/subscribing'
4
6
  require 'accepton/api/tokenization'
5
7
 
6
8
  module AcceptOn
7
9
  class Client
10
+ include AcceptOn::API::Planning
8
11
  include AcceptOn::API::Promotion
9
12
  include AcceptOn::API::Querying
10
13
  include AcceptOn::API::Refunding
14
+ include AcceptOn::API::Subscribing
11
15
  include AcceptOn::API::Tokenization
12
16
 
13
17
  attr_accessor :api_key, :environment
@@ -0,0 +1,21 @@
1
+ module AcceptOn
2
+ class Plan < Base
3
+ # @attr_reader amount [Integer] The amount of the plan in cents
4
+ # @attr_reader currency [String] The ISO currency code of the refund
5
+ # @attr_reader id [String] The plan identifier
6
+ # @attr_reader name [String] The name of the plan
7
+ # @attr_reader period_unit [String] the billing frequency unit of the plan
8
+ #
9
+ # @api public
10
+ attr_reader :amount, :currency, :id, :name, :period_unit
11
+
12
+ # The time the plan was created
13
+ #
14
+ # @api public
15
+ #
16
+ # @return [Time]
17
+ def created_at
18
+ Time.parse(@created_at).utc unless @created_at.nil?
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,30 @@
1
+ module AcceptOn
2
+ class Subscription < Base
3
+ # @attr_reader active [Boolean] The activity status of the subscription
4
+ # @attr_reader email [String] The email belonging to the subscription
5
+ # @attr_reader id [String] The subscription identifier
6
+ #
7
+ # @api public
8
+ attr_reader :active, :email, :id
9
+
10
+ alias_method :active?, :active
11
+
12
+ # The time the subscription was last billed
13
+ #
14
+ # @api public
15
+ #
16
+ # @return [Time]
17
+ def last_billed_at
18
+ Time.parse(@last_billed_at).utc unless @last_billed_at.nil?
19
+ end
20
+
21
+ # The plan the subscription is connected to
22
+ #
23
+ # @api public
24
+ #
25
+ # @return [AcceptOn::Plan]
26
+ def plan
27
+ AcceptOn::Plan.new(@plan)
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module AcceptOn
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: accepton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AcceptOn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-18 00:00:00.000000000 Z
11
+ date: 2015-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -66,9 +66,11 @@ files:
66
66
  - Rakefile
67
67
  - accepton.gemspec
68
68
  - lib/accepton.rb
69
+ - lib/accepton/api/planning.rb
69
70
  - lib/accepton/api/promotion.rb
70
71
  - lib/accepton/api/querying.rb
71
72
  - lib/accepton/api/refunding.rb
73
+ - lib/accepton/api/subscribing.rb
72
74
  - lib/accepton/api/tokenization.rb
73
75
  - lib/accepton/api/utils.rb
74
76
  - lib/accepton/base.rb
@@ -76,9 +78,11 @@ files:
76
78
  - lib/accepton/client.rb
77
79
  - lib/accepton/error.rb
78
80
  - lib/accepton/headers.rb
81
+ - lib/accepton/plan.rb
79
82
  - lib/accepton/promo_code.rb
80
83
  - lib/accepton/refund.rb
81
84
  - lib/accepton/request.rb
85
+ - lib/accepton/subscription.rb
82
86
  - lib/accepton/transaction_token.rb
83
87
  - lib/accepton/version.rb
84
88
  homepage: https://developers.accepton.com