Class: Teryt::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/teryt/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username:, password:) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
13
14
# File 'lib/teryt/client.rb', line 7

def initialize(username:, password:)
  @savon_client = Savon.client(
    wsdl: WSDL,
    wsse_auth: [username, password],
    use_wsa_headers: true,
    read_timeout: 3600
  )
end

Instance Attribute Details

#savon_clientObject (readonly)

Returns the value of attribute savon_client.



5
6
7
# File 'lib/teryt/client.rb', line 5

def savon_client
  @savon_client
end

Instance Method Details

#czy_zalogowanyObject



16
17
18
# File 'lib/teryt/client.rb', line 16

def czy_zalogowany
  savon_client.call(:czy_zalogowany, message: {})
end

#pobierz_date_aktualnego_kat_ulicObject



20
21
22
# File 'lib/teryt/client.rb', line 20

def pobierz_date_aktualnego_kat_ulic
  savon_client.call(:pobierz_date_aktualnego_kat_ulic)
end

#pobierz_liste_gmin(woj:, pow:, data_stanu: Date.today) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/teryt/client.rb', line 40

def pobierz_liste_gmin(woj:, pow:, data_stanu: Date.today)
  savon_client
    .call(:pobierz_liste_gmin, message: { "tns:Woj" => woj, "tns:Pow" => pow, "tns:DataStanu" => data_stanu })
    .to_hash
    .dig(:pobierz_liste_gmin_response, :pobierz_liste_gmin_result, :jednostka_terytorialna)
    .then { |result| Array.wrap(result) }
    .map { |attrs| JednostkaTerytorialna.new(**attrs) }
end

#pobierz_liste_miejscowosci_w_rodzaju_gminy(symbol_woj:, symbol_pow:, symbol_gmi:, symbol_rodz:, data_stanu: Date.today) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/teryt/client.rb', line 56

def pobierz_liste_miejscowosci_w_rodzaju_gminy(symbol_woj:, symbol_pow:, symbol_gmi:, symbol_rodz:, data_stanu: Date.today)
  savon_client
    .call(:pobierz_liste_miejscowosci_w_rodzaju_gminy, message: { "tns:symbolWoj" => symbol_woj,
                                                                  "tns:symbolPow" => symbol_pow,
                                                                  "tns:symbolGmi" => symbol_gmi,
                                                                  "tns:symbolRodz" => symbol_rodz,
                                                                  "tns:DataStanu" => data_stanu })
    .to_hash
    .dig(:pobierz_liste_miejscowosci_w_rodzaju_gminy_response, :pobierz_liste_miejscowosci_w_rodzaju_gminy_result, :miejscowosc)
    .then { |result| Array.wrap(result) }
    .map { |attrs| Miejscowosc.new(**attrs) }
end

#pobierz_liste_powiatow(woj:, data_stanu: Date.today) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/teryt/client.rb', line 32

def pobierz_liste_powiatow(woj:, data_stanu: Date.today)
  savon_client
    .call(:pobierz_liste_powiatow, message: { "tns:Woj" => woj, "tns:DataStanu" => data_stanu })
    .to_hash
    .dig(:pobierz_liste_powiatow_response, :pobierz_liste_powiatow_result, :jednostka_terytorialna)
    .map { |attrs| JednostkaTerytorialna.new(**attrs) }
end

#pobierz_liste_wojewodztw(data_stanu: Date.today) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/teryt/client.rb', line 24

def pobierz_liste_wojewodztw(data_stanu: Date.today)
  savon_client
    .call(:pobierz_liste_wojewodztw, message: { "tns:DataStanu" => data_stanu })
    .to_hash
    .dig(:pobierz_liste_wojewodztw_response, :pobierz_liste_wojewodztw_result, :jednostka_terytorialna)
    .map { |attrs| JednostkaTerytorialna.new(**attrs) }
end

#pobierz_slownik_rodzajow_jednostekObject



49
50
51
52
53
54
# File 'lib/teryt/client.rb', line 49

def pobierz_slownik_rodzajow_jednostek
  savon_client
    .call(:pobierz_slownik_rodzajow_jednostek, message: {})
    .to_hash
    .dig(:pobierz_slownik_rodzajow_jednostek_response, :pobierz_slownik_rodzajow_jednostek_result, :string)
end

#pobierz_zmiany_ulic_urzedowy(stanod:, stando: Date.today) ⇒ Object



69
70
71
72
73
74
75
76
# File 'lib/teryt/client.rb', line 69

def pobierz_zmiany_ulic_urzedowy(stanod:, stando: Date.today)
  savon_client
    .call(:pobierz_zmiany_ulic_urzedowy, message: { "tns:stanod" => stanod, "tns:stando" => stando })
    .to_hash
    .dig(:pobierz_zmiany_ulic_urzedowy_response, :pobierz_zmiany_ulic_urzedowy_result, :plik_zawartosc)
    .then { |file_content| StringIO.new(Base64.decode64(file_content)) }
    .then { |io| Zip::InputStream.new(io).get_next_entry.get_input_stream.read.force_encoding("UTF-8") }
end