
Alexander
05.06.2017
13:21:05
облегчишь либу )
а то написали хуеты
=))

Dmitry
05.06.2017
13:21:22
Я хз где это

Google

Dmitry
05.06.2017
13:21:43
Я чуть работал с кастомными типами для postgis
С другой стороны ты тогда в ошибках получить required uuid вместо invalid uuid
Так что ещё хз как по дзену лучше

Alexander
05.06.2017
13:23:05
https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/changeset.ex#L478
я думаю это надо удалить
раз по дзену ))
я хочу что-то что можно сматчить
а экто просто падает
т.к ты дал ему невалидный UUID
мне подойдет что угодно, nil/пустая_строка да все что угодно
но не упавший процесс )

Dmitry
05.06.2017
13:25:04
Смотри как, оказывается они в касте инвалидируют чейнджсет

Google

Alexander
05.06.2017
13:26:59
интересно, а они удаляют ишшью??

Alexey
05.06.2017
13:27:15

Dmitry
05.06.2017
13:27:32
Оказывается я был не прав
Надо для невалидного uuid в имплементации протокола Ecto.Type из метода cast возвращать :Invalid
Осталось найти где это

Alexander
05.06.2017
13:28:29

Dmitry
05.06.2017
13:29:04
Чувак, я это заскриню!

Rumata
05.06.2017
13:29:16
Какие вы тут

Dmitry
05.06.2017
13:29:16
А то моя жена хочет Глеба, а я хочу Сашу
Какой нахуй Глеб?

Rumata
05.06.2017
13:29:49
Глеб
Ты же вылитый Глеб

Dmitry
05.06.2017
13:30:40
@noma4i , тыкни плиз где реализация ууид в экто

Alexander
05.06.2017
13:30:53
они проксируют
я им тесты написал чтобы показать что все падает к хуям

Dmitry
05.06.2017
13:31:30
Всмысле проксируют?

Александр
05.06.2017
13:31:36
https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/uuid.ex ?

Alexander
05.06.2017
13:31:47
https://github.com/elixir-ecto/ecto/pull/1704

Google

Alexander
05.06.2017
13:32:29
они потом какую-то чушь начали обсуждать
https://github.com/elixir-ecto/ecto/issues/1705

Dmitry
05.06.2017
13:32:46
Правда нихуя не понятно

Alexander
05.06.2017
13:33:26
вот он каст сделан https://github.com/elixir-ecto/ecto/pull/1719/commits/a6f06e4147b5cd79dac23c945f12da23a3297103
но теперь его надо в валидацию ченджсета засунуть

Taras ?
05.06.2017
13:33:55

Alexander
05.06.2017
13:34:29
а не, они все равно рейзят
:error -> raise Ecto.CastError, "cannot cast #{inspect value} to UUID"
збс решение

Dmitry
05.06.2017
13:35:06
во дибилы
Можно же вернуть :invalid

Alexander
05.06.2017
13:35:29
ага, я там именно это и просил
чтобы сматчить

Александр
05.06.2017
13:35:42
не, там же cast!
он так и должен работать

Rumata
05.06.2017
13:36:06
Так

Александр
05.06.2017
13:36:11
а выше в коде (changeset где) там использовался cast

Rumata
05.06.2017
13:36:18
Тоесть кто-то не дебил ?

Александр
05.06.2017
13:36:22
то есть пока всё выглядит логично и правильно

Google

Alexander
05.06.2017
13:36:23
все, увидел

Rumata
05.06.2017
13:36:37
Ого

Alexander
05.06.2017
13:36:53
ок, тогда обратно к тому что это надо вкрутить внутрь ченджсета

Rumata
05.06.2017
13:37:25
Почему ?
И почему не вкрутили ?

Dmitry
05.06.2017
13:37:48
не складывается чувак
Не приняли потому что каст кривой

Александр
05.06.2017
13:37:58
в ченджсете тоже всё выглядит верно

Admin
ERROR: S client not available

Александр
05.06.2017
13:38:02
может поправили уже?

Dmitry
05.06.2017
13:38:38
Сравни это
https://github.com/shhavel/ecto/blob/a6f06e4147b5cd79dac23c945f12da23a3297103/lib/ecto/uuid.ex#L16
с вот этим
https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/uuid.ex#L16

Александр
05.06.2017
13:39:33
аа, ну да добавили обработку исключений в мастере
то есть по сути исправлено
> Ecto.UUID.cast("sdfd")
:error

Dmitry
05.06.2017
13:40:08
Нет, всё не правильно

Александр
05.06.2017
13:40:10
исключений не кидает
ну может я не понимаю сути проблемы....

Alexander
05.06.2017
13:40:29

Dmitry
05.06.2017
13:40:35
cast должен возвращать :invalid а не :error

Google

Alexander
05.06.2017
13:40:42
суть проблему - бойлерплейт
так то я могу и сам написать всю матчилку UUID

Александр
05.06.2017
13:41:07

Alexander
05.06.2017
13:41:38
вот примерно такой у меня код

Dmitry
05.06.2017
13:41:57
Не, я наврал
Должно возвращать :error
Тогда я не понимаю почему не работает

Alexander
05.06.2017
13:42:17

Taras ?
05.06.2017
13:42:42

Александр
05.06.2017
13:44:11
нет, не работалО почему? и не будет работать с кастомными типами

Dmitry
05.06.2017
13:44:24
Не верю я что-то в это

Александр
05.06.2017
13:44:32
был просто паттерн матчинг, без обработки исключительных ситуаций

Dmitry
05.06.2017
13:44:33
Всё логично написано

Александр
05.06.2017
13:44:49
потому возникал runtime error из-за того что не мог заматчиться

Dmitry
05.06.2017
13:44:52
Вызывает cast из протокола
и в любом случае получаешь invalid

Александр
05.06.2017
13:45:15
Александр верно говорит, что обработка исключений должна стоять при попытке каста
любого каста
то есть они течь заткнули в конкретном месте
но возможность расширения системы типов екто так же проблематична

Alexander
05.06.2017
13:48:13
я уже говорил, что в эликсире везде попытки заткнуть дырки