invofox-api-ruby 0.1.0 → 0.1.2

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: e69d4f366e946575f63b99e3e0a548a08e65e4cce642b817e6798da51b03171a
4
- data.tar.gz: fdd5fb3ac989ef8d331a289bb230b832a630f88718d6277bdc67a55ce0353aa2
3
+ metadata.gz: eae8ebc082cdba1058d0753a39ff406d14dc0bec4f74434a2210db78287e2300
4
+ data.tar.gz: 6294b3ab459a7548702086d2cac5b1bdb0f53e71304d5b43e4de227a2cfd2c51
5
5
  SHA512:
6
- metadata.gz: 4fb6b9ab3f8dd738f536640138a40bfc147c6c6b33a3e337cad74907e53c70b4bfaf097774c41ea596da99768d9f5c53ecb7778a19cb92540821f5b2ca0fb93c
7
- data.tar.gz: ca395634f1ac51266410fc959944e1b90cc8ba58a3aafaf4f7dd95a9399a65d02f7deca9fa7e6d99b67ed7187043e2fefbcecf23f3c2e8a7019d7a1cb527f754
6
+ metadata.gz: dea3aaf07d57a3a617c9cd468d0e6861d3f547cb6f369a2cf2ce0425a8d401e83924c960d395b79c5d7e1a5c2306a3df15a4b79d36d834dc14262a7e708fa590
7
+ data.tar.gz: 41300f3574b9bbaec5529ebcdcfe035aa71c60bbc32a5c749c2409763059049617f6ddf70e3acb6c9e4347fc5ae33d081d759ff8fbca9f1673f514a730511cf1
@@ -0,0 +1,12 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2024-04-17 14:37:05 UTC using RuboCop version 1.36.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ Lint/MissingSuper:
11
+ Exclude:
12
+ - 'lib/invofox/collection.rb'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- invofox-api-ruby (0.1.0)
4
+ invofox-api-ruby (0.1.2)
5
5
  rest-client (~> 2.0.2)
6
6
 
7
7
  GEM
@@ -20,7 +20,7 @@ GEM
20
20
  json (2.6.2)
21
21
  mime-types (3.5.2)
22
22
  mime-types-data (~> 3.2015)
23
- mime-types-data (3.2024.0206)
23
+ mime-types-data (3.2024.0305)
24
24
  netrc (0.11.0)
25
25
  parallel (1.22.1)
26
26
  parser (3.1.2.1)
data/README.md CHANGED
@@ -33,6 +33,8 @@ You can set a `logger` as well.
33
33
  Changelog
34
34
  ---------
35
35
 
36
+ * v.0.1.2 Added support for companies' list endpoint.
37
+ * v.0.1.1 Added support for documents' update_type endpoint.
36
38
  * v.0.1.0 First vull version, including resource wrapping for companies (get, create and update), documents (get, bulk and update) and load batches (get), plus logger integration.
37
39
 
38
40
  About Invofox
data/lib/invofox/base.rb CHANGED
@@ -56,18 +56,16 @@ module Invofox
56
56
  # 2. If all went fine, we locate the body result
57
57
  result_in_body = block.call(response_body)
58
58
 
59
- # 3. Then we extract account and environment
60
- account = result_in_body.delete("account")
61
- environment = result_in_body.delete("environment")
62
-
63
- # 4. We build the resource result
64
- result = clazz.new(result_in_body)
59
+ # 3. We build the resource result
60
+ result = if result_in_body.is_a?(Array)
61
+ Collection.new(result_in_body, clazz)
62
+ else
63
+ clazz.new(result_in_body)
64
+ end
65
65
 
66
66
  # 4. And return everything together
67
67
  Invofox::Response.new(
68
- result: result,
69
- account: account,
70
- environment: environment
68
+ result: result
71
69
  )
72
70
  end
73
71
 
@@ -0,0 +1,7 @@
1
+ class Invofox::Collection < Array
2
+ def initialize(response, item_klass)
3
+ response.each do |item|
4
+ self << item_klass.new(item)
5
+ end
6
+ end
7
+ end
@@ -5,7 +5,14 @@ class Invofox::Resource
5
5
  end
6
6
 
7
7
  def fields_information
8
- self.class.fields_information
8
+ # We add account and environment, which are common in all resources
9
+ self
10
+ .class
11
+ .fields_information
12
+ .merge(
13
+ account: :string,
14
+ environment: :string
15
+ )
9
16
  end
10
17
 
11
18
  private
@@ -7,6 +7,21 @@ class Invofox::Company < Invofox::Resource
7
7
  data: :hash
8
8
 
9
9
  class << self
10
+ # TODO allow not required fields; for now we just need this scenario at Quipu
11
+ def list(country_code:, tax_id:)
12
+ Invofox.api_call(
13
+ clazz: self,
14
+ method: :get,
15
+ path: "/companies",
16
+ params: {
17
+ countryCode: country_code,
18
+ taxId: tax_id
19
+ }
20
+ ) do |response_body|
21
+ response_body['result']
22
+ end
23
+ end
24
+
10
25
  def get(id:)
11
26
  Invofox.api_call(
12
27
  clazz: self,
@@ -63,5 +63,18 @@ class Invofox::Document < Invofox::Resource
63
63
  response_body['result']
64
64
  end
65
65
  end
66
+
67
+ def update_type(id:, type:)
68
+ Invofox.api_call(
69
+ clazz: self,
70
+ method: :put,
71
+ path: "/documents/#{id}/type",
72
+ params: {
73
+ type: type
74
+ }
75
+ ) do |response_body|
76
+ response_body['result']
77
+ end
78
+ end
66
79
  end
67
80
  end
@@ -1,3 +1,3 @@
1
1
  module Invofox
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/invofox.rb CHANGED
@@ -3,6 +3,7 @@ require 'invofox/configuration'
3
3
  require 'invofox/base'
4
4
  require 'invofox/error'
5
5
  require 'invofox/resource'
6
+ require 'invofox/collection'
6
7
  require 'invofox/response'
7
8
 
8
9
  require 'invofox/resources/company'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invofox-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Albert Bellonch
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-21 00:00:00.000000000 Z
11
+ date: 2024-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -142,6 +142,7 @@ files:
142
142
  - invofox.gemspec
143
143
  - lib/invofox.rb
144
144
  - lib/invofox/base.rb
145
+ - lib/invofox/collection.rb
145
146
  - lib/invofox/configuration.rb
146
147
  - lib/invofox/error.rb
147
148
  - lib/invofox/resource.rb