maykinmedia / open-klant

Registratiecomponent voor de opslag en ontsluiting van klantgegevens volgens de Klantinteracties API-specificatie.
Other
2 stars 3 forks source link

Validation of any stored phone number #235

Closed mariusvandam closed 2 hours ago

mariusvandam commented 2 months ago

Thema / Theme

Klantinteracties API

Omschrijving / Description

It is desirable to have OpenKlant validate and/or format/transform phone numbers before storing them so that they are stored in a consistent way.

Toegevoegde waarde / Added value

This make sure only valid phone numbers are stored and any connected system can rely on the provided addresses.

Aanvullende opmerkingen / Additional context

As discussed on 29-8 with Andy, ICATT & Maykin

andyverberne commented 2 months ago

Hieronder de conversie en validatie regels en patterns welke in e-Suite worden gehanteerd

/**
     * (0[8-9]00[0-9]{4,7}) : 0800 of 0900 Nederlands service nummer. Begint altijd met 0800 of 0900 en daarna nog minimaal 4 tot maximal 7 cijfers.
     * (0[1-9][0-9]{8,8})   : Nederland 10 cijferig nummer. Begint altijd met 0, dan een getal <> 0 en daarna nog 8 cijfers.</>
     * (\+[0-9]{9,20})      : Internationaal nummer.
     * 1400                 : Het 1400 Rijksoverheidnummer.
     * 140[0-9]{2,3})       : Het 14+ nummer voor gemeenten, 14 + netnummer.
     */
    public static final Pattern TELEFOON_PATTERN = Pattern.compile("(0[8-9]00[0-9]{4,7})|(0[1-9][0-9]{8})|(\\+[0-9]{9,20}|1400|140[0-9]{2,3})");

    /**
     * Characters that must be removed from telefoonnummers.
     */
    public static final Pattern TELEFOON_NOISE_PATTERN = Pattern.compile("[-()\\s]+");

    /**
     * Onderstaande patterns worden gebruikt om telefoonnummers te standaardiseren
     *
     * Een 0031... wordt altijd een +31...
     * Een +310... wordt altijd een +31... dus zonder de netnummer 0
     * Een +31140... wordt altijd 140... dus zonder de landcode
     */
    public static final Pattern TELEFOON_0031 = Pattern.compile("^0031");
    public static final Pattern TELEFOON_PLUS_310 = Pattern.compile("^\\+310");
    public static final Pattern TELEFOON_PLUS_31140 = Pattern.compile("^\\+31140");