ruby-vies 2.0.1 → 3.0.1

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: 8acb99fb51bb2f419f66efe09820d25c024a1b825c6c6b51aaf00fd1fc2555d7
4
- data.tar.gz: 63b872131431a1073a677719fa39c8ba8f009ff2d9cfbc6799c86447e573c850
3
+ metadata.gz: ab9ed1bf496e498fe99493e190f49f4028ad48f9cfcacccd8b645bf86895d5fa
4
+ data.tar.gz: e70ba42691232c29181936fc770ca94434690ace2c0354024353e36c27b0cccd
5
5
  SHA512:
6
- metadata.gz: c973b7561ea0208482b8beaf5e9fd1758ba13ea7187f8fc11f5c5aadebd38f7408bc59a0c0bb06cb3705353ad04de86a71397520177f9ded86e2eeb88692e10e
7
- data.tar.gz: bf08224fd1c457e272bfd8a5c3c942d537c2b3957183779c4e846ad1270f425bb65ae7c10098ef0f59ebb5f5b2528ea9c96587a07a73eab587f1ca23ed37906c
6
+ metadata.gz: f4aca22b25c5fe0661879ab1bc98d2f4ba8dc6cd0a92d427ac4cd09755263915d480abdfab16ac9429fc5f0a21d530f2aa10935f6bcc14abb6a3eb72bc70b1e2
7
+ data.tar.gz: 42c9b06c452d45e24251b085773f4b6243deed28846dfba869d2a43667d7c51e1b2280ebe5e19d7d3a52d47317be6ca95582d878b2645a2cf02718c03b7640b8
data/.idea/ruby-vies.iml CHANGED
@@ -16,82 +16,51 @@
16
16
  <orderEntry type="library" scope="PROVIDED" name="akami (v1.3.1, rbenv: 3.1.2) [gem]" level="application" />
17
17
  <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, rbenv: 3.1.2) [gem]" level="application" />
18
18
  <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.4, rbenv: 3.1.2) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.24, rbenv: 3.1.2) [gem]" level="application" />
20
19
  <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.10, rbenv: 3.1.2) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="date (v3.3.3, rbenv: 3.1.2) [gem]" level="application" />
21
21
  <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.5.0, rbenv: 3.1.2) [gem]" level="application" />
22
22
  <orderEntry type="library" scope="PROVIDED" name="finest-builder (v2.0.0, rbenv: 3.1.2) [gem]" level="application" />
23
23
  <orderEntry type="library" scope="PROVIDED" name="gyoku (v1.4.0, rbenv: 3.1.2) [gem]" level="application" />
24
24
  <orderEntry type="library" scope="PROVIDED" name="httparty (v0.20.0, rbenv: 3.1.2) [gem]" level="application" />
25
25
  <orderEntry type="library" scope="PROVIDED" name="httpi (v3.0.1, rbenv: 3.1.2) [gem]" level="application" />
26
26
  <orderEntry type="library" scope="PROVIDED" name="i18n (v1.12.0, rbenv: 3.1.2) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="json (v2.6.2, rbenv: 3.1.2) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="mail (v2.7.1, rbenv: 3.1.2) [gem]" level="application" />
27
+ <orderEntry type="library" scope="PROVIDED" name="json (v2.6.3, rbenv: 3.1.2) [gem]" level="application" />
28
+ <orderEntry type="library" scope="PROVIDED" name="mail (v2.8.0, rbenv: 3.1.2) [gem]" level="application" />
29
29
  <orderEntry type="library" scope="PROVIDED" name="mime-types (v3.4.1, rbenv: 3.1.2) [gem]" level="application" />
30
30
  <orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2022.0105, rbenv: 3.1.2) [gem]" level="application" />
31
31
  <orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.1.2, rbenv: 3.1.2) [gem]" level="application" />
32
32
  <orderEntry type="library" scope="PROVIDED" name="minitest (v5.16.3, rbenv: 3.1.2) [gem]" level="application" />
33
33
  <orderEntry type="library" scope="PROVIDED" name="multi_xml (v0.6.0, rbenv: 3.1.2) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.13.9, rbenv: 3.1.2) [gem]" level="application" />
34
+ <orderEntry type="library" scope="PROVIDED" name="net-imap (v0.3.4, rbenv: 3.1.2) [gem]" level="application" />
35
+ <orderEntry type="library" scope="PROVIDED" name="net-pop (v0.1.2, rbenv: 3.1.2) [gem]" level="application" />
36
+ <orderEntry type="library" scope="PROVIDED" name="net-protocol (v0.2.1, rbenv: 3.1.2) [gem]" level="application" />
37
+ <orderEntry type="library" scope="PROVIDED" name="net-smtp (v0.3.3, rbenv: 3.1.2) [gem]" level="application" />
38
+ <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.13.10, rbenv: 3.1.2) [gem]" level="application" />
35
39
  <orderEntry type="library" scope="PROVIDED" name="nori (v2.6.0, rbenv: 3.1.2) [gem]" level="application" />
