zoho_books 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50914272ab350678fb813567bd0874a2c31b6e2ada8172d4e9635ec3c583d21e
4
- data.tar.gz: 4f57bffb652672d0eee31050bbce58bc63c27fcdbad5ba92c7b9cb3363a271f5
3
+ metadata.gz: aa494c986b5d2a51bd61c12e12d1daf454c548447d9cf0622874ffaa66ff4142
4
+ data.tar.gz: 7fd8d731a793fca4aa5206c9f9e51196cb86ebf2819ac99af23194b4f5aa01b6
5
5
  SHA512:
6
- metadata.gz: 99ab636fbf3388b19b602be15726b0636dad6800995a25021f14b1d31ea7571a0ff8d80abdad2653f90f3a43e1f6e279dfc80df6e76cdc3c6f9a25fb86ad724c
7
- data.tar.gz: deb65b9772fc6dd360ab8efb25aae0bc96796121b364bbcc659862414e8363f5df8492c4a661c463b556a511f55c81698cd75d490531f9226ec3186a7dc13fee
6
+ metadata.gz: dfc9f595f0b0c07cd0b361e38ee295aba573081147f782466b3634ecdf1b5f40497ec16e1debc7103d3f17436a6fe3e4defd1b002e7a3213efa5d24cc2de989c
7
+ data.tar.gz: a360ee96fbc8fc44849e76ec27dee02e10127110471fdf5fb5244e57e7fa1ba5cad9c4c4f59b856e6e980576f8497d83e45e5100b504f511df70385d721c0dce
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
@@ -7,7 +8,7 @@ module ZohoBooks
7
8
  endoint_url = "oauth/v2/token?refresh_token=#{ZohoBooks.config.refresh_token}&client_id=#{ZohoBooks.config.client_id}&client_secret=#{ZohoBooks.config.client_secret}&redirect_uri=#{ZohoBooks.config.redirect_uri}&grant_type=refresh_token"
8
9
  response = HTTParty.post("#{ZohoBooks.config.base_url}/#{endoint_url}")
9
10
 
10
- return ZohoBooks::Error.new(response.code, response["error"]) if response.code != 200
11
+ return ZohoBooks::Error.new(response.code, response['error']) if response.code != 200
11
12
 
12
13
  ZohoBooks.config.access_token = response.parsed_response['access_token']
13
14
  ZohoBooks.config.access_token_expires_at = Time.now.to_i + response.parsed_response['expires_in'].to_i
@@ -1,19 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ZohoBooks
2
4
  class Config
3
5
  attr_accessor :client_id, :client_secret, :redirect_uri, :refresh_token, :base_url,
4
6
  :portal_id, :access_token, :organization_id, :refresh_token, :access_token_expires_at
5
7
 
6
- DEFAULT_BASE_URL = "https://accounts.zoho.eu".freeze
8
+ DEFAULT_BASE_URL = 'https://accounts.zoho.eu'
7
9
 
8
10
  def initialize(config = {})
9
- @base_url = config["base_url"] || DEFAULT_BASE_URL
10
- @portal_id = config["portal_id"]
11
- @access_token = config["access_token"]
12
- @client_id = config["client_id"]
13
- @client_secret = config["client_secret"]
14
- @redirect_uri = config["redirect_uri"]
15
- @organization_id = config["organization_id"]
16
- @refresh_token = config["refresh_token"]
11
+ @base_url = config['base_url'] || DEFAULT_BASE_URL
12
+ @portal_id = config['portal_id']
13
+ @access_token = config['access_token']
14
+ @client_id = config['client_id']
15
+ @client_secret = config['client_secret']
16
+ @redirect_uri = config['redirect_uri']
17
+ @organization_id = config['organization_id']
18
+ @refresh_token = config['refresh_token']
17
19
 
18
20
  @access_token_expires_at = nil
19
21
  end
@@ -1,21 +1,21 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
5
- BASE_URL='https://www.zohoapis.eu/books/v3'
6
+ BASE_URL = 'https://www.zohoapis.eu/books/v3'
6
7
 
7
8
  class Connection
8
-
9
9
  def self.get(url)
10
- response = HTTParty.get(url, headers: headers)
10
+ response = HTTParty.get(url, headers:)
11
11
 
12
- return ZohoBooks::Error.new(response.code, response["error"]) if response.code != 200
12
+ return ZohoBooks::Error.new(response.code, response['error']) if response.code != 200
13
13
 
14
14
  response
15
15
  end
16
16
 
17
17
  def self.post(url, body)
18
- response = HTTParty.post(url, body: body, headers: headers)
18
+ response = HTTParty.post(url, body:, headers:)
19
19
 
20
20
  return render_error(response) if response.code != 201
21
21
 
@@ -23,7 +23,7 @@ module ZohoBooks
23
23
  end
24
24
 
25
25
  def self.put(url, body)
26
- response = HTTParty.put(url, body: body, headers: headers)
26
+ response = HTTParty.put(url, body:, headers:)
27
27
 
28
28
  return render_error(response) if response.code != 200
29
29
 
@@ -31,15 +31,13 @@ module ZohoBooks
31
31
  end
32
32
 
33
33
  def self.delete(url)
34
- response = HTTParty.delete(url, headers: headers)
34
+ response = HTTParty.delete(url, headers:)
35
35
 
36
36
  return render_error(response) if response.code != 200
37
37
 
38
38
  response
39
39
  end
40
40
 
41
- private
42
-
43
41
  def self.headers
44
42
  {
45
43
  'Authorization' => "Zoho-oauthtoken #{access_token}",
@@ -56,7 +54,7 @@ module ZohoBooks
56
54
  end
57
55
 
58
56
  def self.render_error(response)
59
- ZohoBooks::Error.new(response.code, response["message"] || '')
57
+ ZohoBooks::Error.new(response.code, response['message'] || '')
60
58
  end
61
59
  end
62
60
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
@@ -7,20 +8,22 @@ module ZohoBooks
7
8
  query = opts.map { |k, v| "#{k}=#{v}" }.join('&')
8
9
  ZohoBooks::Connection.get("#{BASE_URL}/contacts?organization_id=#{ZohoBooks.config.organization_id}&#{query}")
9
10
  end
10
-
11
- def self.get(id, opts = {})
11
+
12
+ def self.get(id, _opts = {})
12
13
  ZohoBooks::Connection.get("#{BASE_URL}/contacts/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
13
14
  end
14
15
 
15
- def self.create(body, opts = {})
16
- ZohoBooks::Connection.post("#{BASE_URL}/contacts?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
16
+ def self.create(body, _opts = {})
17
+ ZohoBooks::Connection.post("#{BASE_URL}/contacts?organization_id=#{ZohoBooks.config.organization_id}",
18
+ body.to_json)
17
19
  end
18
20
 
19
- def self.update(id, body, opts = {})
20
- ZohoBooks::Connection.put("#{BASE_URL}/contacts/#{id}?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
21
+ def self.update(id, body, _opts = {})
22
+ ZohoBooks::Connection.put("#{BASE_URL}/contacts/#{id}?organization_id=#{ZohoBooks.config.organization_id}",
23
+ body.to_json)
21
24
  end
22
25
 
23
- def self.delete(id, opts = {})
26
+ def self.delete(id, _opts = {})
24
27
  ZohoBooks::Connection.delete("#{BASE_URL}/contacts/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
25
28
  end
26
29
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
@@ -8,19 +9,21 @@ module ZohoBooks
8
9
  ZohoBooks::Connection.get("#{BASE_URL}/estimates?organization_id=#{ZohoBooks.config.organization_id}&#{query}")
9
10
  end
10
11
 
11
- def self.get(id, opts = {})
12
+ def self.get(id, _opts = {})
12
13
  ZohoBooks::Connection.get("#{BASE_URL}/estimates/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
13
14
  end
14
15
 
15
- def self.create(body, opts = {})
16
- ZohoBooks::Connection.post("#{BASE_URL}/estimates?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
16
+ def self.create(body, _opts = {})
17
+ ZohoBooks::Connection.post("#{BASE_URL}/estimates?organization_id=#{ZohoBooks.config.organization_id}",
18
+ body.to_json)
17
19
  end
18
20
 
19
- def self.update(id, body, opts = {})
20
- ZohoBooks::Connection.put("#{BASE_URL}/estimates/#{id}?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
21
+ def self.update(id, body, _opts = {})
22
+ ZohoBooks::Connection.put("#{BASE_URL}/estimates/#{id}?organization_id=#{ZohoBooks.config.organization_id}",
23
+ body.to_json)
21
24
  end
22
25
 
23
- def self.delete(id, opts = {})
26
+ def self.delete(id, _opts = {})
24
27
  ZohoBooks::Connection.delete("#{BASE_URL}/estimates/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
25
28
  end
26
29
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'httparty'
4
+
5
+ module ZohoBooks
6
+ class Invoice
7
+ def self.list(opts = {})
8
+ query = opts.map { |k, v| "#{k}=#{v}" }.join('&')
9
+ ZohoBooks::Connection.get("#{BASE_URL}/invoices?organization_id=#{ZohoBooks.config.organization_id}&#{query}")
10
+ end
11
+
12
+ def self.get(id, _opts = {})
13
+ ZohoBooks::Connection.get("#{BASE_URL}/invoices/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
14
+ end
15
+
16
+ def self.create(body, _opts = {})
17
+ ZohoBooks::Connection.post("#{BASE_URL}/invoices?organization_id=#{ZohoBooks.config.organization_id}",
18
+ body.to_json)
19
+ end
20
+
21
+ def self.update(id, body, _opts = {})
22
+ ZohoBooks::Connection.put("#{BASE_URL}/invoices/#{id}?organization_id=#{ZohoBooks.config.organization_id}",
23
+ body.to_json)
24
+ end
25
+
26
+ def self.delete(id, _opts = {})
27
+ ZohoBooks::Connection.delete("#{BASE_URL}/invoices/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
28
+ end
29
+ end
30
+ end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
@@ -8,15 +9,20 @@ module ZohoBooks
8
9
  ZohoBooks::Connection.get("#{BASE_URL}/items?organization_id=#{ZohoBooks.config.organization_id}&#{query}")
9
10
  end
10
11
 
11
- def self.create(body, opts = {})
12
+ def self.get(id, _opts = {})
13
+ ZohoBooks::Connection.get("#{BASE_URL}/items/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
14
+ end
15
+
16
+ def self.create(body, _opts = {})
12
17
  ZohoBooks::Connection.post("#{BASE_URL}/items?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
13
18
  end
14
19
 
15
- def self.update(id, body, opts = {})
16
- ZohoBooks::Connection.put("#{BASE_URL}/items/#{id}?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
20
+ def self.update(id, body, _opts = {})
21
+ ZohoBooks::Connection.put("#{BASE_URL}/items/#{id}?organization_id=#{ZohoBooks.config.organization_id}",
22
+ body.to_json)
17
23
  end
18
24
 
19
- def self.delete(id, opts = {})
25
+ def self.delete(id, _opts = {})
20
26
  ZohoBooks::Connection.delete("#{BASE_URL}/items/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
21
27
  end
22
28
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'httparty'
3
4
 
4
5
  module ZohoBooks
@@ -8,19 +9,21 @@ module ZohoBooks
8
9
  ZohoBooks::Connection.get("#{BASE_URL}/settings/taxes?organization_id=#{ZohoBooks.config.organization_id}&#{query}")
9
10
  end
10
11
 
11
- def self.get(id, opts = {})
12
+ def self.get(id, _opts = {})
12
13
  ZohoBooks::Connection.get("#{BASE_URL}/settings/taxes/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
13
14
  end
14
15
 
15
- def self.create(body, opts = {})
16
- ZohoBooks::Connection.post("#{BASE_URL}/settings/taxes?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
16
+ def self.create(body, _opts = {})
17
+ ZohoBooks::Connection.post("#{BASE_URL}/settings/taxes?organization_id=#{ZohoBooks.config.organization_id}",
18
+ body.to_json)
17
19
  end
18
20
 
19
- def self.update(id, body, opts = {})
20
- ZohoBooks::Connection.put("#{BASE_URL}/settings/taxes/#{id}?organization_id=#{ZohoBooks.config.organization_id}", body.to_json)
21
+ def self.update(id, body, _opts = {})
22
+ ZohoBooks::Connection.put("#{BASE_URL}/settings/taxes/#{id}?organization_id=#{ZohoBooks.config.organization_id}",
23
+ body.to_json)
21
24
  end
22
25
 
23
- def self.delete(id, opts = {})
26
+ def self.delete(id, _opts = {})
24
27
  ZohoBooks::Connection.delete("#{BASE_URL}/settings/taxes/#{id}?organization_id=#{ZohoBooks.config.organization_id}")
25
28
  end
26
29
  end
data/lib/zoho_books.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ZohoBooks
2
4
  end
3
5
 
@@ -10,3 +12,4 @@ require 'zoho_books/contact'
10
12
  require 'zoho_books/estimate'
11
13
  require 'zoho_books/estimates/template'
12
14
  require 'zoho_books/tax'
15
+ require 'zoho_books/invoice'
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zoho_books
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - PapaLoup
8
8
  - Raphtml
9
9
  - theobcl
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-10-10 00:00:00.000000000 Z
13
+ date: 2023-10-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -40,13 +40,14 @@ files:
40
40
  - lib/zoho_books/error.rb
41
41
  - lib/zoho_books/estimate.rb
42
42
  - lib/zoho_books/estimates/template.rb
43
+ - lib/zoho_books/invoice.rb
43
44
  - lib/zoho_books/item.rb
44
45
  - lib/zoho_books/tax.rb
45
46
  homepage: https://rubygems.org/gems/zoho_books
46
47
  licenses:
47
48
  - MIT
48
49
  metadata: {}
49
- post_install_message:
50
+ post_install_message:
50
51
  rdoc_options: []
51
52
  require_paths:
52
53
  - lib
@@ -61,8 +62,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
62
  - !ruby/object:Gem::Version
62
63
  version: '0'
63
64
  requirements: []
64
- rubygems_version: 3.1.6
65
- signing_key:
65
+ rubygems_version: 3.3.26
66
+ signing_key:
66
67
  specification_version: 4
67
68
  summary: Zoho Books API wrapper
68
69
  test_files: []