def test_filter(self):
        field = 'some_field'

        test_cases = [
            ({
                field: None
            }, False),
            ({
                field: ''
            }, False),
            ({
                field: []
            }, False),
            ({
                field: 'value'
            }, True),
            ({
                field: 42
            }, True),
        ]

        notempty_filter = NotEmptyFilter(field)

        for entity, result in test_cases:
            self.assertEqual(result, notempty_filter.filter(entity))
    def test_filter_multiple_values(self):
        field = 'some_field'
        field2 = 'some_other_field'

        test_cases = [
            ({
                field: None,
                field2: True
            }, True),
            ({
                field: '',
                field2: True
            }, True),
            ({
                field: [],
                field2: True
            }, True),
            ({
                field: 'value',
                field2: True
            }, True),
            ({
                field: 42,
                field2: True
            }, True),
            ({
                field: False,
                field2: False
            }, False),
            ({
                field: None,
                field2: ''
            }, False),
        ]

        notempty_filter = NotEmptyFilter(field, field2)

        for entity, result in test_cases:
            self.assertEqual(result, notempty_filter.filter(entity))
Esempio n. 3
0
class ZakelijkerechtenExportConfig:
    format = ZakelijkerechtenCsvFormat()

    query = '''
{
  brkZakelijkerechten {
    edges {
      node {
        identificatie
        aardZakelijkRecht
        akrAardZakelijkRecht
        belastZrt1: belastZakelijkerechten {
          edges {
            node {
              akrAardZakelijkRecht
              belastZrt2: belastZakelijkerechten {
                edges {
                  node {
                    akrAardZakelijkRecht
                    belastZrt3: belastZakelijkerechten {
                      edges {
                        node {
                          akrAardZakelijkRecht
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
        belastMetZrt1: belastMetZakelijkerechten {
          edges {
            node {
              akrAardZakelijkRecht
              belastMetZrt2: belastMetZakelijkerechten {
                edges {
                  node {
                    akrAardZakelijkRecht
                    belastMetZrt3: belastMetZakelijkerechten {
                      edges {
                        node {
                          akrAardZakelijkRecht
                          belastMetZrt4: belastMetZakelijkerechten {
                            edges {
                              node {
                                akrAardZakelijkRecht
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
        ontstaanUitAppartementsrechtsplitsingVve {
          edges {
            node {
              identificatie
            }
          }
        }
        betrokkenBijAppartementsrechtsplitsingVve {
          edges {
            node {
              identificatie
              rechtsvorm
              statutaireNaam
              statutaireZetel
              heeftKvknummerVoor
              heeftRsinVoor
              beschikkingsbevoegdheid
            }
          }
        }
        isBeperktTot
        rustOpKadastraalobject {
          edges {
            node {
              perceelnummer
              indexletter
              indexnummer
              identificatie
              status
              aangeduidDoorKadastralegemeentecode {
                edges {
                  node {
                    broninfo
                  }
                }
              }
              aangeduidDoorKadastralesectie {
                edges {
                  node {
                    code
                  }
                }
              }
            }
          }
        }
        appartementsrechtsplitsingtype
        einddatumAppartementsrechtsplitsing
        indicatieActueelAppartementsrechtsplitsing
        invVanZakelijkrechtBrkTenaamstellingen {
          edges {
            node {
              identificatie
              aandeel
              eindGeldigheid
              vanKadastraalsubject {
                edges {
                  node {
                    identificatie
                    beschikkingsbevoegdheid
                    geslachtsnaam
                    voornamen
                    geslacht
                    voorvoegsels
                    geboortedatum
                    geboorteplaats
                    geboorteland
                    datumOverlijden
                    rechtsvorm
                    statutaireNaam
                    statutaireZetel
                    heeftBsnVoor
                    heeftKvknummerVoor
                    heeftRsinVoor
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
'''

    products = {
        'csv': {
            'exporter': csv_exporter,
            'api_type': 'graphql_streaming',
            'secure_user': '******',
            'unfold': True,
            'row_formatter': format.row_formatter,
            'entity_filters': [
                NotEmptyFilter('invVanZakelijkrechtBrkTenaamstellingen.[0].identificatie',
                               'betrokkenBijAppartementsrechtsplitsingVve.[0].identificatie'),
            ],
            'query': query,
            'filename': lambda: brk_filename("zakelijk_recht", use_sensitive_dir=True),
            'mime_type': 'plain/text',
            'format': format.get_format(),
        }
    }