36
40
  <orderEntry type="library" scope="PROVIDED" name="parallel (v1.22.1, rbenv: 3.1.2) [gem]" level="application" />
37
- <orderEntry type="library" scope="PROVIDED" name="parser (v3.1.2.1, rbenv: 3.1.2) [gem]" level="application" />
38
- <orderEntry type="library" scope="PROVIDED" name="public_suffix (v5.0.0, rbenv: 3.1.2) [gem]" level="application" />
39
- <orderEntry type="library" scope="PROVIDED" name="racc (v1.6.0, rbenv: 3.1.2) [gem]" level="application" />
40
- <orderEntry type="library" scope="PROVIDED" name="rack (v3.0.0, rbenv: 3.1.2) [gem]" level="application" />
41
+ <orderEntry type="library" scope="PROVIDED" name="parser (v3.1.3.0, rbenv: 3.1.2) [gem]" level="application" />
42
+ <orderEntry type="library" scope="PROVIDED" name="public_suffix (v5.0.1, rbenv: 3.1.2) [gem]" level="application" />
43
+ <orderEntry type="library" scope="PROVIDED" name="racc (v1.6.2, rbenv: 3.1.2) [gem]" level="application" />
41
44
  <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, rbenv: 3.1.2) [gem]" level="application" />
42
45
  <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, rbenv: 3.1.2) [gem]" level="application" />
43
- <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.6.0, rbenv: 3.1.2) [gem]" level="application" />
46
+ <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.6.1, rbenv: 3.1.2) [gem]" level="application" />
44
47
  <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, rbenv: 3.1.2) [gem]" level="application" />
45
48
  <orderEntry type="library" scope="PROVIDED" name="rspec (v3.12.0, rbenv: 3.1.2) [gem]" level="application" />
46
49
  <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.12.0, rbenv: 3.1.2) [gem]" level="application" />
47
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.12.0, rbenv: 3.1.2) [gem]" level="application" />
48
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.12.0, rbenv: 3.1.2) [gem]" level="application" />
50
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.12.1, rbenv: 3.1.2) [gem]" level="application" />
51
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.12.1, rbenv: 3.1.2) [gem]" level="application" />
49
52
  <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.12.0, rbenv: 3.1.2) [gem]" level="application" />
50
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v1.39.0, rbenv: 3.1.2) [gem]" level="application" />
51
- <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.23.0, rbenv: 3.1.2) [gem]" level="application" />
53
+ <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.24.0, rbenv: 3.1.2) [gem]" level="application" />
52
54
  <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, rbenv: 3.1.2) [gem]" level="application" />
53
- <orderEntry type="library" scope="PROVIDED" name="savon (v2.13.1, rbenv: 3.1.2) [gem]" level="application" />
55
+ <orderEntry type="library" scope="PROVIDED" name="savon (v2.14.0, rbenv: 3.1.2) [gem]" level="application" />
56
+ <orderEntry type="library" scope="PROVIDED" name="timeout (v0.3.1, rbenv: 3.1.2) [gem]" level="application" />
54
57
  <orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.5, rbenv: 3.1.2) [gem]" level="application" />
55
58
  <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v2.3.0, rbenv: 3.1.2) [gem]" level="application" />
56
59
  <orderEntry type="library" scope="PROVIDED" name="wasabi (v3.8.0, rbenv: 3.1.2) [gem]" level="application" />
57
60
  </component>
58
61
  <component name="RakeTasksCache">
59
62
  <option name="myRootTask">
60
- <RakeTaskImpl id="rake">
61
- <subtasks>
62
- <RakeTaskImpl description="Build ruby-vies-0.1.0.gem into the pkg directory" fullCommand="build" id="build" />
63
- <RakeTaskImpl id="build">
64
- <subtasks>
65
- <RakeTaskImpl description="Generate SHA512 checksum if ruby-vies-0.1.0.gem into the checksums directory" fullCommand="build:checksum" id="checksum" />
66
- </subtasks>
67
- </RakeTaskImpl>
68
- <RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
69
- <RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
70
- <RakeTaskImpl description="Build and install ruby-vies-0.1.0.gem into system gems" fullCommand="install" id="install" />
71
- <RakeTaskImpl id="install">
72
- <subtasks>
73
- <RakeTaskImpl description="Build and install ruby-vies-0.1.0.gem into system gems without network access" fullCommand="install:local" id="local" />
74
- </subtasks>
75
- </RakeTaskImpl>
76
- <RakeTaskImpl description="Create tag v0.1.0 and build and push ruby-vies-0.1.0.gem to TODO: Set to 'https://mygemserver.com'" fullCommand="release[remote]" id="release[remote]" />
77
- <RakeTaskImpl description="Run RuboCop" fullCommand="rubocop" id="rubocop" />
78
- <RakeTaskImpl id="rubocop">
79
- <subtasks>
80
- <RakeTaskImpl description="Auto-correct RuboCop offenses" fullCommand="rubocop:auto_correct" id="auto_correct" />
81
- </subtasks>
82
- </RakeTaskImpl>
83
- <RakeTaskImpl description="Run RSpec code examples" fullCommand="spec" id="spec" />
84
- <RakeTaskImpl description="" fullCommand="default" id="default" />
85
- <RakeTaskImpl description="" fullCommand="release" id="release" />
86
- <RakeTaskImpl id="release">
87
- <subtasks>
88
- <RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
89
- <RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
90
- <RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
91
- </subtasks>
92
- </RakeTaskImpl>
93
- </subtasks>
94
- </RakeTaskImpl>
63
+ <RakeTaskImpl id="rake" />
95
64
  </option>
96
65
  </component>
97
66
  </module>
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-vies (2.0.1)
4
+ ruby-vies (2.0.0)
5
5
  activesupport (~> 7.0)
6
6
  finest-builder (~> 2.0)
7
7
  httparty (~> 0.18)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ruby
4
4
  module Vies
5
- VERSION = "2.0.1"
5
+ VERSION = "3.0.1"
6
6
  end
7
7
  end
data/lib/ruby/vies.rb CHANGED
@@ -14,9 +14,12 @@ module Ruby
14
14
  class Error < StandardError; end
15
15
 
16
16
  mattr_accessor :endpoints, default: {
17
- siren: "https://api.avis-situation-sirene.insee.fr/identification/siren/%<siren>s",
17
+ siren: "https://api.insee.fr/entreprises/sirene/siren/%<siren>s",
18
+ siren_token: "https://api.insee.fr/token?grant_type=client_credentials&client_id=%<id>s&client_secret=%<secret>s&validity_period=%<period>s",
18
19
  vat: "https://ec.europa.eu/taxation_customs/vies/services/checkVatService.wsdl"
19
20
  }
21
+ mattr_accessor :customer_key, default: ENV["SIREN_CUSTOMER_KEY"]
22
+ mattr_accessor :customer_secret, default: ENV["SIREN_CUSTOMER_SECRET"]
20
23
 
21
24
  # Setup data from initializer
22
25
  def self.setup
@@ -63,20 +66,41 @@ module Ruby
63
66
 
64
67
  def check_siren(args)
65
68
  url = Ruby::Vies.endpoints[:siren] % { siren: args.fetch(:vat_number) }
66
- if (resp = JSON.parse(self.class.method(:get).call(url).body))["code"]
67
- { error: resp["message"], valid: false }
69
+ if (
70
+ resp = JSON.parse(
71
+ self.class.method(:get).call(
72
+ url,
73
+ headers: {
74
+ authorization: "Bearer #{siren_token}",
75
+ 'Content-Type': 'application/json'
76
+ }
77
+ ).body
78
+ )
79
+ ).dig("header", "statut") != 200
80
+ { error: resp["header"]["message"], valid: false }
68
81
  else
69
82
  {
70
83
  valid: true,
71
84
  name: resp.dig("uniteLegale", "periodesUniteLegale")&.first&.dig("denominationUniteLegale"),
72
- address: resp.dig("etablissements")&.first&.dig("adresseEtablissement").values.join(" "),
73
- siren: resp.dig("etablissements")&.first&.dig("siren"),
74
- siret: resp.dig("etablissements")&.first&.dig("siret"),
75
- nic: resp.dig("etablissements")&.first&.dig("nic"),
76
- created: resp.dig("etablissements")&.first&.dig("dateCreationEtablissement")
85
+ address: "",
86
+ siren: resp.dig("uniteLegale", "siren"),
87
+ siret: "",
88
+ nic: resp.dig("uniteLegale", "periodesUniteLegale")&.first&.dig("nicSiegeUniteLegale"),
89
+ created: resp.dig("uniteLegale", "periodesUniteLegale")&.first&.dig("dateDebut"),
77
90
  }
78
91
  end
92
+ end
93
+
94
+ private
79
95
 
96
+ def siren_token
97
+ url = Ruby::Vies.endpoints[:siren_token] % {
98
+ id: Ruby::Vies.customer_key,
99
+ secret: Ruby::Vies.customer_secret,
100
+ period: 604800
101
+ }
102
+ resp = self.class.method(:post).call(url)
103
+ JSON.parse(resp.body)["access_token"]
80
104
  end
81
105
  end
82
106
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-vies
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduard Garcia Castelló
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-26 00:00:00.000000000 Z
11
+ date: 2023-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finest-builder