Completed
Push — master ( 0e2af0...ec5bb6 )
by
unknown
9s
created

_map_locatie_elementen()   B

Complexity

Conditions 6

Size

Total Lines 67

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 6
c 1
b 0
f 0
dl 0
loc 67
rs 7.6297

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
# -*- coding: utf-8 -*-
2
'''
3
Deze module mapt binnenkomende json objecten naar database objecten.
4
'''
5
from ..data.models import (
6
    Perceel,
7
    LocatieElement,
8
    LocatieAdres,
9
    OpenbaarDomein,
10
)
11
from ..utils import convert_geojson_to_wktelement
12
13
14
def _map_locatie(locatie_json, resource):
15
    '''
16
    Mapt een locatie_json in json formaat tot de benodigde velden in een resource object
17
    :param locatie_json: Een dict die de JSON voorstelt die naar onze service
18
            gezonden werd.
19
    :param resource: resource object
20
    :returns: resource object
21
    '''
22
    resource.contour = convert_geojson_to_wktelement(locatie_json.get('contour'))
23
    resource.locatie_elementen = _map_locatie_elementen(locatie_json.get('elementen', []))
24
    return resource
25
26
27
def _map_locatie_elementen(locatie_elementen_json):
28
    '''
29
    Mapt een locatie_elementen_json in json formaat tot een :class:`oe_geoutils.data.models.LocatieElement`
30
    of 1 van de children van deze class
31
    :param locatie_elementen_json: Een dict die de JSON voorstelt die naar onze service gezonden werd.
32
    :rtype: list of :class:`oe_geoutils.data.models.LocatieElement`
33
    '''
34
    locatie_elementen = []
35
    for locatie_element in locatie_elementen_json:
36
        if locatie_element.get('type') == 'https://id.erfgoed.net/vocab/ontology#LocatieElement':
37
            locatie_elementen.append(
38
                LocatieElement(
39
                    type='https://id.erfgoed.net/vocab/ontology#LocatieElement',
40
                    provincie_niscode=locatie_element.get('provincie').get('niscode'),
41
                    provincie_naam=locatie_element.get('provincie').get('naam'),
42
                    gemeente_niscode=locatie_element.get('gemeente').get('niscode'),
43
                    gemeente_naam=locatie_element.get('gemeente').get('naam'),
44
                    gemeente_crab_id=locatie_element.get('gemeente').get('id')
45
                )
46
            )
47
        if locatie_element.get('type') == 'https://id.erfgoed.net/vocab/ontology#LocatieElementPerceel':
48
            locatie_elementen.append(
49
                Perceel(
50
                    type='https://id.erfgoed.net/vocab/ontology#LocatieElementPerceel',
51
                    provincie_niscode=locatie_element.get('provincie').get('niscode'),
52
                    provincie_naam=locatie_element.get('provincie').get('naam'),
53
                    gemeente_niscode=locatie_element.get('gemeente').get('niscode'),
54
                    gemeente_naam=locatie_element.get('gemeente').get('naam'),
55
                    gemeente_crab_id=locatie_element.get('gemeente').get('id'),
56
                    afdeling=locatie_element.get('perceel').get('afdeling'),
57
                    sectie=locatie_element.get('perceel').get('sectie'),
58
                    perceel=locatie_element.get('perceel').get('perceel'),
59
                    capakey=locatie_element.get('perceel').get('capakey')
60
                )
61
            )
62
        if locatie_element.get('type') == 'https://id.erfgoed.net/vocab/ontology#LocatieElementOpenbaarDomein':
63
            locatie_elementen.append(
64
                OpenbaarDomein(
65
                    type='https://id.erfgoed.net/vocab/ontology#LocatieElementOpenbaarDomein',
66
                    provincie_niscode=locatie_element.get('provincie').get('niscode'),
67
                    provincie_naam=locatie_element.get('provincie').get('naam'),
68
                    gemeente_niscode=locatie_element.get('gemeente').get('niscode'),
69
                    gemeente_naam=locatie_element.get('gemeente').get('naam'),
70
                    gemeente_crab_id=locatie_element.get('gemeente').get('id'),
71
                    omschrijving=locatie_element.get('omschrijving')
72
                )
73
            )
74
        if locatie_element.get('type') == 'https://id.erfgoed.net/vocab/ontology#LocatieElementAdres':
75
            locatie_elementen.append(
76
                LocatieAdres(
77
                    type='https://id.erfgoed.net/vocab/ontology#LocatieElementAdres',
78
                    provincie_niscode=locatie_element.get('provincie').get('niscode'),
79
                    provincie_naam=locatie_element.get('provincie').get('naam'),
80
                    gemeente_niscode=locatie_element.get('gemeente').get('niscode'),
81
                    gemeente_naam=locatie_element.get('gemeente').get('naam'),
82
                    gemeente_crab_id=locatie_element.get('gemeente').get('id'),
83
                    straat_id=locatie_element.get('straat_id'),
84
                    straat=locatie_element.get('straat'),
85
                    huisnummer_id=locatie_element.get('huisnummer_id'),
86
                    huisnummer=locatie_element.get('huisnummer'),
87
                    subadres_id=locatie_element.get('subadres_id'),
88
                    subadres=locatie_element.get('subadres'),
89
                    postcode=locatie_element.get('postcode'),
90
                    land=locatie_element.get('land')
91
                )
92
            )
93
    return locatie_elementen
94