Skip to content

Commit

Permalink
Fix circe sealed trait serialization.
Browse files Browse the repository at this point in the history
  • Loading branch information
mukel committed Sep 2, 2018
1 parent 4642596 commit 491d5cd
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions core/src/com/bot4s/telegram/marshalling/CirceEncoders.scala
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ trait CirceEncoders {
implicit val inputTextMessageContentEncoder: Encoder[InputTextMessageContent] =
deriveEncoder[InputTextMessageContent]

implicit val inputMessageContentEncoder: Encoder[InputMessageContent] = Encoder.instance {
case q: InputTextMessageContent => q.asJson
case q: InputLocationMessageContent => q.asJson
case q: InputVenueMessageContent => q.asJson
case q: InputContactMessageContent => q.asJson
}

/** InlineQueryResult */
implicit val inlineQueryResultArticleEncoder: Encoder[InlineQueryResultArticle] =
deriveEncoder[InlineQueryResultArticle]
Expand Down Expand Up @@ -166,6 +173,29 @@ trait CirceEncoders {

implicit val inlineQueryResultGameEncoder: Encoder[InlineQueryResultGame] = deriveEncoder[InlineQueryResultGame]

implicit val inlineQueryResultEncoder: Encoder[InlineQueryResult] = Encoder.instance {
case q: InlineQueryResultCachedAudio => q.asJson
case q: InlineQueryResultCachedDocument => q.asJson
case q: InlineQueryResultCachedGif => q.asJson
case q: InlineQueryResultCachedMpeg4Gif => q.asJson
case q: InlineQueryResultCachedPhoto => q.asJson
case q: InlineQueryResultCachedSticker => q.asJson
case q: InlineQueryResultCachedVideo => q.asJson
case q: InlineQueryResultCachedVoice => q.asJson
case q: InlineQueryResultArticle => q.asJson
case q: InlineQueryResultAudio => q.asJson
case q: InlineQueryResultContact => q.asJson
case q: InlineQueryResultDocument => q.asJson
case q: InlineQueryResultGif => q.asJson
case q: InlineQueryResultLocation => q.asJson
case q: InlineQueryResultMpeg4Gif => q.asJson
case q: InlineQueryResultPhoto => q.asJson
case q: InlineQueryResultVenue => q.asJson
case q: InlineQueryResultVideo => q.asJson
case q: InlineQueryResultVoice => q.asJson
case q: InlineQueryResultGame => q.asJson
}

implicit val answerInlineQueryEncoder: Encoder[AnswerInlineQuery] = deriveEncoder[AnswerInlineQuery]

// Methods
Expand Down

0 comments on commit 491d5cd

Please sign in to comment.