Skip to content

Commit f691bf7

Browse files
committed
Update German OffeneRegister lookup data format
It appears that the data structure at OffeneRegister has changed which requires a different query. Data is returned in a different structure.
1 parent 5cdef0d commit f691bf7

File tree

2 files changed

+20
-29
lines changed

2 files changed

+20
-29
lines changed

stdnum/de/handelsregisternummer.py

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -332,16 +332,17 @@ def check_offeneregister(number, timeout=30): # pragma: no cover (not part of n
332332
It will contain something like the following::
333333
334334
{
335-
'retrieved_at': '2018-06-24T12:34:53Z',
336-
'native_company_number': 'The number requested',
337-
'company_number': 'Compact company number',
338-
'registrar': 'Registar',
339-
'federal_state': 'State name',
340-
'registered_office': 'Office',
341-
'register_art': 'Register type',
342-
'register_nummer': 'Number'
343-
'name': 'The name of the organisation',
344-
'current_status': 'currently registered',
335+
'companyId': 'U1206_HRB14011',
336+
'courtCode': 'U1206',
337+
'courtName': 'Chemnitz',
338+
'globalId': 'sn_293298',
339+
'isCurrent': 'True',
340+
'name': 'Internet hier GmbH Presentation Provider',
341+
'nativeReferenceNumber': 'Chemnitz HRB 14011',
342+
'referenceNumberFirstSeen': '2020-06-12',
343+
'stdRefNo': 'U1206_HRB14011',
344+
'validFrom': '2020-06-12',
345+
'validTill': '',
345346
}
346347
347348
Will return None if the number is invalid or unknown.
@@ -350,27 +351,17 @@ def check_offeneregister(number, timeout=30): # pragma: no cover (not part of n
350351
# network access for the tests and unnecessarily load the web service
351352
import requests
352353
court, registry, number, qualifier = _split(number)
353-
# First lookup the registrar code
354-
# (we could look up the number by registrar (court), registry and number
355-
# but it seems those queries are too slow)
356354
response = requests.get(
357355
_offeneregister_url,
358356
params={
359-
'sql': 'select company_number from company where registrar = :p0 limit 1',
360-
'p0': court},
361-
timeout=timeout)
362-
response.raise_for_status()
363-
try:
364-
registrar = response.json()['rows'][0][0].split('_')[0]
365-
except (KeyError, IndexError) as e: # noqa: F841
366-
raise InvalidComponent() # unknown registrar code
367-
# Lookup the number
368-
number = '%s_%s%s' % (registrar, registry, number)
369-
response = requests.get(
370-
_offeneregister_url,
371-
params={
372-
'sql': 'select * from company where company_number = :p0 limit 1',
373-
'p0': number},
357+
'sql': '''
358+
select *
359+
from ReferenceNumbers
360+
join Names on ReferenceNumbers.companyId = Names.companyId
361+
where nativeReferenceNumber = :p0
362+
limit 1
363+
''',
364+
'p0': '%s %s %s' % (court, registry, number)},
374365
timeout=timeout)
375366
response.raise_for_status()
376367
try:

tests/test_de_handelsregisternummer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def test_check_offeneregister(self):
4141
result = handelsregisternummer.check_offeneregister('Chemnitz HRB 14011')
4242
self.assertTrue(all(
4343
key in result.keys()
44-
for key in ['company_number', 'current_status', 'federal_state', 'registrar', 'native_company_number']))
44+
for key in ['companyId', 'courtCode', 'courtName', 'name', 'nativeReferenceNumber']))
4545
# Test invalid number
4646
result = handelsregisternummer.check_offeneregister('Chemnitz HRA 14012')
4747
self.assertIsNone(result)

0 commit comments

Comments
 (0)