quaderno 2.0.2 → 2.1.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
  SHA256:
3
- metadata.gz: 87cd629b645c9dccf37590027c38d2f32582e4ecb5f746882a9e4c5e8dce951b
4
- data.tar.gz: 5b3f2271733c94ba33a0968c647c221a1ae35fe972b85eba28bfda2e847baf4e
3
+ metadata.gz: a9b1cc29c32e037177c8c590bf7aeec9712e6313445aa7e496584a56e773764f
4
+ data.tar.gz: cf3ff48c4eb21de4f6669f4cb69350c2d8393f6318ea15899a559c5d865a711b
5
5
  SHA512:
6
- metadata.gz: 680f294a15ab5efc78d7457de2ad43ff26df3cfb719ff9d5ddfc19d23832488eb7e624092dff185414aa6867a8e142a3b03c21d35808c736d7c93fdc2418c3a5
7
- data.tar.gz: af06b1277320b63e3df52dd9be2984d61ce17c1418c4e31b68ba91349ad76f7b59e0428e0e697daf9f7569811d892ab4ff7bf8756b25a08fe41635c4883dad0d
6
+ metadata.gz: ce39d849088fe2d0203af6cb46f2d1af55b9ea364be9cc72f28ae5276426352a0b8c2f6c1e5433e5af6afa5997e1b10d61b9c7721629ed69bc11e03cefbebcfb
7
+ data.tar.gz: d822575449a512681d494565381beb6e5bb50f5ef6b680d3b3d2c7e90c86e84d1d747026c915398bae87c3244eeeca4c57ed3a7983a6774a104dca0a443b85ca
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+ - name: Run tests
35
+ run: bundle exec rspec ./spec/**/*.rb
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Quaderno-ruby is a ruby wrapper for [Quaderno API] (https://github.com/quaderno/quaderno-api).
4
4
 
5
- Current version is 2.0.1 See the changelog [here](https://github.com/quaderno/quaderno-ruby/blob/master/changelog.md)
5
+ Current version is 2.1.0 See the changelog [here](https://github.com/quaderno/quaderno-ruby/blob/master/changelog.md)
6
6
 
7
7
  ## Installation & Configuration
8
8
 
@@ -19,6 +19,7 @@ To configure just add this to your initializers
19
19
  config.auth_token = 'my_authenticate_token'
20
20
  config.url = 'https://my_subdomain.quadernoapp.com/api/'
21
21
  config.api_version = API_VERSION # Optional, defaults to the API version set in your account
22
+ config.user_agent_header = 'my custom user agent' # Optional, will make support for your account more efficient if you are doing oauth integrations
22
23
  end
23
24
  ```
24
25
 
@@ -584,6 +585,29 @@ will update the specified checkout session with the data of the hash passed as s
584
585
  ```
585
586
  will delete the checkout session with the id passed as parameter. If the deletion was successful, an instance of `Quaderno::CheckoutSession` with the `deleted` attribute set to `true` will be returned.
586
587
 
588
+ ## Managing report requests
589
+
590
+ ### Getting report requests
591
+ ```ruby
592
+ Quaderno::ReportRequest.all #=> Array
593
+ ```
594
+
595
+ will return an array with all your report requests.
596
+
597
+ ### Finding a report request
598
+ ```ruby
599
+ Quaderno::ReportRequest.find(id) #=> Quaderno::ReportRequest
600
+ ```
601
+
602
+ will return the report request with the id passed as parameter.
603
+
604
+ ### Creating a new report request
605
+
606
+ ```ruby
607
+ Quaderno::ReportRequest.create(params) #=> Quaderno::ReportRequest
608
+ ```
609
+
610
+ will create a report request using the information of the hash passed as parameter and return an instance of Quaderno::ReportRequest with the created report request.
587
611
 
588
612
  ## Exceptions
589
613
  Quaderno-ruby exceptions raise depending on the type of error:
@@ -603,6 +627,7 @@ Quaderno-ruby exceptions raise depending on the type of error:
603
627
 
604
628
  Quaderno::Exceptions::RequiredFieldsEmptyOrInvalid # Raised if the format of the request is right but some validations failed. You can JSON parse the exception message to get which field triggered the exception. For example: '{"errors":{"vat_number":["is not a valid German vat number"]}}'
605
629
 
630
+ Quaderno::Exceptions::ServerError # Raised when Quaderno returns an HTTP response code of the 50X family. Try again later or contact support if the issue persists
606
631
  ```
607
632
 
608
633
  All those exceptions inherit from `Quaderno::Exceptions::BaseException`.
@@ -614,7 +639,7 @@ Whenever you call the `all` method on one of the classes, the result will be a `
614
639
  collection = Quaderno::Contact.all
615
640
 
616
641
  collection.class #=> Quaderno::Collection
617
- collection.has_next? #=> true
642
+ collection.has_more? #=> true
618
643
  collection.next_page #=> another instance of
619
644
  ```
620
645
 
data/changelog.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.1.0
4
+ * Added a new `Quaderno::Exceptions::ServerError` exception for more transparency, and better control of workflows
5
+ * Added a `user_agent_header` optional configuration to make debugging oauth integrations easier
6
+
3
7
  ## 2.0.2
4
8
  * Fix an issue with the parameters sent during the `validate_vat_number` request
5
9
  * Renames `validate_vat_number` into `validate_tax_id`
@@ -15,6 +15,7 @@ class Quaderno::Base < OpenStruct
15
15
  @@rate_limit_info = nil
16
16
  @@api_version = nil
17
17
  @@url = PRODUCTION_URL
18
+ @@user_agent_suffix = nil
18
19
 
19
20
  # Class methods
20
21
  def self.api_model(klass)
@@ -56,6 +57,8 @@ class Quaderno::Base < OpenStruct
56
57
  data.rate_limit_info = response
57
58
 
58
59
  data
60
+ elsif response.response.is_a?(Net::HTTPServerError)
61
+ raise_exception(Quaderno::Exceptions::ServerError, 'Server error', response)
59
62
  else
60
63
  raise_exception(Quaderno::Exceptions::InvalidSubdomainOrToken, 'Invalid subdomain or token', response)
61
64
  end
@@ -140,7 +143,7 @@ class Quaderno::Base < OpenStruct
140
143
  end
141
144
 
142
145
  def self.user_agent_header
143
- { "User-Agent" => "Quaderno Ruby Gem #{Quaderno::VERSION}" }
146
+ @_user_agent_header ||= { "User-Agent" => ["Quaderno Ruby Gem #{Quaderno::VERSION}", @@user_agent_suffix].compact.join(' - ') }
144
147
  end
145
148
 
146
149
  def self.version_header
@@ -24,6 +24,9 @@ module Quaderno::Exceptions
24
24
  class UnsupportedApiVersion < BaseException
25
25
  end
26
26
 
27
+ class ServerError < BaseException
28
+ end
29
+
27
30
  def self.included(receiver)
28
31
  receiver.send :extend, ClassMethods
29
32
  end
@@ -50,6 +53,8 @@ module Quaderno::Exceptions
50
53
  if params[:has_documents].nil? == false
51
54
  raise_exception(Quaderno::Exceptions::HasAssociatedDocuments, party_response.body, party_response) if party_response.response.class == Net::HTTPClientError
52
55
  end
56
+
57
+ raise_exception(Quaderno::Exceptions::ServerError, 'Server error', response) if party_response.response.is_a?(Net::HTTPServerError)
53
58
  end
54
59
 
55
60
  def raise_exception(klass, message, response)
@@ -0,0 +1,4 @@
1
+ class Quaderno::ReportRequest < Quaderno::Base
2
+ api_model Quaderno::ReportRequest
3
+ api_path 'reporting/requests'
4
+ end
@@ -1,3 +1,3 @@
1
1
  class Quaderno
2
- VERSION = "2.0.2"
2
+ VERSION = "2.1.0"
3
3
  end
data/lib/quaderno-ruby.rb CHANGED
@@ -10,4 +10,4 @@ require 'quaderno-ruby/helpers/authentication'
10
10
  require 'quaderno-ruby/collection'
11
11
 
12
12
  %w(block crud deliver payment retrieve).each { |filename| require "quaderno-ruby/behavior/#{filename}" }
13
- %w(base contact item invoice receipt credit income estimate expense recurring document_item report evidence payment webhook tax checkout_session).each { |filename| require "quaderno-ruby/#{ filename }" }
13
+ %w(base contact item invoice receipt credit income estimate expense recurring document_item report report_request evidence payment webhook tax checkout_session).each { |filename| require "quaderno-ruby/#{ filename }" }
data/quaderno.gemspec CHANGED
@@ -4,30 +4,29 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'quaderno-ruby/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "quaderno"
7
+ spec.name = 'quaderno'
8
8
  spec.version = Quaderno::VERSION
9
- spec.authors = ["Recrea"]
10
- spec.email = "carlos@recrea.es"
9
+ spec.authors = ['Recrea']
10
+ spec.email = 'carlos@recrea.es'
11
11
 
12
- spec.summary = "Ruby wrapper for the Quaderno API (https://quaderno.io/docs/api)"
13
- spec.description = " A ruby wrapper for Quaderno API "
14
- spec.homepage = "http://github.com/quaderno/quaderno-ruby"
15
- spec.licenses = ["MIT"]
12
+ spec.summary = 'Ruby wrapper for the Quaderno API (https://quaderno.io/docs/api)'
13
+ spec.description = ' A ruby wrapper for Quaderno API '
14
+ spec.homepage = 'http://github.com/quaderno/quaderno-ruby'
15
+ spec.licenses = ['MIT']
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = %w(lib)
21
- spec.date = "2018-05-07"
21
+ spec.date = '2018-05-07'
22
22
  spec.extra_rdoc_files = %w(LICENSE.txt README.md)
23
23
 
24
-
25
- spec.add_dependency('httparty', "~> 0.13")
26
- spec.add_development_dependency('rdoc', "~> 3.12")
27
- spec.add_development_dependency('activesupport', "~> 4.2.0")
28
- spec.add_development_dependency('webmock', "~> 1.22.6")
29
- spec.add_development_dependency('vcr', ">= 0")
30
- spec.add_development_dependency("bundler", "~> 2.2")
31
- spec.add_development_dependency("rake", ">= 12.3.3")
32
- spec.add_development_dependency("rspec", "~> 3.0")
24
+ spec.add_dependency('httparty', '~> 0.13')
25
+ spec.add_development_dependency('rdoc', '>= 6.3.1')
26
+ spec.add_development_dependency('activesupport', '~> 4.2.0')
27
+ spec.add_development_dependency('webmock', '~> 1.22.6')
28
+ spec.add_development_dependency('vcr', '>= 0')
29
+ spec.add_development_dependency('bundler', '~> 2.2')
30
+ spec.add_development_dependency('rake', '>= 12.3.3')
31
+ spec.add_development_dependency('rspec', '~> 3.0')
33
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quaderno
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recrea
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '3.12'
33
+ version: 6.3.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '3.12'
40
+ version: 6.3.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -131,9 +131,9 @@ extra_rdoc_files:
131
131
  - README.md
132
132
  files:
133
133
  - ".document"
134
+ - ".github/workflows/test.yml"
134
135
  - ".gitignore"
135
136
  - ".rspec"
136
- - ".travis.yml"
137
137
  - Gemfile
138
138
  - LICENSE.txt
139
139
  - README.md
@@ -164,6 +164,7 @@ files:
164
164
  - lib/quaderno-ruby/receipt.rb
165
165
  - lib/quaderno-ruby/recurring.rb
166
166
  - lib/quaderno-ruby/report.rb
167
+ - lib/quaderno-ruby/report_request.rb
167
168
  - lib/quaderno-ruby/tax.rb
168
169
  - lib/quaderno-ruby/version.rb
169
170
  - lib/quaderno-ruby/webhook.rb
@@ -187,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
188
  - !ruby/object:Gem::Version
188
189
  version: '0'
189
190
  requirements: []
190
- rubygems_version: 3.0.8
191
+ rubygems_version: 3.0.3
191
192
  signing_key:
192
193
  specification_version: 4
193
194
  summary: Ruby wrapper for the Quaderno API (https://quaderno.io/docs/api)
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.1
4
- before_install: gem install bundler -v 1.11.2