Skip to content

Commit 44a6cbf

Browse files
authored
Merge pull request #78 from augustjune/fixing
Fixing stuff before the release
2 parents 41abb17 + 80ed6eb commit 44a6cbf

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

core/js/src/main/scala/canoe/api/clients/AjaxClient.scala

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,20 @@ private[api] class AjaxClient[F[_]: Async: ContextShift](token: String) extends
1919
*/
2020
def execute[Req, Res](request: Req)(implicit M: Method[Req, Res]): F[Res] = {
2121
implicit val responseDecoder: Decoder[Response[Res]] = Response.decoder[Res](M.decoder)
22-
console.log(s"Executing ${M.name}")
2322

2423
sendJsonRequest(request, M).map(decode[Response[Res]]).flatMap {
25-
case Left(error) => ResponseDecodingError(error.toString).raiseError[F, Res]
24+
case Left(error) => handleUnknownEntity(M.name, request, error.getMessage)
2625
case Right(response) => handleTelegramResponse(M, request)(response)
2726
}
2827
}
2928

29+
private def handleUnknownEntity[I, A](method: String, input: I, error: String): F[A] = {
30+
console.error(
31+
s"Received unknown Telegram entity during execution of '$method' method. \nInput data: $input. \n${error}"
32+
)
33+
ResponseDecodingError(error.toString).raiseError[F, A]
34+
}
35+
3036
private def handleTelegramResponse[A, I, C](m: Method[I, A], input: I)(response: Response[A]): F[A] =
3137
response match {
3238
case Response(true, Some(result), _, _, _) => result.pure[F]

core/shared/src/main/scala/canoe/api/sources/Polling.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package canoe.api.sources
22

3-
import canoe.api.{ResponseDecodingError, UpdateSource}
3+
import canoe.api.{ResponseDecodingError, UpdateSource, TelegramClient}
44
import canoe.methods.updates.GetUpdates
55
import canoe.models.Update
66
import canoe.syntax.methodOps
77
import cats.ApplicativeError
88
import cats.effect.Timer
9+
import cats.syntax.functor.toFunctorOps
10+
import cats.syntax.applicativeError.catsSyntaxApplicativeError
911
import fs2.Stream
1012
import io.circe.parser.decode
1113

0 commit comments

Comments
 (0)