gus_bir1 1.2.0 → 1.4.0

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: 303c6dcab16075513fc7d7ec639eaa506eb80e71285fef8b947af71d56a2ee35
4
- data.tar.gz: 2a2ef444e5cbd513ed4843bfd0aa54036fca276807f66695c75b524acea833f0
3
+ metadata.gz: e150cc608515def79527b5145c7d97acf9327c4fbb6fb94e164bb4a81d2d3ca0
4
+ data.tar.gz: 4f9fdb5c6997aef43a11726a0e745f5dc76ed4d273e8043da68ef90279a9cb4d
5
5
  SHA512:
6
- metadata.gz: 1e8d55e8934944df1de91e6ec513a30ae2973fbbe73157c112f92f5575a41daf37d7c06fe96435f9db8c899133971a03e3d5284ed81c4f72a0678147788bd8ea
7
- data.tar.gz: fd3d7ffb44a5205bc36470d9a1cbfc517c9fd7861f89eff87069cf619b69df957ad317c1e9aee60afbfb12eded4b01a296aabea797cf1b736c9a1a8983945c53
6
+ metadata.gz: 5babed383a6565f4ade0d8b6cc1ee94df17ff8db43958a28d39e4029b71ae04bc00faa90cfc01fbadfb65765ebb26b5fad6749db8d353cd925956d0c7986bf13
7
+ data.tar.gz: 37eee6c052217ebe11b5ef965bee6da2490241c26fdd90057efe0299e3eeeb4dc6671c67f88d2cf3aee2fa1b84bb86e187ff2682031480d5d35c3a7030a8df7e
@@ -0,0 +1,26 @@
1
+ name: CI Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ 'master', 'develop' ]
6
+ pull_request:
7
+ branches: [ 'master', 'develop' ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ env:
13
+ CI: true
14
+ strategy:
15
+ matrix:
16
+ ruby-version: ['3.2', '3.3', '3.4', '4.0']
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v3
20
+ - name: Install Ruby and gems
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
25
+ - name: Run unit tests
26
+ run: bundle exec rake test
data/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Changelog
2
+
3
+ ## 1.3.0
4
+
5
+ - Removed `ostruct` from codebase. Replaced data structures returned by the library with the `Struct` defined underneath. This might be a breaking change if you used OpenStruct and extended it by adding your own fields in your applications.
6
+ ```rb
7
+ SearchResult = Struct.new(:name, :regon, :province, :district, :community, :city, :zip_code, :street, :street_number, :house_number, :street_address, :type, :silos_id, :type_desc, :silos_desc, :report :post_city)
8
+ ```
data/README.md CHANGED
@@ -1,11 +1,13 @@
1
1
  # GusBir1
2
- [![Build Status](https://travis-ci.org/espago/gus_bir1.png?branch=master)](https://travis-ci.org/espago/gus_bir1)
2
+ [![license](https://img.shields.io/badge/License-MIT-purple.svg)](LICENSE)
3
+ [![CI badge](https://github.com/espago/gus_bir1/actions/workflows/ci.yml/badge.svg)](https://github.com/espago/gus_bir1/actions/workflows/ci.yml/badge.svg)
3
4
  [![Gem Version](https://badge.fury.io/rb/gus_bir1.svg)](https://badge.fury.io/rb/gus_bir1)
4
5
  [![Code Climate](https://codeclimate.com/github/espago/gus_bir1/badges/gpa.svg)](https://codeclimate.com/github/espago/gus_bir1)
5
6
  [![Test Coverage](https://codeclimate.com/github/espago/gus_bir1/badges/coverage.svg)](https://codeclimate.com/github/espago/gus_bir1)
6
7
 
7
- Simple, ruby wrapper for REGON database (Baza Internetowa Regon (BIR))(web frontend is reachable at https://wyszukiwarkaregon.stat.gov.pl/appBIR/index.aspx). To access its SOAP API, one needs an USER_KEY issued by REGON administrators available at regon_bir@stat.gov.pl.
8
- Official GUS docs https://api.stat.gov.pl/Home/RegonApi
8
+ Simple, Ruby wrapper for REGON database (Baza Internetowa Regon (BIR))(web frontend is reachable at https://wyszukiwarkaregon.stat.gov.pl/appBIR/index.aspx). To access its SOAP API, one needs a USER_KEY issued by REGON administrators available at regon_bir@stat.gov.pl.
9
+
10
+ Official GUS docs: https://api.stat.gov.pl/Home/RegonApi
9
11
 
10
12
 
11
13
  ## Installation
@@ -33,6 +35,10 @@ Or install it yourself as:
33
35
  # TEST CONF
34
36
  GusBir1.production = false
35
37
  GusBir1.client_key = 'abcde12345abcde12345'
38
+
39
+ # Optional, disabled by default. Enable Savon/HTTPI debug logging:
40
+ GusBir1.logging = true
41
+ GusBir1.log_level = :debug
36
42
  ```
37
43
 
38
44
  ### General info
@@ -74,47 +80,47 @@ To start querying the GUS database, You can use three methods `GusBir1.find_by`,
74
80
  with `regon`
75
81
  ```ruby
76
82
  response = GusBir1.find_by(regon: '00033150100000')
77
- => [#<OpenStruct name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
83
+ => [#<struct GusBir1::Response::SearchResult name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
78
84
  response.class
79
85
  => Array
80
86
  response.first
81
- => #<OpenStruct name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">
87
+ => #<struct GusBir1::Response::SearchResult name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">
82
88
  ```
83
89
 
84
90
  with `nip`
85
91
  ```ruby
86
92
  response = GusBir1.find_by(nip: '8992689516')
87
- => [#<OpenStruct name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
93
+ => [#<struct GusBir1::Response::SearchResult name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
88
94
  ```
89
95
 
90
96
  with `krs`
91
97
  ```ruby
92
98
  response = GusBir1.find_by(krs: '0000352235')
93
- => [#<OpenStruct name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
99
+ => [#<struct GusBir1::Response::SearchResult name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
94
100
  ```
95
101
 
96
102
  with `regons14` (up to 20 regons)
97
103
  ```ruby
98
104
  response = GusBir1.find_by(regons14: '00033150100000,02121583300000')
99
- => [#<OpenStruct name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">, #<OpenStruct name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
105
+ => [#<struct GusBir1::Response::SearchResult name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">, #<struct GusBir1::Response::SearchResult name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
100
106
  ```
101
107
 
102
108
  with `regons9` (up to 20 regons)
103
109
  ```ruby
104
110
  response = GusBir1.find_by(regons9: '000331501,021215833')
105
- => [#<OpenStruct name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">, #<OpenStruct name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
111
+ => [#<struct GusBir1::Response::SearchResult name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">, #<struct GusBir1::Response::SearchResult name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
106
112
  ```
107
113
 
108
114
  with `nips` (up to 20 nips)
109
115
  ```ruby
110
116
  response = GusBir1.find_by(nips: '8992689516,5261040828')
111
- => [#<OpenStruct name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">, #<OpenStruct name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
117
+ => [#<struct GusBir1::Response::SearchResult name="GŁÓWNY URZĄD STATYSTYCZNY", regon="00033150100000", province="MAZOWIECKIE", district="m. st. Warszawa", community="Śródmieście", city="Warszawa", zip_code="00-925", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">, #<struct GusBir1::Response::SearchResult name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
112
118
  ```
113
119
 
114
120
  with `krss` (up to 20 krss)
115
121
  ```ruby
116
122
  response = GusBir1.find_by(krss: '0000352235')
117
- => [#<OpenStruct name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
123
+ => [#<struct GusBir1::Response::SearchResult name="\"PSP POLSKA\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ", regon="02121583300000", province="DOLNOŚLĄSKIE", district="m. Wrocław", community="Wrocław-Stare Miasto", city="Wrocław", zip_code="53-505", street="ul. Test-Krucza", type="P", silos_id="6", type_desc="Typ jednostki – jednostka prawna", silos_desc="Miejsce prowadzenia działalności jednostki prawnej", report="PublDaneRaportPrawna">]
118
124
  ```
119
125
 
120
126
  #### get_full_data
@@ -144,7 +150,7 @@ response.first.class
144
150
  ## Example
145
151
 
146
152
  ```ruby
147
- company = OpenStruct.new
153
+ company = struct GusBir1::Response::SearchResult.new
148
154
 
149
155
  gus_response = GusBir1.find_and_get_full_data(nip: 5261040828)
150
156
  if gus_response.first
@@ -164,7 +170,7 @@ if gus_response.first
164
170
  end
165
171
 
166
172
  company
167
- => #<OpenStruct name="GUS", address="ul. Test-Krucza 208", zip="00-925", city="Warszawa", country="POLSKA", regon="00033150100000", nip="5261040828">
173
+ => #<struct GusBir1::Response::SearchResult name="GUS", address="ul. Test-Krucza 208", zip="00-925", city="Warszawa", country="POLSKA", regon="00033150100000", nip="5261040828">
168
174
  ```
169
175
 
170
176
 
data/gus_bir1.gemspec CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.summary = 'Rails GUS API library based on official REGON SOAP api.'
14
14
  spec.homepage = 'https://github.com/espago/gus_bir1'
15
15
  spec.license = 'MIT'
16
+ spec.required_ruby_version = '>= 3.2.0'
16
17
 
17
18
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
19
  f.match(%r{^(test|spec|features)/})
@@ -27,6 +28,5 @@ Gem::Specification.new do |spec|
27
28
  spec.add_development_dependency 'rubocop'
28
29
  spec.add_development_dependency 'simplecov'
29
30
 
30
- spec.add_dependency 'savon', '~> 2.14'
31
- spec.add_dependency 'savon-multipart'
31
+ spec.add_dependency 'savon', '~> 2.17.4'
32
32
  end
@@ -1,10 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'savon'
4
+
3
5
  module GusBir1
4
6
  class Client
5
7
  SESSION_TIMEOUT = 3600
8
+ PUBL_OPERATIONS = %i[
9
+ wyloguj
10
+ dane_szukaj_podmioty
11
+ dane_pobierz_pelny_raport
12
+ dane_komunikat
13
+ zaloguj
14
+ ].freeze
15
+
6
16
  attr_accessor :production, :client_key, :log_level, :logging
7
17
 
18
+ def initialize
19
+ @logging = false
20
+ end
21
+
8
22
  def service_status
9
23
  v = get_value(Constants::PARAM_PARAM_NAME => Constants::PARAM_SERVICE_STATUS)
10
24
  Response::Simple.new(v, Constants::PARAM_SERVICE_STATUS)
@@ -25,6 +39,7 @@ module GusBir1
25
39
  types = [nip, regon, krs, nips, krss, regons14, regons9].compact
26
40
  raise TooMuchTypesSelected if types.size > 1
27
41
  raise NoOneTypeSelected if types.empty?
42
+
28
43
  if nip
29
44
  search_by Constants::SEARCH_TYPE_NIP, nip
30
45
  elsif regon
@@ -73,13 +88,14 @@ module GusBir1
73
88
 
74
89
  def namespaces(publ: true)
75
90
  {
76
- 'xmlns:ns' => publ ? Constants::WSDL_NS_PUBL : Constants::WSDL_NS,
91
+ 'xmlns:ns' => publ ? Constants::WSDL_NS_PUBL : Constants::WSDL_NS,
77
92
  'xmlns:dat' => Constants::WSDL_NS_DATA_CONTRACT
78
93
  }
79
94
  end
80
95
 
81
96
  def endpoint
82
97
  return Constants::WSDL_ADDRESS if @production
98
+
83
99
  Constants::WSDL_ADDRESS_TEST
84
100
  end
85
101
 
@@ -93,21 +109,13 @@ module GusBir1
93
109
  end
94
110
 
95
111
  def call(method, message)
96
- case method
97
- when
98
- :wyloguj,
99
- :dane_szukaj_podmioty,
100
- :dane_pobierz_pelny_raport,
101
- :dane_komunikat,
102
- :zaloguj
103
- savon_client_publ.call(method, message: message)
104
- else
105
- savon_client.call(method, message: message)
106
- end
112
+ client = PUBL_OPERATIONS.include?(method) ? savon_client_publ : savon_client
113
+ client.call(method, message: message)
107
114
  end
108
115
 
109
116
  def set_session_id
110
117
  return @sid if sid_active
118
+
111
119
  @sid_exp = Time.now + SESSION_TIMEOUT
112
120
  @sid = zaloguj(Constants::PARAM_USER_KEY => @client_key)
113
121
  clear_savon_clients
@@ -126,15 +134,20 @@ module GusBir1
126
134
 
127
135
  def logout
128
136
  return unless sid_active
137
+
129
138
  wyloguj(Constants::PARAM_SESSION_ID => @sid)
130
139
  end
131
140
 
132
141
  def savon_client_publ
133
- @savon_client_publ ||= Savon.client(savon_options(publ: true))
142
+ @savon_client_publ ||= build_savon_client(publ: true)
134
143
  end
135
144
 
136
145
  def savon_client
137
- @savon_client ||= Savon.client(savon_options)
146
+ @savon_client ||= build_savon_client(publ: false)
147
+ end
148
+
149
+ def build_savon_client(publ: false)
150
+ Savon.client(savon_options(publ: publ))
138
151
  end
139
152
 
140
153
  def savon_options(publ: false)
@@ -146,14 +159,11 @@ module GusBir1
146
159
  soap_version: 2,
147
160
  namespace_identifier: :ns,
148
161
  element_form_default: :qualified,
149
- multipart: true,
150
162
  log_level: @log_level,
151
163
  log: @logging,
152
164
  proxy: ENV['GUS_BIR_PROXY_URL']
153
165
  }
154
- if defined?(@sid) && @sid.nil? == false
155
- params.merge!({headers: { sid: @sid } })
156
- end
166
+ params.merge!({ headers: { sid: @sid } }) if defined?(@sid) && @sid.nil? == false
157
167
  params
158
168
  end
159
169
 
@@ -161,11 +171,5 @@ module GusBir1
161
171
  @savon_client = nil
162
172
  @savon_client_publ = nil
163
173
  end
164
-
165
- def savon_api_client
166
- @savon_api_client ||= GusBir1::SavonApiClient.new
167
- end
168
174
  end
169
175
  end
170
- require 'savon'
171
- require 'savon-multipart'
@@ -2,6 +2,11 @@
2
2
 
3
3
  module GusBir1
4
4
  module Response
5
+ SearchResult = Struct.new(:name, :regon, :province, :district, :community,
6
+ :city, :zip_code, :street, :street_number,
7
+ :house_number, :street_address, :type, :silos_id,
8
+ :type_desc, :silos_desc, :report, :post_city)
9
+
5
10
  class Search
6
11
  def initialize(body)
7
12
  @body = body
@@ -17,24 +22,25 @@ module GusBir1
17
22
  private
18
23
 
19
24
  def parse_dane(hash)
20
- search_result = OpenStruct.new
21
- search_result.name = hash['Nazwa']
22
- search_result.regon = hash['Regon']
23
- search_result.province = hash['Wojewodztwo']
24
- search_result.district = hash['Powiat']
25
- search_result.community = hash['Gmina']
26
- search_result.city = hash['Miejscowosc']
27
- search_result.zip_code = hash['KodPocztowy']
28
- search_result.street = hash['Ulica']
29
- search_result.street_number = hash['NrNieruchomosci']
30
- search_result.house_number = hash['NrLokalu']
31
- search_result.street_address = street_address_from(hash)
32
- search_result.type = hash['Typ']
33
- search_result.silos_id = hash['SilosID']
34
- search_result.type_desc = type_info(search_result)
35
- search_result.silos_desc = silos_info(search_result)
36
- search_result.report = report_info(search_result)
37
- search_result
25
+ SearchResult.new.tap do |search_result|
26
+ search_result.name = hash['Nazwa']
27
+ search_result.regon = hash['Regon']
28
+ search_result.province = hash['Wojewodztwo']
29
+ search_result.district = hash['Powiat']
30
+ search_result.community = hash['Gmina']
31
+ search_result.city = hash['Miejscowosc']
32
+ search_result.zip_code = hash['KodPocztowy']
33
+ search_result.street = hash['Ulica']
34
+ search_result.street_number = hash['NrNieruchomosci']
35
+ search_result.house_number = hash['NrLokalu']
36
+ search_result.street_address = street_address_from(hash)
37
+ search_result.type = hash['Typ']
38
+ search_result.silos_id = hash['SilosID']
39
+ search_result.type_desc = type_info(search_result)
40
+ search_result.silos_desc = silos_info(search_result)
41
+ search_result.report = report_info(search_result)
42
+ search_result.post_city = hash['MiejscowoscPoczty']
43
+ end
38
44
  end
39
45
 
40
46
  def type_info(search_result)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GusBir1
4
- VERSION = '1.2.0'
4
+ VERSION = '1.4.0'
5
5
  end
data/lib/gus_bir1.rb CHANGED
@@ -11,7 +11,6 @@ require 'gus_bir1/report/types'
11
11
  require 'gus_bir1/report/type_mapper'
12
12
  require 'gus_bir1/errors'
13
13
  require 'forwardable'
14
- require 'ostruct'
15
14
 
16
15
  module GusBir1
17
16
  class << self
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gus_bir1
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Waclaw Luczak
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-01-27 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -86,37 +85,23 @@ dependencies:
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: '2.14'
88
+ version: 2.17.4
90
89
  type: :runtime
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
- version: '2.14'
97
- - !ruby/object:Gem::Dependency
98
- name: savon-multipart
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- description:
95
+ version: 2.17.4
112
96
  email:
113
97
  - waclaw@luczak.it
114
98
  executables: []
115
99
  extensions: []
116
100
  extra_rdoc_files: []
117
101
  files:
102
+ - ".github/workflows/ci.yml"
118
103
  - ".gitignore"
119
- - ".travis.yml"
104
+ - CHANGELOG.md
120
105
  - Gemfile
121
106
  - LICENSE.txt
122
107
  - README.md
@@ -140,7 +125,6 @@ homepage: https://github.com/espago/gus_bir1
140
125
  licenses:
141
126
  - MIT
142
127
  metadata: {}
143
- post_install_message:
144
128
  rdoc_options: []
145
129
  require_paths:
146
130
  - lib
@@ -148,15 +132,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
132
  requirements:
149
133
  - - ">="
150
134
  - !ruby/object:Gem::Version
151
- version: '0'
135
+ version: 3.2.0
152
136
  required_rubygems_version: !ruby/object:Gem::Requirement
153
137
  requirements:
154
138
  - - ">="
155
139
  - !ruby/object:Gem::Version
156
140
  version: '0'
157
141
  requirements: []
158
- rubygems_version: 3.4.5
159
- signing_key:
142
+ rubygems_version: 3.6.9
160
143
  specification_version: 4
161
144
  summary: Rails GUS API library based on official REGON SOAP api.
162
145
  test_files: []
data/.travis.yml DELETED
@@ -1,19 +0,0 @@
1
- env:
2
- global:
3
- - CC_TEST_REPORTER_ID=21904179f670d8951ec18038872b42fbd37ad057a2342c30197dfebaae2ab27e
4
- -
5
- sudo: false
6
- language: ruby
7
- rvm:
8
- - 2.7.7
9
- -3.0.5
10
- before_install: gem install bundler
11
-
12
- before_script:
13
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
14
- - chmod +x ./cc-test-reporter
15
- - ./cc-test-reporter before-build
16
- script:
17
- - COVERAGE=1 rake test
18
- after_script:
19
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT