zoho-subscriptions 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +4 -0
- data/LICENSE +28 -0
- data/README.md +77 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/zoho/subscriptions.rb +25 -0
- data/lib/zoho/subscriptions/addon.rb +23 -0
- data/lib/zoho/subscriptions/client.rb +21 -0
- data/lib/zoho/subscriptions/customer.rb +31 -0
- data/lib/zoho/subscriptions/errors.rb +33 -0
- data/lib/zoho/subscriptions/plan.rb +25 -0
- data/lib/zoho/subscriptions/product.rb +13 -0
- data/lib/zoho/subscriptions/resource_base.rb +171 -0
- data/lib/zoho/subscriptions/subscription.rb +45 -0
- data/lib/zoho/subscriptions/version.rb +5 -0
- data/zoho-subscriptions.gemspec +32 -0
- metadata +178 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0edcd1a2e7332d6e8b6b600f45445bf89ed210e4
|
4
|
+
data.tar.gz: 8a1bbddb5a04388571b3c2b23a540f70bd08cf80
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e44ce33e2d9477634adadfb933a5d2a6c8d87d7fc093d596e84c394ce2f940f134391724b193006ab531abb3ac657adf817bd271829a62b5038f5d9e603e849a
|
7
|
+
data.tar.gz: 1db286bbc369792f47ff90c4abe5d584a6e0e3d63731f6a0527581a7ee4798d1537b8bee7b11103b0cc0d68ac700097db97b9ffda799cf7a282d838f874e5aa1
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
4
|
+
|
5
|
+
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
|
6
|
+
|
7
|
+
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
|
8
|
+
|
9
|
+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
|
10
|
+
|
11
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
|
12
|
+
|
13
|
+
This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
Copyright (c) 2015, PayrollHero PTE. Ltd
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
* Redistributions of source code must retain the above copyright notice, this
|
8
|
+
list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer in the documentation
|
12
|
+
and/or other materials provided with the distribution.
|
13
|
+
|
14
|
+
* Neither the name of zoho-subscriptions nor the names of its
|
15
|
+
contributors may be used to endorse or promote products derived from
|
16
|
+
this software without specific prior written permission.
|
17
|
+
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
19
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
20
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
22
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
23
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
24
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
25
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
26
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
27
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
28
|
+
|
data/README.md
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
# Zoho::Subscriptions
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/zoho-subscriptions.svg)](http://badge.fury.io/rb/zoho-subscriptions)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/payrollhero/zoho-subscriptions/badges/gpa.svg)](https://codeclimate.com/github/payrollhero/zoho-subscriptions)
|
5
|
+
[![Build Status](https://travis-ci.org/payrollhero/zoho-subscriptions.svg)](https://travis-ci.org/payrollhero/zoho-subscriptions)
|
6
|
+
|
7
|
+
An API client for Zoho Subscriptions.
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem 'zoho-subscriptions'
|
15
|
+
```
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install zoho-subscriptions
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
# Configuration
|
29
|
+
Zoho::Subscriptions::Client.configure auth_token: "6526d398ea6184670ceb588703711368",
|
30
|
+
organization_id: "22563c1a1e7cd2dae0e41636cd2931a5"
|
31
|
+
|
32
|
+
# Creating a resource
|
33
|
+
subscription = Zoho::Subscriptions::Subscription.create customer_id: 187955000000053001,
|
34
|
+
auto_collect: false,
|
35
|
+
plan: { plan_code: "forever-free", quantity: 1 }
|
36
|
+
subscription.id # => 187955000000053082
|
37
|
+
|
38
|
+
# Retrieving a resource
|
39
|
+
subscription = Zoho::Subscriptions::Subscription.find 187955000000053082
|
40
|
+
|
41
|
+
# Calling custom actions on a resource
|
42
|
+
subscription.cancel cancel_at_end: false
|
43
|
+
```
|
44
|
+
|
45
|
+
## Supported Resources
|
46
|
+
* Product
|
47
|
+
* Plan
|
48
|
+
* Addon
|
49
|
+
* Customer
|
50
|
+
* Subscription (basic resource methods (create, retrieve, update) + cancel)
|
51
|
+
* Product
|
52
|
+
|
53
|
+
## Resources Planned to be supported
|
54
|
+
* Subscription (more custom actions)
|
55
|
+
* Coupon
|
56
|
+
* ContactPerson
|
57
|
+
* Subscription
|
58
|
+
* Invoice
|
59
|
+
* Payment
|
60
|
+
* CreditNotes
|
61
|
+
* Refund
|
62
|
+
* HostedPage
|
63
|
+
* Event
|
64
|
+
|
65
|
+
## Development
|
66
|
+
|
67
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
|
68
|
+
|
69
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
70
|
+
|
71
|
+
## Contributing
|
72
|
+
|
73
|
+
1. Fork it ( https://github.com/[my-github-username]/zoho-subscriptions/fork )
|
74
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
75
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
76
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
77
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "zoho/subscriptions"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "zoho/subscriptions/version"
|
2
|
+
require "active_support"
|
3
|
+
|
4
|
+
module Zoho
|
5
|
+
module Subscriptions
|
6
|
+
extend ActiveSupport::Autoload
|
7
|
+
|
8
|
+
autoload :Errors
|
9
|
+
autoload :Client
|
10
|
+
autoload :ResourceBase
|
11
|
+
autoload :Product
|
12
|
+
autoload :Plan
|
13
|
+
autoload :Addon
|
14
|
+
autoload :Coupon
|
15
|
+
autoload :Customer
|
16
|
+
autoload :ContactPerson
|
17
|
+
autoload :Subscription
|
18
|
+
autoload :Invoice
|
19
|
+
autoload :Payment
|
20
|
+
autoload :CreditNotes
|
21
|
+
autoload :Refund
|
22
|
+
autoload :HostedPage
|
23
|
+
autoload :Event
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Zoho
|
2
|
+
module Subscriptions
|
3
|
+
class Addon < ResourceBase
|
4
|
+
resource_attributes :addon_code,
|
5
|
+
:name,
|
6
|
+
:unit_name,
|
7
|
+
:pricing_scheme,
|
8
|
+
:price_brackets,
|
9
|
+
:type,
|
10
|
+
:interval_unit,
|
11
|
+
:plans,
|
12
|
+
:status,
|
13
|
+
:product_id,
|
14
|
+
:description,
|
15
|
+
:tax_id,
|
16
|
+
:updated_time,
|
17
|
+
:created_time
|
18
|
+
|
19
|
+
alias :id :addon_code
|
20
|
+
alias :id= :addon_code=
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "httparty"
|
2
|
+
|
3
|
+
module Zoho
|
4
|
+
module Subscriptions
|
5
|
+
class Client
|
6
|
+
include HTTParty
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def configure(auth_token:, organization_id:)
|
10
|
+
# auth_token: eb4cb816a2ec612f208f13d77086aa25
|
11
|
+
# organization_id: 59183978
|
12
|
+
headers "Authorization" => "Zoho-authtoken #{auth_token}"
|
13
|
+
headers "X-com-zoho-subscriptions-organizationid" => organization_id
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
base_uri "https://subscriptions.zoho.com/api/v1"
|
18
|
+
format :json
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Zoho
|
2
|
+
module Subscriptions
|
3
|
+
class Customer < ResourceBase
|
4
|
+
resource_attributes :customer_id,
|
5
|
+
:display_name,
|
6
|
+
:first_name,
|
7
|
+
:last_name,
|
8
|
+
:email,
|
9
|
+
:company_name,
|
10
|
+
:phone,
|
11
|
+
:mobile,
|
12
|
+
:website,
|
13
|
+
:billing_address,
|
14
|
+
:shipping_address,
|
15
|
+
:currency_code,
|
16
|
+
:currency_symbol,
|
17
|
+
:currency_id,
|
18
|
+
:price_precision,
|
19
|
+
:unused_credits,
|
20
|
+
:balance,
|
21
|
+
:outstanding,
|
22
|
+
:notes,
|
23
|
+
:status,
|
24
|
+
:custom_fields,
|
25
|
+
:zcrm_account_id,
|
26
|
+
:zcrm_contact_id,
|
27
|
+
:updated_time,
|
28
|
+
:created_time
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Zoho
|
2
|
+
module Subscriptions
|
3
|
+
module Errors
|
4
|
+
# @note: Catch Zoho::Subscriptions::Errors::Error to handle all Zoho::Subscriptions related
|
5
|
+
# errors. Any errors related to the service must inherit Zoho::Subscriptions::Errors::Error.
|
6
|
+
class Error < StandardError
|
7
|
+
end
|
8
|
+
|
9
|
+
# @note: When the response status is 400
|
10
|
+
class BadRequest < Error
|
11
|
+
end
|
12
|
+
|
13
|
+
# @note: When the response status is 401
|
14
|
+
class Unauthorized < Error
|
15
|
+
end
|
16
|
+
|
17
|
+
# @note: When the response status is 404
|
18
|
+
class NotFound < Error
|
19
|
+
end
|
20
|
+
|
21
|
+
# @note: When the response status is 405
|
22
|
+
class MethodNotAllowed < Error
|
23
|
+
end
|
24
|
+
|
25
|
+
# @note: When the response status is 429
|
26
|
+
class TooManyRequests < Error
|
27
|
+
end
|
28
|
+
|
29
|
+
class InternalServerError < Error
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Zoho
|
2
|
+
module Subscriptions
|
3
|
+
class Plan < ResourceBase
|
4
|
+
resource_attributes :plan_code,
|
5
|
+
:plan_id,
|
6
|
+
:name,
|
7
|
+
:recurring_price,
|
8
|
+
:interval,
|
9
|
+
:interval_unit,
|
10
|
+
:billing_cycles,
|
11
|
+
:trial_period,
|
12
|
+
:setup_fee,
|
13
|
+
:addons,
|
14
|
+
:product_id,
|
15
|
+
:tax_id,
|
16
|
+
:description,
|
17
|
+
:status,
|
18
|
+
:created_time,
|
19
|
+
:updated_time
|
20
|
+
|
21
|
+
alias :id :plan_code
|
22
|
+
alias :id= :plan_code=
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
require "active_model"
|
2
|
+
|
3
|
+
module Zoho
|
4
|
+
module Subscriptions
|
5
|
+
class ResourceBase
|
6
|
+
include ActiveModel::Model
|
7
|
+
include ActiveSupport::Configurable
|
8
|
+
|
9
|
+
config_accessor :resource_name
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def inherited(resource)
|
13
|
+
resource.configure do |config|
|
14
|
+
config.resource_name = resource.name.gsub("Zoho::Subscriptions::", "").underscore
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def resource_attributes(*attribute_names)
|
19
|
+
@attribute_names = attribute_names
|
20
|
+
attr_accessor *attribute_names
|
21
|
+
end
|
22
|
+
|
23
|
+
def all(filter = {})
|
24
|
+
response = Client.get "/#{pluralized_resource_name}", query: filter
|
25
|
+
|
26
|
+
case response.code
|
27
|
+
when 200
|
28
|
+
response[pluralized_resource_name].map { |attributes| new attributes.slice(*attribute_names.map(&:to_s)) }
|
29
|
+
else
|
30
|
+
unexpected_response response
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def find(id)
|
35
|
+
response = Client.get "#{resource_path}/#{id}"
|
36
|
+
|
37
|
+
case response.code
|
38
|
+
when 200
|
39
|
+
new response[resource_name].slice(*attribute_names.map(&:to_s))
|
40
|
+
when 404, 400 # Could be a bug in the API but currently when not found the response code is 400
|
41
|
+
raise Errors::NotFound, "cannot find #{resource_name} with id:#{id} "
|
42
|
+
else
|
43
|
+
unexpected_response response
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def create(attributes)
|
48
|
+
response = Client.post resource_path, body: attributes.to_json
|
49
|
+
|
50
|
+
case response.code
|
51
|
+
when 201
|
52
|
+
new response[resource_name].slice(*attribute_names.map(&:to_s))
|
53
|
+
else
|
54
|
+
unexpected_response response
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def update(id, attributes)
|
59
|
+
custom_request :put, "#{resource_path}/#{id}", body: attributes.to_json
|
60
|
+
end
|
61
|
+
|
62
|
+
def destroy(id)
|
63
|
+
response = Client.delete "#{resource_path}/#{id}"
|
64
|
+
|
65
|
+
unexpected_response response unless response.code == 200
|
66
|
+
end
|
67
|
+
|
68
|
+
def resource_path
|
69
|
+
"/#{pluralized_resource_name}"
|
70
|
+
end
|
71
|
+
|
72
|
+
def resource_id
|
73
|
+
:"#{resource_name}_id"
|
74
|
+
end
|
75
|
+
|
76
|
+
def custom_request(http_method, api_path, http_options)
|
77
|
+
response = Client.send http_method, api_path, http_options
|
78
|
+
|
79
|
+
case response.code
|
80
|
+
when 200, 201
|
81
|
+
response[resource_name].slice(*attribute_names.map(&:to_s))
|
82
|
+
else
|
83
|
+
unexpected_response response
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def custom_action(action_name, http_method:, send_params_through: :body)
|
88
|
+
unless [:get, :post, :put, :delete].include? http_method
|
89
|
+
raise ArgumentError, "unsupported HTTP method: #{http_method}"
|
90
|
+
end
|
91
|
+
|
92
|
+
unless [:query, :body].include? send_params_through
|
93
|
+
raise ArgumentError, "unsupported params method: #{send_params_through}"
|
94
|
+
end
|
95
|
+
|
96
|
+
define_method action_name do |**params|
|
97
|
+
formatted_params = if send_params_through == :body
|
98
|
+
params.to_json
|
99
|
+
else
|
100
|
+
params
|
101
|
+
end
|
102
|
+
|
103
|
+
new_attributes = custom_request http_method,
|
104
|
+
"#{resource_path}/#{action_name}",
|
105
|
+
send_params_through => formatted_params
|
106
|
+
|
107
|
+
new_attributes.each do |attribute_name, value|
|
108
|
+
public_send "#{attribute_name}=", value
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def unexpected_response(response)
|
114
|
+
case response.code
|
115
|
+
when 400
|
116
|
+
raise Errors::BadRequest, response["message"]
|
117
|
+
when 401
|
118
|
+
raise Errors::Unauthorized, response["message"]
|
119
|
+
when 405
|
120
|
+
raise Errors::MethodNotAllowed, response["message"]
|
121
|
+
when 429
|
122
|
+
raise Errors::TooManyRequests, response["message"]
|
123
|
+
when 500
|
124
|
+
raise Errors::InternalServerError
|
125
|
+
else
|
126
|
+
raise Errors::Error, "unexpected response code: #{response.code}"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
private
|
131
|
+
|
132
|
+
attr_reader :attribute_names
|
133
|
+
|
134
|
+
def pluralized_resource_name
|
135
|
+
resource_name.pluralize
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
delegate :resource_id, :custom_request, to: :"self.class"
|
140
|
+
|
141
|
+
def id
|
142
|
+
public_send resource_id
|
143
|
+
end
|
144
|
+
|
145
|
+
def id=(new_id)
|
146
|
+
public_send "#{resource_id}=", new_id
|
147
|
+
end
|
148
|
+
|
149
|
+
def ==(other)
|
150
|
+
super || other.instance_of?(self.class) && !id.nil? && other.id == id
|
151
|
+
end
|
152
|
+
alias :eql? :==
|
153
|
+
|
154
|
+
def update(attributes)
|
155
|
+
new_attributes = self.class.update id, attributes
|
156
|
+
|
157
|
+
new_attributes.each do |attribute_name, value|
|
158
|
+
public_send "#{attribute_name}=", value
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def destroy
|
163
|
+
self.class.destroy id
|
164
|
+
end
|
165
|
+
|
166
|
+
def resource_path
|
167
|
+
"#{self.class.resource_path}/#{id}"
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Zoho
|
2
|
+
module Subscriptions
|
3
|
+
class Subscription < ResourceBase
|
4
|
+
resource_attributes :subscription_id,
|
5
|
+
:name,
|
6
|
+
:customer,
|
7
|
+
:contactpersons,
|
8
|
+
:amount,
|
9
|
+
:product_id,
|
10
|
+
:plan,
|
11
|
+
:addons,
|
12
|
+
:coupon,
|
13
|
+
:custom_fields,
|
14
|
+
:trial_starts_at,
|
15
|
+
:trial_ends_at,
|
16
|
+
:activated_at,
|
17
|
+
:reference_id,
|
18
|
+
:currency_code,
|
19
|
+
:currency_symbol,
|
20
|
+
:exchange_rate,
|
21
|
+
:starts_at,
|
22
|
+
:status,
|
23
|
+
:auto_collect,
|
24
|
+
:salesperson_id,
|
25
|
+
:salesperson_name,
|
26
|
+
:card,
|
27
|
+
:child_invoice_id,
|
28
|
+
:interval,
|
29
|
+
:interval_unit,
|
30
|
+
:current_term_starts_at,
|
31
|
+
:current_term_ends_at,
|
32
|
+
:expires_at,
|
33
|
+
:last_billing_at,
|
34
|
+
:next_billing_at,
|
35
|
+
:cancelled_at,
|
36
|
+
:source,
|
37
|
+
:next_retry_at,
|
38
|
+
:notes,
|
39
|
+
:created_time,
|
40
|
+
:updated_time
|
41
|
+
|
42
|
+
custom_action :cancel, http_method: :post, send_params_through: :query
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'zoho/subscriptions/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "zoho-subscriptions"
|
8
|
+
spec.version = Zoho::Subscriptions::VERSION
|
9
|
+
spec.authors = ["Ronald Maravilla"]
|
10
|
+
spec.email = ["rmaravilla@payrollhero.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{A Zoho Subscription API Client.}
|
13
|
+
spec.description = %q{A Zoho Subscription API Client.}
|
14
|
+
spec.homepage = "https://github.com/payrollhero/zoho-subscriptions"
|
15
|
+
spec.license = "BSD-3-Clause"
|
16
|
+
|
17
|
+
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "webmock"
|
27
|
+
spec.add_development_dependency "sinatra"
|
28
|
+
|
29
|
+
spec.add_dependency "activesupport"
|
30
|
+
spec.add_dependency "activemodel"
|
31
|
+
spec.add_dependency "httparty"
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zoho-subscriptions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ronald Maravilla
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: webmock
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sinatra
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: activesupport
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: activemodel
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: httparty
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: A Zoho Subscription API Client.
|
126
|
+
email:
|
127
|
+
- rmaravilla@payrollhero.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".travis.yml"
|
135
|
+
- CODE_OF_CONDUCT.md
|
136
|
+
- Gemfile
|
137
|
+
- LICENSE
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- bin/console
|
141
|
+
- bin/setup
|
142
|
+
- lib/zoho/subscriptions.rb
|
143
|
+
- lib/zoho/subscriptions/addon.rb
|
144
|
+
- lib/zoho/subscriptions/client.rb
|
145
|
+
- lib/zoho/subscriptions/customer.rb
|
146
|
+
- lib/zoho/subscriptions/errors.rb
|
147
|
+
- lib/zoho/subscriptions/plan.rb
|
148
|
+
- lib/zoho/subscriptions/product.rb
|
149
|
+
- lib/zoho/subscriptions/resource_base.rb
|
150
|
+
- lib/zoho/subscriptions/subscription.rb
|
151
|
+
- lib/zoho/subscriptions/version.rb
|
152
|
+
- zoho-subscriptions.gemspec
|
153
|
+
homepage: https://github.com/payrollhero/zoho-subscriptions
|
154
|
+
licenses:
|
155
|
+
- BSD-3-Clause
|
156
|
+
metadata: {}
|
157
|
+
post_install_message:
|
158
|
+
rdoc_options: []
|
159
|
+
require_paths:
|
160
|
+
- lib
|
161
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '0'
|
171
|
+
requirements: []
|
172
|
+
rubyforge_project:
|
173
|
+
rubygems_version: 2.2.3
|
174
|
+
signing_key:
|
175
|
+
specification_version: 4
|
176
|
+
summary: A Zoho Subscription API Client.
|
177
|
+
test_files: []
|
178
|
+
has_rdoc:
|