Skip to content

Commit

Permalink
Add InputMedia encoder (bot4s#86)
Browse files Browse the repository at this point in the history
  • Loading branch information
mmvpm committed Jun 2, 2024
1 parent f209aa3 commit eba5108
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
14 changes: 10 additions & 4 deletions core/src/com/bot4s/telegram/marshalling/CirceEncoders.scala
Original file line number Diff line number Diff line change
Expand Up @@ -343,10 +343,16 @@ trait CirceEncoders {
deriveConfiguredEncoder[DeclineChatJoinRequest]

implicit val inputFileEncoder: Encoder[InputFile] = Encoder.instance {
_ match {
case InputFile.FileId(fileId) => fileId.asJson
case _ => io.circe.Json.Null
}
case InputFile.FileId(fileId) => fileId.asJson
case _ => io.circe.Json.Null
}

implicit val inputMediaEncoder: Encoder[InputMedia] = Encoder.instance {
case q: InputMediaPhoto => q.asJson
case q: InputMediaVideo => q.asJson
case q: InputMediaAnimation => q.asJson
case q: InputMediaAudio => q.asJson
case q: InputMediaDocument => q.asJson
}

implicit val sendLocationEncoder: Encoder[SendLocation] = deriveConfiguredEncoder[SendLocation]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.bot4s.telegram.marshalling

import com.bot4s.telegram.api.TestUtils
import com.bot4s.telegram.methods.SendMediaGroup
import com.bot4s.telegram.models.CountryCode.CountryCode
import com.bot4s.telegram.models.Currency.Currency
import com.bot4s.telegram.models.MaskPositionType.MaskPositionType
Expand Down Expand Up @@ -183,4 +184,16 @@ class MarshallingSuite extends AnyFlatSpec with MockFactory with Matchers with T
toJson[StickerFormat](StickerFormat.Video) shouldBe """"video""""
}

it should "encode InputMediaPhoto" in {
val inputMedia = InputMediaPhoto("media", None)
toJson[InputMedia](inputMedia) shouldBe """{"media":"media","type":"photo"}"""
}

it should "encode SendMediaGroup" in {
val inputMedia = InputMediaPhoto("media", None)
val sendMediaGroup = SendMediaGroup(ChatId(123), Array(inputMedia))
toJson[SendMediaGroup](sendMediaGroup) shouldBe """{"chat_id":123,"media":[{"media":"media","type":"photo"}]}"""
}


}

0 comments on commit eba5108

Please sign in to comment.