feat: remove postal code validation
This commit is contained in:
parent
d37ba84a74
commit
056fd04ddf
4 changed files with 5 additions and 17 deletions
|
|
@ -191,7 +191,7 @@ Settings (1) → MembershipFeeType (0..1)
|
||||||
- Join date cannot be in future
|
- Join date cannot be in future
|
||||||
- Exit date must be after join date
|
- Exit date must be after join date
|
||||||
- Phone: `+?[0-9\- ]{6,20}`
|
- Phone: `+?[0-9\- ]{6,20}`
|
||||||
- Postal code: 5 digits
|
- Postal code: optional (no format validation)
|
||||||
|
|
||||||
### CustomFieldValue System
|
### CustomFieldValue System
|
||||||
- Maximum one custom field value per custom field per member
|
- Maximum one custom field value per custom field per member
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ Table members {
|
||||||
- email: 5-254 characters, valid email format (required)
|
- email: 5-254 characters, valid email format (required)
|
||||||
- join_date: cannot be in future
|
- join_date: cannot be in future
|
||||||
- exit_date: must be after join_date (if both present)
|
- exit_date: must be after join_date (if both present)
|
||||||
- postal_code: exactly 5 digits (if present)
|
- postal_code: optional (no format validation)
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ defmodule Mv.Membership.Member do
|
||||||
## Validations
|
## Validations
|
||||||
- Required: email (all other fields are optional)
|
- Required: email (all other fields are optional)
|
||||||
- Email format validation (using EctoCommons.EmailValidator)
|
- Email format validation (using EctoCommons.EmailValidator)
|
||||||
- Postal code format: exactly 5 digits (German format)
|
|
||||||
- Date validations: join_date not in future, exit_date after join_date
|
- Date validations: join_date not in future, exit_date after join_date
|
||||||
- Email uniqueness: prevents conflicts with unlinked users
|
- Email uniqueness: prevents conflicts with unlinked users
|
||||||
- Linked member email change: only admins or the linked user may change a linked member's email (see `Mv.Membership.Member.Validations.EmailChangePermission`)
|
- Linked member email change: only admins or the linked user may change a linked member's email (see `Mv.Membership.Member.Validations.EmailChangePermission`)
|
||||||
|
|
@ -458,11 +457,6 @@ defmodule Mv.Membership.Member do
|
||||||
where: [present([:join_date, :exit_date])],
|
where: [present([:join_date, :exit_date])],
|
||||||
message: "cannot be before join date"
|
message: "cannot be before join date"
|
||||||
|
|
||||||
# Postal code format (only if set)
|
|
||||||
validate match(:postal_code, ~r/^\d{5}$/),
|
|
||||||
where: [present(:postal_code)],
|
|
||||||
message: "must consist of 5 digits"
|
|
||||||
|
|
||||||
# Email validation with EctoCommons.EmailValidator
|
# Email validation with EctoCommons.EmailValidator
|
||||||
validate fn changeset, _ ->
|
validate fn changeset, _ ->
|
||||||
email = Ash.Changeset.get_attribute(changeset, :email)
|
email = Ash.Changeset.get_attribute(changeset, :email)
|
||||||
|
|
|
||||||
|
|
@ -80,15 +80,9 @@ defmodule Mv.Membership.MemberTest do
|
||||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "Postal code is optional but must have 5 digits if specified", %{actor: actor} do
|
test "Postal code is optional", %{actor: actor} do
|
||||||
attrs = Map.put(@valid_attrs, :postal_code, "1234")
|
attrs = Map.delete(@valid_attrs, :postal_code)
|
||||||
|
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
|
||||||
Membership.create_member(attrs, actor: actor)
|
|
||||||
|
|
||||||
assert error_message(errors, :postal_code) =~ "must consist of 5 digits"
|
|
||||||
attrs2 = Map.delete(@valid_attrs, :postal_code)
|
|
||||||
assert {:ok, _member} = Membership.create_member(attrs2, actor: actor)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue