Fork me on GitHub
#clojure-russia
<
2017-05-09
>
rmuslimov20:05:48

Привет, а по кложе-спеку есть идеи как его маппить в human-readable сообщения?

rmuslimov20:05:32

Нашел вот вариант https://www.slideshare.net/alexanderkiel/form-validation-with-clojure-spec Тут они маппят выражение для валидации в сообщения

rmuslimov20:05:15

explain это не тот уровень, потому как это clojure-specific сообщение - а мне его надо во внешний мир выдать

rmuslimov20:05:35

Та же например валидация в формах

rmuslimov20:05:59

у меня тут soap сервак для go клиента

kishanov20:05:12

а, ну я делал s/explain-data и парсил то, что он выдает. там выдается список :problems в каждой из которых есть :pred и :val

rmuslimov20:05:10

#:clojure.spec{:problems
               ({:path [:distance],
                 :pred (and (> % 0) (< % 4)),
                 :val 5,
                 :via
                 [:antonov.api.search/concur:search-rq
                  :antonov.api.search/distance],
                 :in [:distance]})}
ну вот например - что дальше?

rmuslimov20:05:51

завести еще один мап и в качестве ключа вписать туда все :pred из проекта?

rmuslimov20:05:09

а в качестве значения собственно сообщение?

kishanov20:05:46

я индексировал :problems по составному ключу [:path :pred] и в значение передавал функцию, которая должна принимать :val и выдавать строку

kishanov20:05:59

потому как 1 предикат может использоваться в разных местах

rmuslimov20:05:37

ок, также сейчас сделаю

rmuslimov20:05:54

спасибо