Esempio n. 4
0
class KadastraleobjectenExportConfig:
    csv_format = KadastraleobjectenCsvFormat()
    esri_format = KadastraleobjectenEsriFormat()
    esri_format_no_subjects = KadastraleobjectenEsriNoSubjectsFormat()
    perceelnummer_esri_format = PerceelnummerEsriFormat()
    brk_bag_format = BrkBagCsvFormat()

    gperc_query = '''
{
  brkKadastraleobjecten {
    edges {
      node {
        identificatie
        volgnummer
        isOntstaanUitGPerceel {
          edges {
            node {
              identificatie
            }
          }
        }
      }
    }
  }
}
'''

    csv_query = '''
{
  brkKadastraleobjecten {
    edges {
      node {
        identificatie
        volgnummer
        gemeente
        aangeduidDoorGemeente {
          edges {
            node {
              naam
            }
          }
        }
        aangeduidDoorKadastralegemeentecode {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralegemeente {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralesectie {
          edges {
            node {
              code
            }
          }
        }
        perceelnummer
        indexletter
        indexnummer
        soortGrootte
        grootte
        koopsom
        koopsomValutacode
        koopjaar
        indicatieMeerObjecten
        soortCultuurOnbebouwd
        soortCultuurBebouwd
        status
        toestandsdatum
        indicatieVoorlopigeGeometrie
        inOnderzoek
        geometrie
        invRustOpKadastraalobjectBrkZakelijkerechten(akrAardZakelijkRecht:"VE") {
          edges {
            node {
              identificatie
              aardZakelijkRecht
              betrokkenBijAppartementsrechtsplitsingVve {
                edges {
                  node {
                    identificatie
                    statutaireNaam
                    typeSubject
                    heeftRsinVoor
                    heeftKvknummerVoor
                    heeftBsnVoor
                    rechtsvorm
                    statutaireNaam
                    statutaireZetel
                  }
                }
              }
              invVanZakelijkrechtBrkTenaamstellingen {
                edges {
                  node {
                    aandeel
                    vanKadastraalsubject {
                      edges {
                        node {
                          identificatie
                          voornamen
                          voorvoegsels
                          geslachtsnaam
                          geslacht
                          statutaireNaam
                          typeSubject
                          geboortedatum
                          geboorteplaats
                          geboorteland
                          datumOverlijden
                          heeftRsinVoor
                          heeftKvknummerVoor
                          heeftBsnVoor
                          rechtsvorm
                          statutaireNaam
                          statutaireZetel
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
'''

    esri_query = '''
{
  brkKadastraleobjecten(indexletter:"G") {
    edges {
      node {
        identificatie
        volgnummer
        gemeente
        aangeduidDoorGemeente {
          edges {
            node {
              naam
            }
          }
        }
        aangeduidDoorKadastralegemeentecode {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralegemeente {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralesectie {
          edges {
            node {
              code
            }
          }
        }
        perceelnummer
        indexletter
        indexnummer
        soortGrootte
        grootte
        isOntstaanUitGPerceel {
          edges {
            node {
              identificatie
            }
          }
        }
        koopsom
        koopsomValutacode
        koopjaar
        indicatieMeerObjecten
        soortCultuurOnbebouwd
        soortCultuurBebouwd
        status
        toestandsdatum
        indicatieVoorlopigeGeometrie
        inOnderzoek
        geometrie
        invRustOpKadastraalobjectBrkZakelijkerechten(akrAardZakelijkRecht:"VE") {
          edges {
            node {
              identificatie
              aardZakelijkRecht
              betrokkenBijAppartementsrechtsplitsingVve {
                edges {
                  node {
                    identificatie
                    statutaireNaam
                    typeSubject
                    heeftRsinVoor
                    heeftKvknummerVoor
                    heeftBsnVoor
                    rechtsvorm
                    statutaireNaam
                    statutaireZetel
                  }
                }
              }
              invVanZakelijkrechtBrkTenaamstellingen {
                edges {
                  node {
                    aandeel
                    vanKadastraalsubject {
                      edges {
                        node {
                          identificatie
                          voornamen
                          voorvoegsels
                          geslachtsnaam
                          geslacht
                          statutaireNaam
                          typeSubject
                          geboortedatum
                          geboorteplaats
                          geboorteland
                          datumOverlijden
                          heeftRsinVoor
                          heeftKvknummerVoor
                          heeftBsnVoor
                          rechtsvorm
                          statutaireNaam
                          statutaireZetel
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
'''

    bijpijling_query = '''
{
  brkKadastraleobjecten(indexletter: "G") {
    edges {
      node {
        identificatie
        aangeduidDoorGemeente {
          edges {
            node {
              naam
            }
          }
        }
        aangeduidDoorKadastralegemeentecode {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralegemeente {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralesectie {
          edges {
            node {
              code
            }
          }
        }
        perceelnummer
        indexletter
        indexnummer
        bijpijlingGeometrie
      }
    }
  }
}
'''

    perceelnummer_query = '''
{
  brkKadastraleobjecten(indexletter: "G") {
    edges {
      node {
        identificatie
        aangeduidDoorGemeente {
          edges {
            node {
              naam
            }
          }
        }
        aangeduidDoorKadastralegemeentecode {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralegemeente {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralesectie {
          edges {
            node {
              code
            }
          }
        }
        perceelnummer
        indexletter
        indexnummer
        perceelnummerRotatie
        plaatscoordinaten
      }
    }
  }
}
'''

    brk_bag_query = '''
{
  brkKadastraleobjecten {
    edges {
      node {
        identificatie
        aangeduidDoorKadastralegemeente {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralegemeentecode {
          edges {
            node {
              broninfo
            }
          }
        }
        aangeduidDoorKadastralesectie {
          edges {
            node {
              code
            }
          }
        }
        perceelnummer
        indexletter
        indexnummer
        status
        heeftEenRelatieMetVerblijfsobject {
          edges {
            node {
              identificatie
              bronwaarde
              status
              broninfo
                heeftHoofdadres {
                edges {
                  node {
                    identificatie
                    ligtAanOpenbareruimte {
                      edges {
                        node {
                          naam
                          ligtInWoonplaats {
                            edges {
                              node {
                                naam
                              }
                            }
                          }
                        }
                      }
                    }
                    huisnummer
                    huisletter
                    huisnummertoevoeging
                    postcode
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
'''

    class VotFilter(EntityFilter):
        """ Only include rows if vot identificatie is not set and city is not Amsterdam or Weesp
        """
        vot_identificatie = 'heeftEenRelatieMetVerblijfsobject.[0].identificatie'
        city = 'heeftEenRelatieMetVerblijfsobject.[0].broninfo.woonplaatsnaam'

        def filter(self, entity: dict):
            if not get_entity_value(
                    entity, self.vot_identificatie) and get_entity_value(
                        entity, self.city):
                return not get_entity_value(entity,
                                            self.city).lower().startswith(
                                                ('amsterdam', 'weesp'))

            return True

    sort = {
        'invRustOpKadastraalobjectBrkZakelijkerechten'
        '.invVanZakelijkrechtBrkTenaamstellingen'
        '.aandeel':
        aandeel_sort,
        'invRustOpKadastraalobjectBrkZakelijkerechten'
        '.invVanZakelijkrechtBrkTenaamstellingen'
        '.vanKadastraalsubject'
        '.identificatie':
        # Take subject ID with highest number (which is the last part of the . separated string)
        lambda x, y: int(x.split('.')[-1]) > int(y.split('.')[-1])
    }
    """
    Tenaamstellingen/Subject: Return the tenaamstelling with the largest aandeel (teller/noemer). When multiple
    tenaamstellingen have an even aandeel, sort the tenaamstellingen by its subject's geslachtsnaam.
    """
    products = {
        'kot_csv': {
            'merge_result': {
                'api_type': 'graphql_streaming',
                'attributes': ['isOntstaanUitGPerceel'],
                'query': gperc_query,
                'match_attributes': ['identificatie', 'volgnummer'],
                'row_formatter': csv_format.row_formatter,
                'secure_user': '******',
            },
            'exporter':
            csv_exporter,
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'query':
            csv_query,
            'filename':
            lambda: brk_filename('kadastraal_object', use_sensitive_dir=True),
            'mime_type':
            'plain/text',
            'format':
            csv_format.get_format(),
            'sort':
            sort,
        },
        'kot_esri_actueel': {
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'exporter':
            esri_exporter,
            'filename':
            f'{brk_directory("shp", use_sensitive_dir=True)}/BRK_Adam_totaal_G.shp',
            'mime_type':
            'application/octet-stream',
            'format':
            esri_format.get_format(),
            'sort':
            sort,
            'extra_files': [
                {
                    'filename':
                    f'{brk_directory("dbf", use_sensitive_dir=True)}/BRK_Adam_totaal_G.dbf',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("shx", use_sensitive_dir=True)}/BRK_Adam_totaal_G.shx',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("prj", use_sensitive_dir=True)}/BRK_Adam_totaal_G.prj',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("cpg", use_sensitive_dir=True)}/BRK_Adam_totaal_G.cpg',
                    'mime_type': 'application/octet-stream'
                },
            ],
            'query':
            esri_query,
        },
        'kot_esri_actueel_no_subjects': {
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'exporter':
            esri_exporter,
            'filename':
            f'{brk_directory("shp", use_sensitive_dir=False)}/BRK_Adam_totaal_G_zonderSubjecten.shp',
            'mime_type':
            'application/octet-stream',
            'format':
            esri_format_no_subjects.get_format(),
            'extra_files': [
                {
                    'filename':
                    f'{brk_directory("dbf", use_sensitive_dir=False)}'
                    '/BRK_Adam_totaal_G_zonderSubjecten.dbf',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("shx", use_sensitive_dir=False)}'
                    '/BRK_Adam_totaal_G_zonderSubjecten.shx',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("prj", use_sensitive_dir=False)}'
                    '/BRK_Adam_totaal_G_zonderSubjecten.prj',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("cpg", use_sensitive_dir=False)}'
                    '/BRK_Adam_totaal_G_zonderSubjecten.cpg',
                    'mime_type': 'application/octet-stream'
                },
            ],
            'query':
            esri_query,
        },
        'bijpijling_shape': {
            'exporter':
            esri_exporter,
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'filename':
            f'{brk_directory("shp", use_sensitive_dir=False)}/BRK_bijpijling.shp',
            'entity_filters': [
                NotEmptyFilter('bijpijlingGeometrie'),
            ],
            'mime_type':
            'application/octet-stream',
            'format': {
                'BRK_KOT_ID': 'identificatie',
                'GEMEENTE': 'aangeduidDoorGemeente.naam',
                'KADGEMCODE':
                'aangeduidDoorKadastralegemeentecode.[0].broninfo.omschrijving',
                'KADGEM':
                'aangeduidDoorKadastralegemeente.[0].broninfo.omschrijving',
                'SECTIE': 'aangeduidDoorKadastralesectie.[0].code',
                'PERCEELNR': 'perceelnummer',
                'INDEXLTR': 'indexletter',
                'INDEXNR': 'indexnummer',
                'geometrie': {
                    'action': 'format',
                    'formatter': format_geometry,
                    'value': 'bijpijlingGeometrie'
                },
            },
            'extra_files': [
                {
                    'filename':
                    f'{brk_directory("dbf", use_sensitive_dir=False)}/BRK_bijpijling.dbf',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("shx", use_sensitive_dir=False)}/BRK_bijpijling.shx',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("prj", use_sensitive_dir=False)}/BRK_bijpijling.prj',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("cpg", use_sensitive_dir=False)}/BRK_bijpijling.cpg',
                    'mime_type': 'application/octet-stream'
                },
            ],
            'query':
            bijpijling_query
        },
        'perceel_shape': {
            'exporter':
            esri_exporter,
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'filename':
            f'{brk_directory("shp", use_sensitive_dir=False)}/BRK_perceelnummer.shp',
            'entity_filters': [
                NotEmptyFilter('plaatscoordinaten'),
            ],
            'mime_type':
            'application/octet-stream',
            'format':
            perceelnummer_esri_format.get_format(),
            'extra_files': [
                {
                    'filename':
                    f'{brk_directory("dbf", use_sensitive_dir=False)}/BRK_perceelnummer.dbf',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("shx", use_sensitive_dir=False)}/BRK_perceelnummer.shx',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("prj", use_sensitive_dir=False)}/BRK_perceelnummer.prj',
                    'mime_type': 'application/octet-stream'
                },
                {
                    'filename':
                    f'{brk_directory("cpg", use_sensitive_dir=False)}/BRK_perceelnummer.cpg',
                    'mime_type': 'application/octet-stream'
                },
            ],
            'query':
            perceelnummer_query
        },
        'brk_bag_csv': {
            'exporter':
            csv_exporter,
            'entity_filters': [
                NotEmptyFilter(
                    'heeftEenRelatieMetVerblijfsobject.[0].bronwaarde'),
                VotFilter(),
            ],
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'unfold':
            True,
            'query':
            brk_bag_query,
            'filename':
            lambda: brk_filename("BRK_BAG", use_sensitive_dir=False),
            'mime_type':
            'plain/text',
            'format':
            brk_bag_format.get_format(),
        }
    }
Esempio n. 5
0
class BeperkingenExportConfig:

    query_type = '''
{
  wkpbBeperkingen(sort: beperking_asc) {
    edges {
      node {
        beperking
      }
    }
  }
}
'''

    query_orgaan = '''
{
  wkpbBeperkingen(sort: orgaan_asc) {
    edges {
      node {
        orgaan
      }
    }
  }
}
'''

    products = {
        'csv_actueel': {
            'endpoint':
            '/gob/public/wkpb/beperkingen/?view=enhanced&ndjson=true',
            'exporter': csv_exporter,
            'filename': 'CSV_Actueel/WKPB_beperking.csv',
            'mime_type': 'plain/text',
            'format': {
                'identificatie': 'identificatie',
                'typeCode': 'beperking.code',
                'beginGeldigheid': 'beginGeldigheid',
                'eindGeldigheid': 'eindGeldigheid',
            }
        },
        'csv_types': {
            'api_type':
            'graphql',
            'exporter':
            csv_exporter,
            'entity_filters': [
                NotEmptyFilter('beperking.code'),
                UniqueFilter('beperking.code'),
            ],
            'filename':
            'CSV_Actueel/WKPB_type.csv',
            'mime_type':
            'plain/text',
            'format': {
                'typeCode': 'beperking.code',
                'typeOmschrijving': 'beperking.omschrijving',
            },
            'query':
            query_type
        },
        'csv_orgaan': {
            'api_type':
            'graphql',
            'exporter':
            csv_exporter,
            'entity_filters': [
                NotEmptyFilter('orgaan.code'),
                UniqueFilter('orgaan.code'),
            ],
            'filename':
            'CSV_Actueel/WKPB_orgaan.csv',
            'mime_type':
            'plain/text',
            'format': {
                'orgaanCode': 'orgaan.code',
                'orgaanOmschrijving': 'orgaan.omschrijving',
            },
            'query':
            query_orgaan
        },
        'csv_kadastraal_object': {
            'endpoint':
            '/gob/public/wkpb/beperkingen/?view=kadastraalobject&ndjson=true',
            'exporter': csv_exporter,
            'entity_filters': [
                NotEmptyFilter('kadastraalObject'),
            ],
            'filename': 'CSV_Actueel/WKPB_beperking_kadastraalobject.csv',
            'mime_type': 'plain/text',
            'format': {
                'identificatie': 'identificatie',
                'belast:BRK.KOT.identificatie': 'kadastraalObject',
                'belast:BRK.KOT.gemeentecode':
                'aangeduidDoorKadastralegemeentecode',
                'belast:BRK.KOT.sectie': 'aangeduidDoorKadastralesectie',
                'belast:BRK.KOT.perceelnummer': 'perceelnummer',
                'belast:BRK.KOT.indexletter': 'indexletter',
                'belast:BRK.KOT.indexnummer': 'indexnummer',
            }
        }
    }
Esempio n. 6
0
class StukdelenExportConfig:
    format = {
        'BRK_SDL_ID': 'identificatie',
        'SDL_AARD_STUKDEEL_CODE': 'aard.code',
        'SDL_AARD_STUKDEEL_OMS': 'aard.omschrijving',
        'SDL_KOOPSOM': 'bedragTransactie.bedrag',
        'SDL_KOOPSOM_VALUTA': 'bedragTransactie.valuta',
        'BRK_STK_ID': 'stukidentificatie',
        'STK_AKR_PORTEFEUILLENR': 'portefeuillenummerAkr',
        'STK_TIJDSTIP_AANBIEDING': {
            'action': 'format',
            'formatter': format_timestamp,
            'value': 'tijdstipAanbiedingStuk',
        },
        'STK_REEKS_CODE': 'reeks',
        'STK_VOLGNUMMER': 'volgnummerStuk',
        'STK_REGISTERCODE_CODE': 'registercodeStuk.code',
        'STK_REGISTERCODE_OMS': 'registercodeStuk.omschrijving',
        'STK_SOORTREGISTER_CODE': 'soortRegisterStuk.code',
        'STK_SOORTREGISTER_OMS': 'soortRegisterStuk.omschrijving',
        'STK_DEEL_SOORT': 'deelSoortStuk',
        'BRK_TNG_ID': 'isBronVoorTenaamstelling.[0].identificatie',
        'BRK_ATG_ID': {
            'condition': 'isempty',
            'reference': 'isBronVoorAantekeningRecht.[0].identificatie',
            'negate': True,
            # Either one or the other is set, or none, but never both
            'trueval': 'isBronVoorAantekeningRecht.[0].identificatie',
            'falseval': 'isBronVoorAantekeningKadastraalObject.[0].identificatie'
        },
        'BRK_ASG_VVE': 'isBronVoorZakelijkRecht.[0].appartementsrechtsplitsingidentificatie'
    }

    query_tng = '''
{
  brkStukdelen {
    edges {
      node {
        identificatie
        aard
        bedragTransactie
        stukidentificatie
        portefeuillenummerAkr
        tijdstipAanbiedingStuk
        reeks
        volgnummerStuk
        registercodeStuk
        soortRegisterStuk
        deelSoortStuk
        isBronVoorTenaamstelling {
          edges {
            node {
              identificatie
            }
          }
        }
      }
    }
  }
}
'''

    query_art = '''
{
  brkStukdelen {
    edges {
      node {
        identificatie
        aard
        bedragTransactie
        stukidentificatie
        portefeuillenummerAkr
        tijdstipAanbiedingStuk
        reeks
        volgnummerStuk
        registercodeStuk
        soortRegisterStuk
        deelSoortStuk
        isBronVoorAantekeningRecht {
          edges {
            node {
              identificatie
            }
          }
        }
      }
    }
  }
}
'''

    query_akt = '''
    {
      brkStukdelen {
        edges {
          node {
            identificatie
            aard
            bedragTransactie
            stukidentificatie
            portefeuillenummerAkr
            tijdstipAanbiedingStuk
            reeks
            volgnummerStuk
            registercodeStuk
            soortRegisterStuk
            deelSoortStuk
            isBronVoorAantekeningKadastraalObject {
              edges {
                node {
                  identificatie
                }
              }
            }
          }
        }
      }
    }
    '''

    query_zrt = '''
{
  brkStukdelen {
    edges {
      node {
        identificatie
        aard
        bedragTransactie
        stukidentificatie
        portefeuillenummerAkr
        tijdstipAanbiedingStuk
        reeks
        volgnummerStuk
        registercodeStuk
        soortRegisterStuk
        deelSoortStuk
        isBronVoorZakelijkRecht(active: false) {
          edges {
            node {
              appartementsrechtsplitsingidentificatie
            }
          }
        }
      }
    }
  }
}
'''

    products = {
        'csv_tng': {
            'exporter': csv_exporter,
            'api_type': 'graphql_streaming',
            'secure_user': '******',
            'batch_size': 10000,
            'unfold': True,
            'query': query_tng,
            'filename': lambda: brk_filename('stukdeel', use_sensitive_dir=True),
            'mime_type': 'plain/text',
            'format': format,
            'entity_filters': [
                NotEmptyFilter('isBronVoorTenaamstelling.[0].identificatie'),
            ],
        },
        'csv_art': {
            'exporter': csv_exporter,
            'api_type': 'graphql_streaming',
            'secure_user': '******',
            'batch_size': 10000,
            'unfold': True,
            'query': query_art,
            'append': True,
            'filename': lambda: brk_filename('stukdeel', use_sensitive_dir=True),
            'mime_type': 'plain/text',
            'format': format,
            'entity_filters': [
                NotEmptyFilter(
                    'isBronVoorAantekeningRecht.[0].identificatie',
                ),
            ],
        },
        'csv_akt': {
            'exporter': csv_exporter,
            'api_type': 'graphql_streaming',
            'secure_user': '******',
            'batch_size': 10000,
            'unfold': True,
            'query': query_akt,
            'append': True,
            'filename': lambda: brk_filename('stukdeel', use_sensitive_dir=True),
            'mime_type': 'plain/text',
            'format': format,
            'entity_filters': [
                NotEmptyFilter(
                    'isBronVoorAantekeningKadastraalObject.[0].identificatie',
                ),
            ],
        },
        'csv_zrt': {
            'exporter': csv_exporter,
            'api_type': 'graphql_streaming',
            'secure_user': '******',
            'batch_size': 10000,
            'unfold': True,
            'append': True,
            'query': query_zrt,
            'filename': lambda: brk_filename('stukdeel', use_sensitive_dir=True),
            'mime_type': 'plain/text',
            'format': format,
            'entity_filters': [
                NotEmptyFilter('isBronVoorZakelijkRecht.[0].appartementsrechtsplitsingidentificatie')
            ],
        }
    }
Esempio n. 7
0
class AantekeningenrechtenExportConfig:
    art_query = '''
{
  brkAantekeningenrechten {
    edges {
      node {
        identificatie
        aard
        omschrijving
        einddatum
        heeftBetrokkenPersoon {
          edges {
            node {
              identificatie
            }
          }
        }
        betrokkenTenaamstelling {
          edges {
            node {
              identificatie
              vanZakelijkrecht {
                edges {
                  node {
                    aardZakelijkRecht
                    rustOpKadastraalobject {
                      edges {
                        node {
                          identificatie
                          perceelnummer
                          indexletter
                          indexnummer
                          aangeduidDoorKadastralegemeentecode {
                            edges {
                              node {
                                broninfo
                              }
                            }
                          }
                          aangeduidDoorKadastralesectie {
                            edges {
                              node {
                                code
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
'''

    art_format = {
        'BRK_ATG_ID': 'identificatie',
        'ATG_AARDAANTEKENING_CODE': 'aard.code',
        'ATG_AARDAANTEKENING_OMS': 'aard.omschrijving',
        'ATG_OMSCHRIJVING': 'omschrijving',
        'ATG_EINDDATUM': {
            'action': 'format',
            'formatter': format_timestamp,
            'value': 'einddatum',
        },
        'ATG_TYPE': {
            'action': 'literal',
            'value': 'Aantekening Zakelijk Recht (R)'
        },
        'BRK_KOT_ID': 'rustOpKadastraalobject.[0].identificatie',
        'KOT_KADASTRALEGEMCODE_CODE':
        'aangeduidDoorKadastralegemeentecode.[0].broninfo.omschrijving',
        'KOT_SECTIE': 'aangeduidDoorKadastralesectie.[0].code',
        'KOT_PERCEELNUMMER': 'rustOpKadastraalobject.[0].perceelnummer',
        'KOT_INDEX_LETTER': 'rustOpKadastraalobject.[0].indexletter',
        'KOT_INDEX_NUMMER': 'rustOpKadastraalobject.[0].indexnummer',
        'BRK_TNG_ID': 'betrokkenTenaamstelling.[0].identificatie',
        'ZRT_AARD_ZAKELIJKRECHT_CODE':
        'vanZakelijkrecht.[0].aardZakelijkRecht.code',
        'ZRT_AARD_ZAKELIJKRECHT_OMS':
        'vanZakelijkrecht.[0].aardZakelijkRecht.omschrijving',
        'BRK_SJT_ID': 'heeftBetrokkenPersoon.[0].identificatie',
    }

    akt_query = '''
{
  brkAantekeningenkadastraleobjecten {
    edges {
      node {
        identificatie
        aard
        omschrijving
        einddatum,
        heeftBetrokkenPersoon {
          edges {
            node {
              identificatie
            }
          }
        }
        heeftBetrekkingOpKadastraalObject {
          edges {
            node {
              identificatie
              perceelnummer
              indexletter
              indexnummer
              aangeduidDoorKadastralegemeentecode {
                edges {
                  node {
                    broninfo
                  }
                }
              }
              aangeduidDoorKadastralesectie {
                edges {
                  node {
                    code
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
'''

    akt_format = {
        'BRK_ATG_ID': 'identificatie',
        'ATG_AARDAANTEKENING_CODE': 'aard.code',
        'ATG_AARDAANTEKENING_OMS': 'aard.omschrijving',
        'ATG_OMSCHRIJVING': 'omschrijving',
        'ATG_EINDDATUM': {
            'action': 'format',
            'formatter': format_timestamp,
            'value': 'einddatum',
        },
        'ATG_TYPE': {
            'action': 'literal',
            'value': 'Aantekening Kadastraal object (O)'
        },
        'BRK_KOT_ID': 'heeftBetrekkingOpKadastraalObject.[0].identificatie',
        'KOT_KADASTRALEGEMCODE_CODE':
        'aangeduidDoorKadastralegemeentecode.[0].broninfo.omschrijving',
        'KOT_SECTIE': 'aangeduidDoorKadastralesectie.[0].code',
        'KOT_PERCEELNUMMER':
        'heeftBetrekkingOpKadastraalObject.[0].perceelnummer',
        'KOT_INDEX_LETTER':
        'heeftBetrekkingOpKadastraalObject.[0].indexletter',
        'KOT_INDEX_NUMMER':
        'heeftBetrekkingOpKadastraalObject.[0].indexnummer',
        'BRK_TNG_ID': '',
        'ZRT_AARD_ZAKELIJKRECHT_CODE': '',
        'ZRT_AARD_ZAKELIJKRECHT_OMS': '',
        'BRK_SJT_ID': 'heeftBetrokkenPersoon.[0].identificatie',
    }

    products = {
        'csv_art': {
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'unfold':
            True,
            'cross_relations':
            True,
            'entity_filters': [
                NotEmptyFilter('betrokkenTenaamstelling.[0].identificatie'),
                NotEmptyFilter('rustOpKadastraalobject.[0].identificatie'),
            ],
            'exporter':
            csv_exporter,
            'query':
            art_query,
            'filename':
            lambda: brk_filename("aantekening", use_sensitive_dir=True),
            'mime_type':
            'plain/text',
            'format':
            art_format,
        },
        'csv_akt': {
            'api_type':
            'graphql_streaming',
            'secure_user':
            '******',
            'unfold':
            True,
            'entity_filters': [
                NotEmptyFilter(
                    'heeftBetrekkingOpKadastraalObject.[0].identificatie'),
            ],
            'exporter':
            csv_exporter,
            'query':
            akt_query,
            'filename':
            lambda: brk_filename("aantekening", use_sensitive_dir=True),
            'mime_type':
            'plain/text',
            'format':
            akt_format,
            'append':
            True,
        }
    }