Closed DonDokidon closed 3 years ago
Я лично не согласен в данном конкретном случае - вся функция как раз и состоит только из этого вызова и обёртки; я считаю, если разбить её на части, это только повредит восприятию.
С другой стороны, я бы вынес идиому catch (...) (\ex -> BotEx.throwHttpException (ex :: HttpException))
в отдельную функцию (либо приватную, либо в отдельный модуль, если будет полезна где-то ещё), так что получилось бы примерно так:
getResponseMultipart ::
Maybe (Url 'Https) ->
[PureStructs.Params] ->
Option 'Https ->
IO LbsResponse
getResponseMultipart Nothing _ _ = BotEx.throwOtherException LoggerMsgs.invalidHP
getResponseMultipart (Just url) params options = do
multipartParams <- WrapFunctions.paramsToMultipartBody params
withHttpExceptionWrapped $ do
runReq defaultHttpConfig $ do
req
POST
url
multipartParams
lbsResponse
options
withHttpExceptionWrapped :: IO a -> IO a
withHttpExceptionWrapped = handle BotEx.throwHttpException
Тут согласен, я не воспринял этот вызов как результат работы функции из-за catch, вроде таких вызовов я больше не приметил, так что теперь ишью будет про вынос catch :)
вынесла в отдельную функцию
https://github.com/KateBu/bot-1.3/blob/04be57027cfa47804428e1bd90c163b4fcb8b70b/src/API/Wrapper/GetResponseFunctions.hs#L31-L36
Такие сооружения по возможности лучше выносить в
where
/ отдельную функцию