zio / zio-schema

Compositional, type-safe schema definitions, which enable auto-derivation of codecs and migrations.
https://zio.dev/zio-schema
Apache License 2.0
140 stars 160 forks source link

Add phone number validations for European countries #251

Open jdegoes opened 2 years ago

jdegoes commented 2 years ago

ISSUE

There is no constructor for zio.schema.validation.Validation which can validate a European country phone number.

NOTE: This is 50 tickets in one. Please signup for one or more of the tickets by checking them below.

SOLUTION

Using other constructors which already exist in zio.schema.validation.Validation (which include regex validation, string length checking, and numeric range checking), introduce a new constructor that satisfies the requirements of this issue.

object Validation {
  ...
  val phoneNumber<2-Letter CountryCode>: Validation[String] = ???
}

IMPACT

Increasing the number of constructors for Validation will make it far easier to use the validation package to

WHERE TO LOOK

PROBLEMATIC ISSUES

Issue #248 must be completed first, or at least, this issue must be based off of #244.

BalduinLandolt commented 2 years ago

I'll try to get that one started by implementing Switzerland, but once I got the hang of it, I can continue with other countries too.

marioaae commented 2 years ago

I'll try to get into this as well and will start with Germany.

BalduinLandolt commented 2 years ago

@marioaae should we pair up, maybe? If you want to, just ping me on discord (I posted in the zio-schema channel, so you should easily be able to find me)

subotic commented 2 years ago

I will try Serbia.

lmserrano commented 2 years ago

I will try Portugal.

tewecske commented 2 years ago

I will do Hungary.

jdegoes commented 1 year ago

This ticket needs to be updated to reflect which validators have already been implemented, and which remain.

BalduinLandolt commented 1 year ago

I can't update the initial task, but I went through the list: all of the validations (and many more) are done, so this issue can be closed, I suppose.
(Only thing I noticed, in the comment the republic of North Macedonia is referred to as the republic of Macedonia, which isn't the official name any more.)