Size: a a a

Scala User Group

2020 July 02

Y

Yevhen in Scala User Group
Error:(36, 38) Could not find an instance of Each[S,A], please check Monocle instance location policy to find out which import is necessary
(Person._payments composeTraversal each composeLens Payment._transaction composeLens Transaction._amount)
когда локально, еще старый монокль
источник

Y

Yevhen in Scala User Group
имплиситы под each ненаходит
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Ну обновите монокль
источник

Oℕ

Oleg ℕizhnik in Scala User Group
источник

Y

Yevhen in Scala User Group
import monocle.std.all._
источник

Y

Yevhen in Scala User Group
а мапы можно линзовать? как лист тюплов наверное
источник

Oℕ

Oleg ℕizhnik in Scala User Group
а вам что нужно то
источник

Oℕ

Oleg ℕizhnik in Scala User Group
по ключу, с возможностью вставить,
источник

Oℕ

Oleg ℕizhnik in Scala User Group
или что
источник

Oℕ

Oleg ℕizhnik in Scala User Group
по несортированной мапе ни траверса, ни траверсала нет
источник
2020 July 03

NP

Nikita Pedorich in Scala User Group
Привет! Подскажите можно ли в http4s определить top-level middleware который будет оборачивать исключения самого http4s в кастомные ответы? То есть у меня есть вот матчер, который ждет что будет путь /foo?param=something и если этого param нету, то я просто получаю 404, можно ли это кастомизировать?
Я пробовал просто типа Kleisli{req => http.run(req).handleErrorWIth{...}} но так как как http - это Http[OptionT[F, *], F], то кажется незаматченные роуты - это None и больше инфы не выдрать из него
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in Scala User Group
Nikita Pedorich
Привет! Подскажите можно ли в http4s определить top-level middleware который будет оборачивать исключения самого http4s в кастомные ответы? То есть у меня есть вот матчер, который ждет что будет путь /foo?param=something и если этого param нету, то я просто получаю 404, можно ли это кастомизировать?
Я пробовал просто типа Kleisli{req => http.run(req).handleErrorWIth{...}} но так как как http - это Http[OptionT[F, *], F], то кажется незаматченные роуты - это None и больше инфы не выдрать из него
можно конечно грубо сделать через :? для параметров которые у тебя обязательны, но думаю это не то что ты ищешь
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Pedorich
Привет! Подскажите можно ли в http4s определить top-level middleware который будет оборачивать исключения самого http4s в кастомные ответы? То есть у меня есть вот матчер, который ждет что будет путь /foo?param=something и если этого param нету, то я просто получаю 404, можно ли это кастомизировать?
Я пробовал просто типа Kleisli{req => http.run(req).handleErrorWIth{...}} но так как как http - это Http[OptionT[F, *], F], то кажется незаматченные роуты - это None и больше инфы не выдрать из него
В тапире можно так
источник

NP

Nikita Pedorich in Scala User Group
Но тапир же потом как-то транслирует в http4s, да? Или он как-то добавляет функционал?
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Pedorich
Но тапир же потом как-то транслирует в http4s, да? Или он как-то добавляет функционал?
Да, он поверх хттп4с
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Вы можете на него только нужные эндпоинты перевести
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
А остальное оставить на хттп4с
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in Scala User Group
Λнтон Войцишевский
Да, он поверх хттп4с
самое забавное что там скорее всего и будет опциональный параметр на который он будет ругаться
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Λнтон Войцишевский
Да, он поверх хттп4с
Результат применения тапира - Route[F] из хьтп4с
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
ᛒᚨᚱᛏᛟᛋᛋᛟ
самое забавное что там скорее всего и будет опциональный параметр на который он будет ругаться
Ну там можно кастомный эррор хендлер определить
источник