Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Проверка уникальности по нескольким полям в валидаторах #1257

Open
ehaberev opened this issue Mar 18, 2021 · 0 comments

Comments

@ehaberev
Copy link
Member

ehaberev commented Mar 18, 2021

Цель

Реализовать пример на тестовом стенде, который позволит валидировать данные, проверяя их на уникальность по сочетанию нескольких полей (например, фио и дата рождения) на стороне сервера.

Функциональные требования

  1. На странице стенда "Примеры интеграции -> Формы редактирования -> Валидация" добавить кастомный валидатор, который будет вызывать на сервере проверку уникальности по сочетанию полей "Текст" и "Дата".
  2. В случае ошибки поля должны подсвечиваться, текст ошибки должен отображаться рядом с каждым из полей и в validation summary в верху страницы (стандартное поведение для валидаторов).

Требования к реализации

На сервере проверки должны быть реализованы в бизнес-сервере и вынесены в отдельный метод. В случае наличия ошибки валидации должно выбрасываться соответствующее исключение.

Для вызова метода с проверками из бизнес-сервера должна быть также создана отдельная OData-функция, которую можно будет вызывать из кастомного валидатора на клиенте (придется сделать таким образом, так как ODataService на данный момент ошибки отдает не в формате JSON API и применить стандартный валидатор для обработки ошибок из эмберной модели, например, ds-error, пока не представляется возможным).

На клиенте в ember-flexberry@2.х валидация реализуется средствами аддона ember-validations, а в версии ember-flexberry@3.х - средствами аддона ember-cp-validations.

Исходный код

Валидация по собственным полям модели для соответствующего примера на стенде описывается в этой модели. Доработку валидаторов следует вести в ней.

Проект на GitHub: https://github.com/Flexberry/ember-flexberry
Ветка: develop (для версии [email protected]) и feature-ember-update (для версии [email protected])
Проект c бэкендом и скриптами на GitHub: https://github.com/Flexberry/FlexberryEmberTestStand.ODataBackend

Документация

Необходимо добавить соответствующие описания в следующие статьи:

Тесты

Необходимо дополнить этот тестовый случай.

Аналоги, примеры реализации

Тут можно посмотреть пример реализации кастомного валидатора, который проверяет на сервере уникальность значения поля с использованием серверного вызова.

Полезные ссылки, скриншоты

Соответствующий пример на тестовом стенде:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant