quaderno 1.12.0 → 1.12.1

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: 99d18f2cc67c9df4eb49d8bf5c545a966c6ff520
4
- data.tar.gz: 2e605b26ce41c9f45b8871852b4cd5251e14f8d5
3
+ metadata.gz: a9ae9abea0d3343d938483cdd28d73d26cfa81d7
4
+ data.tar.gz: ff96ce978beafeec37db10af8c19ebbc2e08ea79
5
5
  SHA512:
6
- metadata.gz: 918acf002048a31ff6f8830d23d72e8ba1a66825aba93322e9a9c1c86e6d8bd4d80ee47f3084bba1bc18c886af56c31f29dd5b6875b675155e3fe4f19b8ca97d
7
- data.tar.gz: 70fecee7f72f788b1d35c4936199dfae703d89f7b9f824b1c29c266af9af90209f5182867b09ce0790f8be50600b129833db420ff306995c61bc9d13f40f158d
6
+ metadata.gz: a3476624509e49e4a2a28f49ec3767c0e6456af336291db6f5409c71943e86b6a0d0e4bbb6d8d688034339268a1d3da948f705c37d532635dd8c9782b1e8d0d3
7
+ data.tar.gz: 966aa6365df9eec3403bbee7504cc7a24f4959e3cb21e216e9ef6c9aaadc1cfb253d7b248809239d08e6cb05ff393e2982353b2cb2bcafae7fb6e33f196b64a7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.12.0
1
+ 1.12.1
@@ -0,0 +1,28 @@
1
+ module Quaderno
2
+ module Behavior
3
+ module Block
4
+ def self.included(receiver)
5
+ receiver.send :extend, ClassMethods
6
+ end
7
+
8
+ module ClassMethods
9
+ include Quaderno::Helpers::Authentication
10
+
11
+ def block(id, options = {})
12
+ authentication = get_authentication(options.merge(api_model: api_model))
13
+
14
+
15
+ response = put("#{authentication[:url]}#{api_model.api_path}/#{id}/block.json",
16
+ basic_auth: authentication[:basic_auth],
17
+ headers: version_header.merge(authentication[:headers])
18
+ )
19
+
20
+ check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
21
+ doc = response.parsed_response
22
+
23
+ new doc
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -3,6 +3,7 @@ module Quaderno
3
3
  include Quaderno::Behavior::Deliver
4
4
  include Quaderno::Behavior::Payment
5
5
  include Quaderno::Behavior::Retrieve
6
+ include Quaderno::Behavior::Block
6
7
 
7
8
  api_model Quaderno::Credit
8
9
  api_path 'credits'
@@ -1,6 +1,7 @@
1
1
  module Quaderno
2
2
  class Expense < Base
3
3
  include Quaderno::Behavior::Payment
4
+ include Quaderno::Behavior::Block
4
5
 
5
6
  api_model Quaderno::Expense
6
7
  api_path 'expenses'
@@ -0,0 +1,13 @@
1
+ module Quaderno
2
+ class Income < Base
3
+ include Quaderno::Behavior::Block
4
+
5
+ class << self
6
+ undef :find, :create, :update, :delete
7
+ end
8
+
9
+ api_model Quaderno::Income
10
+ api_path 'income'
11
+ is_a_document? true
12
+ end
13
+ end
@@ -3,6 +3,7 @@ module Quaderno
3
3
  include Quaderno::Behavior::Deliver
4
4
  include Quaderno::Behavior::Payment
5
5
  include Quaderno::Behavior::Retrieve
6
+ include Quaderno::Behavior::Block
6
7
 
7
8
  api_model Quaderno::Invoice
8
9
  api_path 'invoices'
@@ -1,6 +1,7 @@
1
1
  module Quaderno
2
2
  class Receipt < Base
3
3
  include Quaderno::Behavior::Deliver
4
+ include Quaderno::Behavior::Block
4
5
 
5
6
  api_model Quaderno::Receipt
6
7
  api_path 'receipts'
@@ -1,4 +1,7 @@
1
1
  module Quaderno
2
+ class TaxReport < OpenStruct
3
+ end
4
+
2
5
  class Tax < Base
3
6
  api_model Quaderno::Tax
4
7
  api_path 'taxes'
@@ -7,17 +10,54 @@ module Quaderno
7
10
  undef :all, :find, :create, :update, :delete, :parse_nested
8
11
  end
9
12
 
10
- def self.calculate(params)
11
- party_response = get("#{self.url}taxes/calculate.json", query: params, basic_auth: { username: api_model.auth_token } )
12
- check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
13
- new party_response.parsed_response
13
+ def self.calculate(options = {})
14
+ authentication = get_authentication(options.merge(api_model: api_model))
15
+ params = options.delete_if { |k,v| %w(auth_token access_token api_url mode api_model).include? k.to_s }
16
+
17
+ response = get("#{authentication[:url]}taxes/calculate.json",
18
+ query: params,
19
+ basic_auth: authentication[:basic_auth],
20
+ headers: authentication[:headers]
21
+ )
22
+
23
+ check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
24
+ new response.parsed_response
14
25
  end
15
26
 
16
- def self.validate_vat_number(country, vat_number)
17
- party_response = get("#{self.url}taxes/validate.json", query: {country: country, vat_number: vat_number}, basic_auth: { username: api_model.auth_token } )
18
- check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
27
+ def self.validate_vat_number(country, vat_number, options = {})
28
+ authentication = get_authentication(options.merge(api_model: api_model))
29
+
30
+ response = get("#{authentication[:url]}taxes/validate.json",
31
+ query: { country: country, vat_number: vat_number },
32
+ basic_auth: authentication[:basic_auth],
33
+ headers: authentication[:headers]
34
+ )
35
+
36
+ check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
37
+
38
+ response.parsed_response['valid']
39
+ end
40
+
41
+ def self.reports(options = {})
42
+ authentication = get_authentication(options.merge(api_model: api_model))
43
+ params = options.delete_if { |k,v| %w(auth_token access_token api_url mode api_model).include? k.to_s }
44
+
45
+ response = get("#{authentication[:url]}taxes/reports.json",
46
+ query: params,
47
+ basic_auth: authentication[:basic_auth],
48
+ headers: authentication[:headers]
49
+ )
50
+
51
+ array = response.parsed_response
52
+ collection = Quaderno::Collection.new
53
+ collection.current_page = response.headers['x-pages-currentpage']
54
+ collection.total_pages = response.headers['x-pages-totalpages']
55
+
56
+ array.each { |report| collection << Quaderno::TaxReport.new(report) }
57
+
58
+ check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
19
59
 
20
- party_response.parsed_response['valid']
60
+ collection
21
61
  end
22
62
  end
23
63
  end
data/lib/quaderno-ruby.rb CHANGED
@@ -4,8 +4,8 @@ require 'quaderno-ruby/exceptions/exceptions'
4
4
  require 'quaderno-ruby/helpers/authentication'
5
5
  require 'quaderno-ruby/collection'
6
6
 
7
- %w(crud deliver payment retrieve).each { |filename| require "quaderno-ruby/behavior/#{filename}" }
8
- %w(base contact item invoice receipt credit estimate expense recurring document_item evidence payment webhook tax).each { |filename| require "quaderno-ruby/#{ filename }" }
7
+ %w(block crud deliver payment retrieve).each { |filename| require "quaderno-ruby/behavior/#{filename}" }
8
+ %w(base contact item invoice receipt credit income estimate expense recurring document_item evidence payment webhook tax).each { |filename| require "quaderno-ruby/#{ filename }" }
9
9
 
10
10
  module Quaderno
11
11
 
data/quaderno.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: quaderno 1.12.0 ruby lib
5
+ # stub: quaderno 1.12.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "quaderno"
9
- s.version = "1.12.0"
9
+ s.version = "1.12.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Recrea"]
14
- s.date = "2017-06-14"
14
+ s.date = "2017-06-16"
15
15
  s.description = " A ruby wrapper for Quaderno API "
16
16
  s.email = "carlos@recrea.es"
17
17
  s.extra_rdoc_files = [
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  "changelog.md",
30
30
  "lib/quaderno-ruby.rb",
31
31
  "lib/quaderno-ruby/base.rb",
32
+ "lib/quaderno-ruby/behavior/block.rb",
32
33
  "lib/quaderno-ruby/behavior/crud.rb",
33
34
  "lib/quaderno-ruby/behavior/deliver.rb",
34
35
  "lib/quaderno-ruby/behavior/payment.rb",
@@ -42,6 +43,7 @@ Gem::Specification.new do |s|
42
43
  "lib/quaderno-ruby/exceptions/exceptions.rb",
43
44
  "lib/quaderno-ruby/expense.rb",
44
45
  "lib/quaderno-ruby/helpers/authentication.rb",
46
+ "lib/quaderno-ruby/income.rb",
45
47
  "lib/quaderno-ruby/invoice.rb",
46
48
  "lib/quaderno-ruby/item.rb",
47
49
  "lib/quaderno-ruby/payment.rb",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quaderno
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 1.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recrea
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-14 00:00:00.000000000 Z
11
+ date: 2017-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -70,6 +70,7 @@ files:
70
70
  - changelog.md
71
71
  - lib/quaderno-ruby.rb
72
72
  - lib/quaderno-ruby/base.rb
73
+ - lib/quaderno-ruby/behavior/block.rb
73
74
  - lib/quaderno-ruby/behavior/crud.rb
74
75
  - lib/quaderno-ruby/behavior/deliver.rb
75
76
  - lib/quaderno-ruby/behavior/payment.rb
@@ -83,6 +84,7 @@ files:
83
84
  - lib/quaderno-ruby/exceptions/exceptions.rb
84
85
  - lib/quaderno-ruby/expense.rb
85
86
  - lib/quaderno-ruby/helpers/authentication.rb
87
+ - lib/quaderno-ruby/income.rb
86
88
  - lib/quaderno-ruby/invoice.rb
87
89
  - lib/quaderno-ruby/item.rb
88
90
  - lib/quaderno-ruby/payment.rb