Шаблоны и советы по проверке бизнес-логики
У меня есть два уровня проверки в моем приложении. Во-первых, это проверка сущности, выполняемая API проверки бина (например, обязательные поля). Второй уровень - проверка бизнес-логики. Например, у пользователя есть пост. Пользователь может удалить сообщение, только если он является создателем этого сообщения и рейтинг сообщения <50. Поэтому я должен сделать что-то вроде этого:
if (post.getCreator().equals(session.getUser())) {
if (post.getRating() < 50) {
postRepository.delete(post);
} else errors.add(400, "Cant delete post with rating 50 or higher")
} else errors add (400, "You should be owner of the post")
Мне не нравится этот способ, поскольку эти условия используются повторно, и мне приходится дублировать код. Более того, если количество условных выражений больше 5 или около того, читать и понимать код становится нереально.
Более того, стандартный Spring Validator не будет очень полезен, так как мне приходится делать разные проверки для одной сущности при разных действиях (например, удаление и обновление)
Поэтому я ищу способ сделать это умнее (возможно, по шаблону), и я был бы очень признателен, если бы кто-нибудь дал мне подсказку.
Заранее спасибо!