item_subadres_adapter()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 31

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 2
Metric Value
cc 1
c 2
b 0
f 2
dl 0
loc 31
rs 9.1359
1
# -*- coding: utf-8 -*-
2
"""
3
Adapters to help render :mod:`crabpy.gateway.crab` objects to json.
4
5
.. versionadded:: 0.1.0
6
"""
7
from crabpy.gateway import crab
8
import pycountry
9
import gettext
10
11
from pyramid.renderers import JSON
12
13
json_list_renderer = JSON()
14
json_item_renderer = JSON()
15
16
nederlands = gettext.translation('iso3166', pycountry.LOCALES_DIR, languages=['nl'])
17
nederlands.install()
18
19
20
def list_gewesten_adapter(obj, request):
21
    """
22
    Adapter for rendering a list of
23
    :class:`crabpy.gateway.crab.Gewest` to json.
24
    """
25
    return {
26
        'id': obj.id,
27
        'naam': obj.naam
28
    }
29
30
31
def list_provincie_adapter(obj, request):
32
    """
33
    Adapter for rendering a list of
34
    :class:`crabpy.gateway.crab.Provincie` to json.
35
    """
36
    return {
37
        'niscode': obj.niscode,
38
        'naam': obj.naam,
39
        'gewest': {
40
            'id': obj.gewest.id,
41
            'naam': obj.gewest.naam
42
        }
43
    }
44
45
46
def list_gemeente_adapter(obj, request):
47
    """
48
    Adapter for rendering a list of
49
    :class:`crabpy.gateway.crab.Gemeenten` to json.
50
    """
51
    return {
52
        'id': obj.id,
53
        'niscode': obj.niscode,
54
        'naam': obj.naam
55
    }
56
57
58
def list_deelgemeente_adapter(obj, request):
59
    '''
60
    Adapter for rendering a list of
61
    :class:`crabpy.gateway.crab.Deelgemeente` to json.
62
    '''
63
    return {
64
        'id': obj.id,
65
        'naam': obj.naam
66
    }
67
68
69
def list_straten_adapter(obj, request):
70
    """
71
    Adapter for rendering a list of
72
    :class:`crabpy.gateway.crab.Straat` to json.
73
    """
74
    return {
75
        'id': obj.id,
76
        'label': obj.label,
77
        'status': {
78
            'id': obj.status.id,
79
            'naam': obj.status.naam,
80
            'definitie': obj.status.definitie
81
        },
82
    }
83
84
85
def list_huisnummers_adapter(obj, request):
86
    """
87
    Adapter for rendering a list of
88
    :class:`crabpy.gateway.crab.Huisnummer` to json.
89
    """
90
    return {
91
        'id': obj.id,
92
        'status': {
93
            'id': obj.status.id,
94
            'naam': obj.status.naam,
95
            'definitie': obj.status.definitie
96
        },
97
        'label': obj.huisnummer
98
    }
99
100
101
def list_percelen_adapter(obj, request):
102
    """
103
    Adapter for rendering a list of
104
    :class:`crabpy.gateway.crab.Perceel` to json.
105
    """
106
    return {
107
        'id': obj.id
108
    }
109
110
111
def list_gebouwen_adapter(obj, request):
112
    """
113
    Adapter for rendering a list of
114
    :class:`crabpy.gateway.crab.Gebouw` to json.
115
    """
116
    return {
117
        'id': obj.id,
118
        'aard': {
119
            'id': obj.aard.id,
120
            'naam': obj.aard.naam,
121
            'definitie': obj.aard.definitie
122
        },
123
        'status': {
124
            'id': obj.status.id,
125
            'naam': obj.status.naam,
126
            'definitie': obj.status.definitie
127
        }
128
    }
129
130
131
def list_subadres_adapter(obj, request):
132
    """
133
    Adapter for rendering a list of
134
    :class:`crabpy.gateway.crab.Subadres` to json.
135
    """
136
    return {
137
        'id': obj.id,
138
        'subadres': obj.subadres,
139
        'status': {
140
            'id': obj.status.id,
141
            'naam': obj.status.naam,
142
            'definitie': obj.status.definitie
143
        }
144
    }
145
146
147
def list_postkantons_adapter(obj, request):
148
    """
149
    Adapter for rendering a list of
150
    :class:`crabpy.gateway.crab.Postkanton` to json.
151
    """
152
    return {
153
        'id': obj.id
154
    }
155
156
157
def list_adresposities_adapter(obj, request):
158
    """
159
    Adapter for rendering a list of
160
    :class:`crabpy.gateway.crab.Adrespositie` to json.
161
    """
162
    return {
163
        'id': obj.id,
164
        'herkomst': {
165
            'id': obj.herkomst.id,
166
            'naam': obj.herkomst.naam,
167
            'definitie': obj.herkomst.definitie
168
        }
169
    }
170
171
172
def list_landen_adapter(obj, request):
173
    """
174
    Adapter for rendering a list of landen to json.
175
    """
176
    return {
177
        'id': obj.alpha_2,
178
        'naam': _(obj.name)
179
    }
180
181
182
json_list_renderer.add_adapter(crab.Gewest, list_gewesten_adapter)
183
json_list_renderer.add_adapter(crab.Provincie, list_provincie_adapter)
184
json_list_renderer.add_adapter(crab.Gemeente, list_gemeente_adapter)
185
json_list_renderer.add_adapter(crab.Deelgemeente, list_deelgemeente_adapter)
186
json_list_renderer.add_adapter(crab.Straat, list_straten_adapter)
187
json_list_renderer.add_adapter(crab.Huisnummer, list_huisnummers_adapter)
188
json_list_renderer.add_adapter(crab.Perceel, list_percelen_adapter)
189
json_list_renderer.add_adapter(crab.Gebouw, list_gebouwen_adapter)
190
json_list_renderer.add_adapter(crab.Subadres, list_subadres_adapter)
191
json_list_renderer.add_adapter(crab.Postkanton, list_postkantons_adapter)
192
json_list_renderer.add_adapter(crab.Adrespositie, list_adresposities_adapter)
193
json_list_renderer.add_adapter(pycountry.db.Data, list_landen_adapter)
194
195
196
def item_gewest_adapter(obj, request):
197
    """
198
    Adapter for rendering an object of
199
    :class:`crabpy.gateway.crab.Gewest` to json.
200
    """
201
    return {
202
        'id': obj.id,
203
        'namen': obj._namen,
204
        'centroid': obj.centroid,
205
        'bounding_box': obj.bounding_box
206
    }
207
208
209
def item_provincie_adapter(obj, request):
210
    """
211
    Adapter for rendering a object of
212
    :class:`crabpy.gateway.crab.Provincie` to json.
213
    """
214
    return {
215
        'niscode': obj.niscode,
216
        'naam': obj.naam,
217
        'gewest': {
218
            'id': obj.gewest.id,
219
            'naam': obj.gewest.naam
220
        }
221
    }
222
223
224
def item_gemeente_adapter(obj, request):
225
    """
226
    Adapter for rendering an object of
227
    :class:`crabpy.gateway.crab.Gemeente` to json.
228
    """
229
    return {
230
        'id': obj.id,
231
        'niscode': obj.niscode,
232
        'naam': obj.naam,
233
        'centroid': obj.centroid,
234
        'bounding_box': obj.bounding_box,
235
        'metadata': {
236
            'begin_tijd': obj.metadata.begin_tijd,
237
            'begin_datum': obj.metadata.begin_datum,
238
            'begin_bewerking': {
239
                'id': obj.metadata.begin_bewerking.id,
240
                'naam': obj.metadata.begin_bewerking.naam,
241
                'definitie': obj.metadata.begin_bewerking.definitie
242
            },
243
            'begin_organisatie': {
244
                'id': obj.metadata.begin_organisatie.id,
245
                'naam': obj.metadata.begin_organisatie.naam,
246
                'definitie': obj.metadata.begin_organisatie.definitie
247
            }
248
        }
249
    }
250
251
252
def item_deelgemeente_adapter(obj, request):
253
    """
254
    Adapter for rendering a object of
255
    :class:`crabpy.gateway.crab.Deelgemeente` to json.
256
    """
257
    return {
258
        'id': obj.id,
259
        'naam': obj.naam,
260
        'gemeente': {
261
            'id': obj.gemeente.id,
262
            'naam': obj.gemeente.naam
263
        }
264
    }
265
266
267 View Code Duplication
def item_straat_adapter(obj, request):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
268
    """
269
    Adapter for rendering an object of
270
    :class:`crabpy.gateway.crab.Straat` to json.
271
    """
272
    return {
273
        'id': obj.id,
274
        'label': obj.label,
275
        'namen': obj.namen,
276
        'status': {
277
            'id': obj.status.id,
278
            'naam': obj.status.naam,
279
            'definitie': obj.status.definitie
280
        },
281
        'taal': {
282
            'id': obj.taal.id,
283
            'naam': obj.taal.naam,
284
            'definitie': obj.taal.definitie
285
        },
286
        'metadata': {
287
            'begin_tijd': obj.metadata.begin_tijd,
288
            'begin_datum': obj.metadata.begin_datum,
289
            'begin_bewerking': {
290
                'id': obj.metadata.begin_bewerking.id,
291
                'naam': obj.metadata.begin_bewerking.naam,
292
                'definitie': obj.metadata.begin_bewerking.definitie
293
            },
294
            'begin_organisatie': {
295
                'id': obj.metadata.begin_organisatie.id,
296
                'naam': obj.metadata.begin_organisatie.naam,
297
                'definitie': obj.metadata.begin_organisatie.definitie
298
            }
299
        },
300
        'bounding_box': obj.bounding_box
301
    }
302
303
304 View Code Duplication
def item_huisnummer_adapter(obj, request):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
305
    """
306
    Adapter for rendering an object of
307
    :class:`crabpy.gateway.crab.Huisnummer` to json.
308
    """
309
    return {
310
        'id': obj.id,
311
        'huisnummer': obj.huisnummer,
312
        'postadres': obj.postadres,
313
        'status': {
314
            'id': obj.status.id,
315
            'naam': obj.status.naam,
316
            'definitie': obj.status.definitie
317
        },
318
        'metadata': {
319
            'begin_tijd': obj.metadata.begin_tijd,
320
            'begin_datum': obj.metadata.begin_datum,
321
            'begin_bewerking': {
322
                'id': obj.metadata.begin_bewerking.id,
323
                'naam': obj.metadata.begin_bewerking.naam,
324
                'definitie': obj.metadata.begin_bewerking.definitie
325
            },
326
            'begin_organisatie': {
327
                'id': obj.metadata.begin_organisatie.id,
328
                'naam': obj.metadata.begin_organisatie.naam,
329
                'definitie': obj.metadata.begin_organisatie.definitie
330
            }
331
        },
332
        'bounding_box': obj.bounding_box
333
    }
334
335
336
def item_perceel_crab_adapter(obj, request):
337
    """
338
    Adapter for rendering an object of
339
    :class:`crabpy.gateway.crab.Perceel` to json.
340
    """
341
    return {
342
        'id': obj.id,
343
        'centroid': obj.centroid,
344
        'postadressen': obj.postadressen,
345
        'metadata': {
346
            'begin_tijd': obj.metadata.begin_tijd,
347
            'begin_datum': obj.metadata.begin_datum,
348
            'begin_bewerking': {
349
                'id': obj.metadata.begin_bewerking.id,
350
                'naam': obj.metadata.begin_bewerking.naam,
351
                'definitie': obj.metadata.begin_bewerking.definitie
352
            },
353
            'begin_organisatie': {
354
                'id': obj.metadata.begin_organisatie.id,
355
                'naam': obj.metadata.begin_organisatie.naam,
356
                'definitie': obj.metadata.begin_organisatie.definitie
357
            }
358
        }
359
    }
360
361
362 View Code Duplication
def item_gebouw_adapter(obj, request):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
363
    """
364
    Adapter for rendering an object of
365
    :class:`crabpy.gateway.crab.Gebouw` to json.
366
    """
367
    return {
368
        'id': obj.id,
369
        'aard': {
370
            'id': obj.aard.id,
371
            'naam': obj.aard.naam,
372
            'definitie': obj.aard.definitie
373
        },
374
        'status': {
375
            'id': obj.status.id,
376
            'naam': obj.status.naam,
377
            'definitie': obj.status.definitie
378
        },
379
        'geometriemethode': {
380
            'id': obj.methode.id,
381
            'naam': obj.methode.naam,
382
            'definitie': obj.methode.definitie
383
        },
384
        'geometrie': obj.geometrie,
385
        'metadata': {
386
            'begin_tijd': obj.metadata.begin_tijd,
387
            'begin_datum': obj.metadata.begin_datum,
388
            'begin_bewerking': {
389
                'id': obj.metadata.begin_bewerking.id,
390
                'naam': obj.metadata.begin_bewerking.naam,
391
                'definitie': obj.metadata.begin_bewerking.definitie
392
            },
393
            'begin_organisatie': {
394
                'id': obj.metadata.begin_organisatie.id,
395
                'naam': obj.metadata.begin_organisatie.naam,
396
                'definitie': obj.metadata.begin_organisatie.definitie
397
            }
398
        }
399
    }
400
401
402 View Code Duplication
def item_wegobject_adapter(obj, request):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
403
    """
404
    Adapter for rendering a list of
405
    :class:`crabpy.gateway.Wegobject` to json.
406
    """
407
    return {
408
        'id': obj.id,
409
        'aard': {
410
            'id': obj.aard.id,
411
            'naam': obj.aard.naam,
412
            'definitie': obj.aard.definitie
413
        },
414
        'centroid': obj.centroid,
415
        'bounding_box': obj.bounding_box,
416
        'metadata': {
417
            'begin_tijd': obj.metadata.begin_tijd,
418
            'begin_datum': obj.metadata.begin_datum,
419
            'begin_bewerking': {
420
                'id': obj.metadata.begin_bewerking.id,
421
                'naam': obj.metadata.begin_bewerking.naam,
422
                'definitie': obj.metadata.begin_bewerking.definitie
423
            },
424
            'begin_organisatie': {
425
                'id': obj.metadata.begin_organisatie.id,
426
                'naam': obj.metadata.begin_organisatie.naam,
427
                'definitie': obj.metadata.begin_organisatie.definitie
428
            }
429
        }
430
    }
431
432
433
def item_subadres_adapter(obj, request):
434
    """
435
    Adapter for rendering an item of
436
    :class:`crabpy.gateway.Subadres` to json.
437
    """
438
    return {
439
        'id': obj.id,
440
        'subadres': obj.subadres,
441
        'postadres': obj.postadres,
442
        'status': {
443
            'id': obj.status.id,
444
            'naam': obj.status.naam,
445
            'definitie': obj.status.definitie
446
        },
447
        'aard': {
448
            'id': obj.aard.id,
449
            'naam': obj.aard.naam,
450
            'definitie': obj.aard.definitie
451
        },
452
        'metadata': {
453
            'begin_tijd': obj.metadata.begin_tijd,
454
            'begin_datum': obj.metadata.begin_datum,
455
            'begin_bewerking': {
456
                'id': obj.metadata.begin_bewerking.id,
457
                'naam': obj.metadata.begin_bewerking.naam,
458
                'definitie': obj.metadata.begin_bewerking.definitie
459
            },
460
            'begin_organisatie': {
461
                'id': obj.metadata.begin_organisatie.id,
462
                'naam': obj.metadata.begin_organisatie.naam,
463
                'definitie': obj.metadata.begin_organisatie.definitie
464
            }
465
        }
466
    }
467
468
469 View Code Duplication
def item_adrespositie_adapter(obj, request):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
470
    """
471
    Adapter for rendering an item of
472
    :class:`crabpy.gateway.Adrespositie` to json.
473
    """
474
    return {
475
        'id': obj.id,
476
        'herkomst': {
477
            'id': obj.herkomst.id,
478
            'naam': obj.herkomst.naam,
479
            'definitie': obj.herkomst.definitie
480
        },
481
        'geometrie': obj.geometrie,
482
        'aard': {
483
            'id': obj.aard.id,
484
            'naam': obj.aard.naam,
485
            'definitie': obj.aard.definitie
486
        },
487
        'metadata': {
488
            'begin_tijd': obj.metadata.begin_tijd,
489
            'begin_datum': obj.metadata.begin_datum,
490
            'begin_bewerking': {
491
                'id': obj.metadata.begin_bewerking.id,
492
                'naam': obj.metadata.begin_bewerking.naam,
493
                'definitie': obj.metadata.begin_bewerking.definitie
494
            },
495
            'begin_organisatie': {
496
                'id': obj.metadata.begin_organisatie.id,
497
                'naam': obj.metadata.begin_organisatie.naam,
498
                'definitie': obj.metadata.begin_organisatie.definitie
499
            }
500
        }
501
    }
502
503
504
def item_land_adapter(obj, request):
505
    """
506
    Adapter for rendering an item of
507
    :class: `pycountry.db.Data` to json.
508
    """
509
    return {
510
        'id': obj.alpha_2,
511
        'alpha2': obj.alpha_2,
512
        'alpha3': obj.alpha_3,
513
        'naam': _(obj.name)
514
    }
515
516
517
json_item_renderer.add_adapter(crab.Gewest, item_gewest_adapter)
518
json_item_renderer.add_adapter(crab.Provincie, item_provincie_adapter)
519
json_item_renderer.add_adapter(crab.Gemeente, item_gemeente_adapter)
520
json_item_renderer.add_adapter(crab.Deelgemeente, item_deelgemeente_adapter)
521
json_item_renderer.add_adapter(crab.Straat, item_straat_adapter)
522
json_item_renderer.add_adapter(crab.Huisnummer, item_huisnummer_adapter)
523
json_item_renderer.add_adapter(crab.Perceel, item_perceel_crab_adapter)
524
json_item_renderer.add_adapter(crab.Gebouw, item_gebouw_adapter)
525
json_item_renderer.add_adapter(crab.Wegobject, item_wegobject_adapter)
526
json_item_renderer.add_adapter(crab.Subadres, item_subadres_adapter)
527
json_item_renderer.add_adapter(crab.Adrespositie, item_adrespositie_adapter)
528
json_item_renderer.add_adapter(pycountry.db.Data, item_land_adapter)
529