telegram-types 0.3.1 → 0.4.0
raw patch · 16 files changed
+199/−623 lines, 16 filesdep +timedep −hashable
Dependencies added: time
Dependencies removed: hashable
Files
- src/Web/Telegram/Types.hs +1/−12
- src/Web/Telegram/Types/Interaction.hs +1/−2
- src/Web/Telegram/Types/Internal/Common.hs +48/−47
- src/Web/Telegram/Types/Internal/InlineQuery.hs +27/−28
- src/Web/Telegram/Types/Internal/InputFile.hs +14/−15
- src/Web/Telegram/Types/Internal/InputMedia.hs +12/−13
- src/Web/Telegram/Types/Internal/Keyboard.hs +9/−10
- src/Web/Telegram/Types/Internal/Media.hs +42/−43
- src/Web/Telegram/Types/Internal/Passport.hs +9/−9
- src/Web/Telegram/Types/Internal/Sticker.hs +6/−7
- src/Web/Telegram/Types/Internal/Update.hs +17/−17
- src/Web/Telegram/Types/Internal/UpdateType.hs +1/−2
- src/Web/Telegram/Types/Internal/User.hs +2/−3
- src/Web/Telegram/Types/Internal/Utils/Default.hs +4/−0
- src/Web/Telegram/Types/Lens.hs +0/−408
- telegram-types.cabal +6/−7
src/Web/Telegram/Types.hs view
@@ -16,7 +16,6 @@ ParseMode (..), -- ** Chat- ChatId (..), Chat (..), ChatType (..), ChatPermissions (..),@@ -92,7 +91,7 @@ import Data.Aeson import Data.Coerce-import Data.Hashable+import Data.Int import Data.OpenUnion import Data.Text (Text) import Deriving.Aeson@@ -103,16 +102,6 @@ import Web.Telegram.Types.Internal.Sticker import Web.Telegram.Types.Internal.User import Web.Telegram.Types.Internal.Utils--data ChatId- = ChatId Integer- | ChanId Text- deriving (Show, Eq, Generic, Default, Hashable)- deriving (FromJSON, ToJSON) via UntaggedSum ChatId--instance ToHttpApiData ChatId where- toQueryParam (ChatId i) = toQueryParam i- toQueryParam (ChanId t) = t -- | Alias to coerce coe :: Coercible a b => a -> b
src/Web/Telegram/Types/Interaction.hs view
@@ -29,7 +29,6 @@ where import Data.Aeson-import Data.Hashable import Data.OpenUnion import Deriving.Aeson import Servant.API@@ -66,6 +65,6 @@ | FindLocation | RecordVideoNote | UploadVideoNote- deriving (Show, Eq, Ord, Generic, Default, Hashable)+ deriving (Show, Eq, Ord, Generic, Default) deriving (ToJSON, FromJSON) via Snake Action deriving (ToHttpApiData) via Serialize Action
src/Web/Telegram/Types/Internal/Common.hs view
@@ -12,8 +12,9 @@ import Control.Applicative import Data.Aeson-import Data.Hashable+import Data.Int import Data.Text (Text)+import Data.Time.Clock.POSIX import Deriving.Aeson import Servant.API import Web.Telegram.Types.Internal.Keyboard@@ -28,7 +29,7 @@ | Group | Supergroup | Channel- deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+ deriving (Show, Eq, Ord, Enum, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] ChatType@@ -37,7 +38,7 @@ -- | https://core.telegram.org/bots/api#chat data Chat = Chat- { chatId :: Integer,+ { chatId :: Int64, chatType :: ChatType, title :: Maybe Text, username :: Maybe Text,@@ -48,11 +49,11 @@ inviteLink :: Maybe Text, pinnedMessage :: Maybe Message, permissions :: Maybe ChatPermissions,- slowModeDelay :: Maybe Integer,- stickerSetName :: Maybe Integer,+ slowModeDelay :: Maybe Int,+ stickerSetName :: Maybe Int, canSetStickerSet :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "chat" Chat@@ -63,7 +64,7 @@ { metadata :: MessageMetadata, content :: MessageContent }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize Message instance FromJSON Message where@@ -81,23 +82,23 @@ -- | data MessageMetadata = MMetadata- { messageId :: Integer,+ { messageId :: Int, from :: Maybe User,- date :: Integer,+ date :: POSIXTime, chat :: Chat, forwardFrom :: Maybe User, forwardFromChat :: Maybe Chat,- forwardFromMessageId :: Maybe Integer,+ forwardFromMessageId :: Maybe Int, forwardSignature :: Maybe Text, forwardSenderName :: Maybe Text,- forwardDate :: Maybe Integer,+ forwardDate :: Maybe POSIXTime, replyToMessage :: Maybe Message,- editDate :: Maybe Integer,+ editDate :: Maybe POSIXTime, mediaGroupId :: Maybe Text, authorSignature :: Maybe Text, replyMarkup :: Maybe InlineKeyboardMarkup }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, FieldLabelModifier CamelToSnake] MessageMetadata@@ -179,10 +180,10 @@ { channelChatCreated :: Bool } | MigrateToChatId- { migrateToChatId :: Integer+ { migrateToChatId :: Int64 } | MigrateFromChatId- { migrateFromChatId :: Integer+ { migrateFromChatId :: Int64 } | PinnedMessage { pinnedMessage :: Message@@ -199,7 +200,7 @@ | PassportData { passPortData :: PassportData }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, FieldLabelModifier CamelToSnake] MessageContent@@ -221,7 +222,7 @@ | Pre | TextLink | TextMention- deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+ deriving (Show, Eq, Ord, Enum, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] MessageEntityType@@ -230,13 +231,13 @@ data MessageEntity = MessageEntity { entityType :: MessageEntityType,- offset :: Integer,- length :: Integer,+ offset :: Int,+ length :: Int, url :: Maybe Text, user :: Maybe User, language :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "entity" MessageEntity@@ -252,7 +253,7 @@ callbackData :: Maybe Text, gameShortName :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "callback" CallbackQuery@@ -265,7 +266,7 @@ bigFileId :: Text, bitFileUniqueId :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ChatPhoto@@ -278,7 +279,7 @@ | Restricted | Left | Kicked- deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+ deriving (Show, Eq, Ord, Enum, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] ChatStatus@@ -288,8 +289,8 @@ = ChatMember { user :: User, status :: ChatStatus,- customTitle :: Text,- untilDate :: Maybe Integer,+ customTitle :: Maybe Text,+ untilDate :: Maybe POSIXTime, canBeEdited :: Maybe Bool, canPostMessages :: Maybe Bool, canEditMessages :: Maybe Bool,@@ -306,7 +307,7 @@ canSendOtherMesssages :: Maybe Bool, canAddWebPagePreviews :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ChatMember@@ -323,7 +324,7 @@ canInviteUsers :: Maybe Bool, canPinMessages :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ChatPermissions@@ -334,7 +335,7 @@ { command :: Text, description :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via OmitNothing BotCommand@@ -343,9 +344,9 @@ data LabeledPrice = LabeledPrice { label :: Text,- amount :: Integer+ amount :: Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via OmitNothing LabeledPrice@@ -357,9 +358,9 @@ description :: Text, startParameter :: Text, currency :: Text,- totalAmount :: Integer+ totalAmount :: Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Invoice@@ -374,7 +375,7 @@ streetLine2 :: Text, postCode :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ShippingAddress@@ -387,7 +388,7 @@ email :: Maybe Text, shippingAddress :: ShippingAddress }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake OrderInfo@@ -399,7 +400,7 @@ title :: Text, prices :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "option" ShippingOption@@ -408,14 +409,14 @@ data SuccessfulPayment = SuccessfulPayment { currency :: Text,- totalAmount :: Integer,+ totalAmount :: Int, invoicePayload :: Text, shippingOptionId :: Maybe Text, orderInfo :: Maybe OrderInfo, telegramPaymentChargeId :: Text, providerPaymentChargeId :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake SuccessfulPayment@@ -428,7 +429,7 @@ invoicePayload :: Text, shippingAddress :: ShippingAddress }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "query" ShippingQuery@@ -439,12 +440,12 @@ { queryId :: Text, from :: User, currency :: Text,- totalAmount :: Integer,+ totalAmount :: Int, invoicePayload :: Text, shippingOptionId :: Maybe String, orderInfo :: Maybe OrderInfo }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "query" PreCheckoutQuery@@ -459,7 +460,7 @@ textEntities :: Maybe MessageEntity, animation :: Animation }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Game@@ -469,11 +470,11 @@ data GameHighScore = GameHighScore- { position :: Integer,+ { position :: Int, user :: User,- score :: Integer+ score :: Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via OmitNothing GameHighScore@@ -481,10 +482,10 @@ data ResponseParameters = ResponseParameters- { migrateToChatId :: Maybe Integer,- retryAfter :: Maybe Integer+ { migrateToChatId :: Maybe Int64,+ retryAfter :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ResponseParameters
src/Web/Telegram/Types/Internal/InlineQuery.hs view
@@ -7,7 +7,6 @@ module Web.Telegram.Types.Internal.InlineQuery where import Data.Aeson-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -25,7 +24,7 @@ query :: Text, offset :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake' "query" InlineQuery@@ -42,16 +41,16 @@ hideUrl :: Maybe Bool, description :: Maybe Text, thumbUrl :: Maybe Text,- thumbWidth :: Maybe Integer,- thumbHeight :: Maybe Integer+ thumbWidth :: Maybe Int,+ thumbHeight :: Maybe Int } | InlineQueryResultPhoto { resultType :: Text, resultId :: Text, photoUrl :: Text, thumbUrl' :: Text,- photoWidth :: Maybe Integer,- photoHeight :: Maybe Integer,+ photoWidth :: Maybe Int,+ photoHeight :: Maybe Int, resultTitle :: Maybe Text, description :: Maybe Text, caption :: Maybe Text,@@ -63,9 +62,9 @@ { resultType :: Text, resultId :: Text, gifUrl :: Text,- gifWidth :: Maybe Integer,- gifHeight :: Maybe Integer,- gifDuration :: Maybe Integer,+ gifWidth :: Maybe Int,+ gifHeight :: Maybe Int,+ gifDuration :: Maybe Int, thumbUrl' :: Text, resultTitle :: Maybe Text, caption :: Maybe Text,@@ -77,9 +76,9 @@ { resultType :: Text, resultId :: Text, mpeg4Url :: Text,- mpeg4Width :: Maybe Integer,- mpeg4Height :: Maybe Integer,- mpeg4Duration :: Maybe Integer,+ mpeg4Width :: Maybe Int,+ mpeg4Height :: Maybe Int,+ mpeg4Duration :: Maybe Int, thumbUrl' :: Text, resultTitle :: Maybe Text, caption :: Maybe Text,@@ -96,9 +95,9 @@ title :: Text, caption :: Maybe Text, parseMode :: Maybe ParseMode,- videoWidth :: Maybe Integer,- videoHeight :: Maybe Integer,- videoDuration :: Maybe Integer,+ videoWidth :: Maybe Int,+ videoHeight :: Maybe Int,+ videoDuration :: Maybe Int, description :: Maybe Text, replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent@@ -111,7 +110,7 @@ caption :: Maybe Text, parseMode :: Maybe ParseMode, performer :: Maybe Text,- audioDuration :: Maybe Integer,+ audioDuration :: Maybe Int, replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent }@@ -122,7 +121,7 @@ title :: Text, caption :: Maybe Text, parseMode :: Maybe ParseMode,- voiceDuration :: Maybe Integer,+ voiceDuration :: Maybe Int, replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent }@@ -138,8 +137,8 @@ replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent, thumbUrl :: Maybe Text,- thumbWidth :: Maybe Integer,- thumbHeight :: Maybe Integer+ thumbWidth :: Maybe Int,+ thumbHeight :: Maybe Int } | InlineQueryResultLocation { resultType :: Text,@@ -147,12 +146,12 @@ latitude :: Float, longitude :: Float, title :: Text,- livePeriod :: Maybe Integer,+ livePeriod :: Maybe Int, replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent, thumbUrl :: Maybe Text,- thumbWidth :: Maybe Integer,- thumbHeight :: Maybe Integer+ thumbWidth :: Maybe Int,+ thumbHeight :: Maybe Int } | InlineQueryResultVenue { resultType :: Text,@@ -166,8 +165,8 @@ replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent, thumbUrl :: Maybe Text,- thumbWidth :: Maybe Integer,- thumbHeight :: Maybe Integer+ thumbWidth :: Maybe Int,+ thumbHeight :: Maybe Int } | InlineQueryResultContact { resultType :: Text,@@ -179,8 +178,8 @@ replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent, thumbUrl :: Maybe Text,- thumbWidth :: Maybe Integer,- thumbHeight :: Maybe Integer+ thumbWidth :: Maybe Int,+ thumbHeight :: Maybe Int } | InlineQueryResultGame { resultType :: Text,@@ -268,7 +267,7 @@ replyMarkup :: Maybe InlineKeyboardMarkup, inputMessageContent :: Maybe InputMessageContent }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "result" InlineQueryResult@@ -282,7 +281,7 @@ inlineMessageId :: Maybe Text, query :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ChosenInlineResult
src/Web/Telegram/Types/Internal/InputFile.hs view
@@ -14,7 +14,6 @@ import Data.ByteString.Lazy (ByteString) import qualified Data.ByteString.Lazy as LBS-import Data.Hashable import Data.Proxy import Data.Text (Text, pack) import Data.Text.Encoding@@ -31,7 +30,7 @@ mimeType :: Text, content :: ByteString }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) readInput :: FilePath -> IO InputFile readInput fp = do@@ -59,53 +58,53 @@ } newtype Cert = Cert InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "certificate" newtype Thumb = Thumb InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "thumb" newtype Photo = Photo InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "photo" newtype Audio = Audio InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "audio" newtype Doc = Doc InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "document" newtype Video = Video InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "video" newtype Animation = Animation InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "animation" newtype Voice = Voice InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "voice" newtype VideoNote = VideoNote InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "video_note" newtype Sticker = Sticker InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "sticker" newtype PngSticker = PngSticker InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "png_sticker" newtype TgsSticker = TgsSticker InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "tgs_sticker" newtype Media = Media InputFile- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (Multi) via InputF "media"
src/Web/Telegram/Types/Internal/InputMedia.hs view
@@ -14,7 +14,6 @@ module Web.Telegram.Types.Internal.InputMedia where import Data.Aeson-import Data.Hashable import Data.Maybe (catMaybes) import Data.OpenUnion import Data.Text (Text)@@ -28,7 +27,7 @@ = MarkdownV2 | HTML | Markdown- deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+ deriving (Show, Eq, Ord, Enum, Generic, Default) deriving (FromJSON, ToJSON) via OmitNothing ParseMode@@ -85,11 +84,11 @@ thumb :: Maybe Text, caption :: Maybe Text, parseMode :: Maybe ParseMode,- width :: Maybe Integer,- height :: Maybe Integer,- duration :: Maybe Integer+ width :: Maybe Int,+ height :: Maybe Int,+ duration :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize InputMediaAnimation (.=?) :: ToJSON v => Text -> Maybe v -> Maybe (Text, Value)@@ -125,11 +124,11 @@ thumb :: Maybe Text, caption :: Maybe Text, parseMode :: Maybe ParseMode,- duration :: Maybe Integer,+ duration :: Maybe Int, performer :: Maybe Text, title :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize InputMediaAudio instance ToJSON InputMediaAudio where@@ -163,7 +162,7 @@ caption :: Maybe Text, parseMode :: Maybe ParseMode }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize InputMediaDocument instance ToJSON InputMediaDocument where@@ -193,7 +192,7 @@ caption :: Maybe Text, parseMode :: Maybe ParseMode }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize InputMediaPhoto instance ToJSON InputMediaPhoto where@@ -223,7 +222,7 @@ caption :: Maybe Text, parseMode :: Maybe ParseMode }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize InputMediaVideo instance ToJSON InputMediaVideo where@@ -256,7 +255,7 @@ | InputLocationMessageContent { latitude :: Float, longitude :: Float,- livePeriod :: Maybe Integer+ livePeriod :: Maybe Int } | InputVenueMessageContent { latitude :: Float,@@ -272,7 +271,7 @@ lastName :: Maybe Text, vcard :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake InputMessageContent
src/Web/Telegram/Types/Internal/Keyboard.hs view
@@ -10,7 +10,6 @@ import Data.Aeson import Data.Aeson.Types-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -24,7 +23,7 @@ oneTimeKeyboard :: Maybe Bool, selective :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToJSON) via Snake ReplyKeyboardMarkup@@ -35,7 +34,7 @@ { text :: Text, addon :: Maybe KeyboardButtonAddon }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToHttpApiData) via Serialize KeyboardButton instance ToJSON KeyboardButton where@@ -48,7 +47,7 @@ = RequestContact Bool | RequestLocation Bool | RequestPoll KeyboardButtonPollType- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[ConstructorTagModifier CamelToSnake, SumObjectWithSingleField] KeyboardButtonAddon@@ -57,7 +56,7 @@ = KeyboardButtonPollType { pollType :: Maybe PollType }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "poll" KeyboardButtonPollType@@ -68,7 +67,7 @@ { removeKeyboard :: Bool, selective :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ReplyKeyboardRemove@@ -78,7 +77,7 @@ = InlineKeyboardMarkup { inlineKeyboard :: [[InlineKeyboardButton]] }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToJSON, FromJSON) via Snake InlineKeyboardMarkup@@ -94,7 +93,7 @@ switchInlineQueryCurrentChat :: Maybe Text, pay :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake InlineKeyboardButton@@ -107,7 +106,7 @@ botUsername :: Maybe Text, requestWriteAccess :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake LoginUrl@@ -118,7 +117,7 @@ { forceReply :: Bool, selective :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake ForceReply
src/Web/Telegram/Types/Internal/Media.hs view
@@ -7,7 +7,6 @@ module Web.Telegram.Types.Internal.Media where import Data.Aeson-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -18,11 +17,11 @@ = PhotoSize { fileId :: Text, fileUniqueId :: Text,- width :: Integer,- height :: Integer,- fileSize :: Maybe Integer+ width :: Int,+ height :: Int,+ fileSize :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake PhotoSize@@ -32,14 +31,14 @@ = Audio { fileId :: Text, fileUniqueId :: Text,- duration :: Integer,+ duration :: Int, performer :: Maybe Text, title :: Maybe Text, mimeType :: Maybe Text,- fileSize :: Maybe Integer,+ fileSize :: Maybe Int, thumb :: Maybe PhotoSize }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Audio@@ -52,9 +51,9 @@ thumb :: Maybe PhotoSize, fileName :: Maybe Text, mimeType :: Maybe Text,- fileSize :: Maybe Integer+ fileSize :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Document@@ -64,14 +63,14 @@ = Video { fileId :: Text, fileUniqueId :: Text,- width :: Integer,- height :: Integer,- duration :: Integer,+ width :: Int,+ height :: Int,+ duration :: Int, thumb :: Maybe PhotoSize, mimeType :: Maybe Text,- fileSize :: Maybe Integer+ fileSize :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Video@@ -81,15 +80,15 @@ = Animation { fileId :: Text, fileUniqueId :: Text,- width :: Integer,- height :: Integer,- duration :: Integer,+ width :: Int,+ height :: Int,+ duration :: Int, thumb :: Maybe PhotoSize, fileName :: Maybe Text, mimeType :: Maybe Text,- fileSize :: Integer+ fileSize :: Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Animation@@ -99,11 +98,11 @@ = Voice { fileId :: Text, fileUniqueId :: Text,- duration :: Integer,+ duration :: Int, mimeType :: Maybe Text,- fileSize :: Maybe Integer+ fileSize :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Voice@@ -113,12 +112,12 @@ = VideoNote { fileId :: Text, fileUniqueId :: Text,- length :: Integer,- duration :: Integer,+ length :: Int,+ duration :: Int, thumb :: Maybe PhotoSize,- fileSize :: Integer+ fileSize :: Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake VideoNote@@ -129,10 +128,10 @@ { phoneNumber :: Text, firstName :: Text, lastName :: Maybe Text,- userId :: Maybe Integer,+ userId :: Maybe Int, vcard :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Contact@@ -143,7 +142,7 @@ { longitude :: Float, latitude :: Float }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via OmitNothing Location@@ -157,7 +156,7 @@ foursquareId :: Maybe Text, foursquareType :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Venue@@ -166,9 +165,9 @@ data PollOption = PollOption { text :: Text,- voterCount :: Integer+ voterCount :: Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake PollOption@@ -178,9 +177,9 @@ = PollAnswer { pollId :: Text, user :: User,- optionIds :: [Integer]+ optionIds :: [Int] }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "poll" PollAnswer@@ -189,7 +188,7 @@ data PollType = Regular | Quiz- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] PollType@@ -200,14 +199,14 @@ { pollId :: Text, question :: Text, options :: [PollOption],- totalVoterCount :: Integer,+ totalVoterCount :: Int, isClosed :: Bool, isAnonymous :: Bool, pollType :: PollType, allowsMultipleAnswers :: Bool,- correctOptionId :: Maybe Integer+ correctOptionId :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "poll" Poll@@ -215,10 +214,10 @@ data UserProfilePhotos = UserProfilePhotos- { totalCount :: Integer,+ { totalCount :: Int, photos :: [[PhotoSize]] }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake UserProfilePhotos@@ -228,10 +227,10 @@ = File { fileId :: Text, fileUniqueId :: Text,- fileSize :: Maybe Integer,+ fileSize :: Maybe Int, filePath :: Maybe Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake File
src/Web/Telegram/Types/Internal/Passport.hs view
@@ -6,8 +6,8 @@ module Web.Telegram.Types.Internal.Passport where -import Data.Hashable import Data.Text (Text)+import Data.Time.Clock.POSIX import Deriving.Aeson import Servant.API import Web.Telegram.Types.Internal.Utils@@ -17,7 +17,7 @@ { passportData :: [EncryptedPassportElement], credentials :: EncryptedCredentials }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake "passport" PassportData@@ -27,10 +27,10 @@ = PassportFile { fileId :: Text, fileUniqueId :: Text,- fileSize :: Integer,- fileDate :: Integer+ fileSize :: Int,+ fileDate :: POSIXTime }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToJSON, FromJSON) via Snake PassportFile@@ -49,7 +49,7 @@ translation :: Maybe [PassportFile], hash :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToJSON, FromJSON) via PrefixedSnake "element" EncryptedPassportElement@@ -60,7 +60,7 @@ hash :: Text, secret :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToJSON, FromJSON) via PrefixedSnake "credential" EncryptedCredentials@@ -121,7 +121,7 @@ elementHash :: Text, message :: Text }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (ToJSON, FromJSON) via PrefixedSnake "error" PassportElementError@@ -141,7 +141,7 @@ | TemporaryRegistration | PhoneNumber | Email- deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+ deriving (Show, Eq, Ord, Enum, Generic, Default) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] EncryptedPassportElementType
src/Web/Telegram/Types/Internal/Sticker.hs view
@@ -5,7 +5,6 @@ module Web.Telegram.Types.Internal.Sticker where -import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -16,16 +15,16 @@ = Sticker { fileId :: Text, fileUniqueId :: Text,- width :: Integer,- height :: Integer,+ width :: Int,+ height :: Int, isAnimated :: Bool, thumb :: Maybe PhotoSize, emoji :: Maybe Text, setName :: Maybe Text, maskPosition :: Maybe MaskPosition,- fileSize :: Maybe Integer+ fileSize :: Maybe Int }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake Sticker@@ -39,7 +38,7 @@ containsMasks :: Bool, stickers :: [Sticker] }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake StickerSet@@ -52,7 +51,7 @@ yShift :: Float, scale :: Float }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake MaskPosition
src/Web/Telegram/Types/Internal/Update.hs view
@@ -8,9 +8,9 @@ module Web.Telegram.Types.Internal.Update where import Data.Aeson-import Data.Hashable import Data.Monoid import Data.Text (Text)+import Data.Time.Clock.POSIX import Deriving.Aeson import qualified Web.Telegram.Types.Internal.Common as C import qualified Web.Telegram.Types.Internal.InlineQuery as IQ@@ -22,60 +22,60 @@ data Update = -- | New incoming message of any kind — text, photo, sticker, etc. Message- { updateId :: Integer,+ { updateId :: Int, message :: C.Message } | -- | New version of a message that is known to the bot and was edited EditedMessage- { updateId :: Integer,+ { updateId :: Int, message :: C.Message } | -- | New incoming channel post of any kind — text, photo, sticker, etc. ChannelPost- { updateId :: Integer,+ { updateId :: Int, message :: C.Message } | -- | New version of a channel post that is known to the bot and was edited EditedChannelPost- { updateId :: Integer,+ { updateId :: Int, message :: C.Message } | -- | New incoming inline query InlineQuery- { updateId :: Integer,+ { updateId :: Int, iquery :: IQ.InlineQuery } | -- | The result of an inline query that was chosen by a user and sent to their chat partner. Please see our documentation on the feedback collecting for details on how to enable these updates for your bot ChosenInlineResult- { updateId :: Integer,+ { updateId :: Int, result :: IQ.ChosenInlineResult } | -- | New incoming callback query CallbackQuery- { updateId :: Integer,+ { updateId :: Int, cbquery :: C.CallbackQuery } | -- | New incoming shipping query. Only for invoices with flexible price ShippingQuery- { updateId :: Integer,+ { updateId :: Int, squery :: C.ShippingQuery } | -- | New incoming pre-checkout query. Contains full information about checkout PreCheckoutQuery- { updateId :: Integer,+ { updateId :: Int, pcquery :: C.PreCheckoutQuery } | -- | New poll state. Bots receive only updates about stopped polls and polls, which are sent by the bot PollUpdate- { updateId :: Integer,+ { updateId :: Int, poll :: M.Poll } | -- | A user changed their answer in a non-anonymous poll. Bots receive new votes only in polls that were sent by the bot itself. PollAnswer- { updateId :: Integer,+ { updateId :: Int, answer :: M.PollAnswer }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) instance FromJSON Update where parseJSON = withObject "Update object" $ \o -> do@@ -110,17 +110,17 @@ -- | True, if a custom certificate was provided for webhook certificate checks hasCustomCertificate :: Bool, -- | Number of updates awaiting delivery- pendingUpdateCount :: Integer,+ pendingUpdateCount :: Int, -- | Unix time for the most recent error that happened when trying to deliver an update via webhook- lastErrorDate :: Maybe Integer,+ lastErrorDate :: Maybe POSIXTime, -- | Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook lastErrorMessage :: Maybe Text, -- | Maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery- maxConnections :: Maybe Integer,+ maxConnections :: Maybe Int, -- | A list of update types the bot is subscribed to. Defaults to all update types allowedUpdates :: Maybe [UpdateType] }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via Snake WebhookInfo
src/Web/Telegram/Types/Internal/UpdateType.hs view
@@ -5,7 +5,6 @@ module Web.Telegram.Types.Internal.UpdateType where -import Data.Hashable import Deriving.Aeson import Web.Telegram.Types.Internal.Utils @@ -21,7 +20,7 @@ | PreCheckoutQuery | PollUpdate | PollAnswer- deriving (Show, Eq, Generic, Default, Ord, Enum, Hashable)+ deriving (Show, Eq, Generic, Default, Ord, Enum) deriving (FromJSON, ToJSON) via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] UpdateType
src/Web/Telegram/Types/Internal/User.hs view
@@ -11,7 +11,6 @@ where import Data.Aeson-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -21,7 +20,7 @@ data User = User { -- | Unique identifier for this user or bot- userId :: Integer,+ userId :: Int, -- | True, if this user is a bot isBot :: Bool, -- | User's or bot's first name@@ -39,7 +38,7 @@ -- | True, if the bot supports inline queries. Returned only in getMe. supportsInlineQueries :: Maybe Bool }- deriving (Show, Eq, Generic, Default, Hashable)+ deriving (Show, Eq, Generic, Default) deriving (FromJSON, ToJSON) via PrefixedSnake' "user" User
src/Web/Telegram/Types/Internal/Utils/Default.hs view
@@ -12,6 +12,7 @@ import Data.Int import Data.OpenUnion import Data.Text (Text)+import Data.Time.Clock.POSIX import GHC.Generics class GDefault f where@@ -85,3 +86,6 @@ instance (Default a, Typeable a) => Default (Union (a ': as)) where def = liftUnion (def :: a)++instance Default POSIXTime where+ def = 0
− src/Web/Telegram/Types/Lens.hs
@@ -1,408 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE TypeApplications #-}--module Web.Telegram.Types.Lens {-# DEPRECATED "Use labels from generics-lens instead" #-} where--import Control.Lens-import Data.Generics.Product--userId :: HasField "userId" s t a b => Lens s t a b-userId = field @"userId"--isBot :: HasField "isBot" s t a b => Lens s t a b-isBot = field @"isBot"--firstName :: HasField "firstName" s t a b => Lens s t a b-firstName = field @"firstName"--lastName :: HasField "lastName" s t a b => Lens s t a b-lastName = field @"lastName"--userName :: HasField "userName" s t a b => Lens s t a b-userName = field @"userName"--languageCode :: HasField "languageCode" s t a b => Lens s t a b-languageCode = field @"languageCode"--canJoinGroups :: HasField "canJoinGroups" s t a b => Lens s t a b-canJoinGroups = field @"canJoinGroups"--canReadAllGroupMessages :: HasField "canReadAllGroupMessages" s t a b => Lens s t a b-canReadAllGroupMessages = field @"canReadAllGroupMessages"--supportsInlineQueries :: HasField "supportsInlineQueries" s t a b => Lens s t a b-supportsInlineQueries = field @"supportsInlineQueries"--metadata :: HasField "metadata" s t a b => Lens s t a b-metadata = field @"metadata"--content :: HasField "content" s t a b => Lens s t a b-content = field @"content"--messageId :: HasField "messageId" s t a b => Lens s t a b-messageId = field @"messageId"--from :: HasField "from" s t a b => Lens s t a b-from = field @"from"--date :: HasField "date" s t a b => Lens s t a b-date = field @"date"--chat :: HasField "chat" s t a b => Lens s t a b-chat = field @"chat"--forwardFrom :: HasField "forwardFrom" s t a b => Lens s t a b-forwardFrom = field @"forwardFrom"--forwardFromChat :: HasField "forwardFromChat" s t a b => Lens s t a b-forwardFromChat = field @"forwardFromChat"--forwardFromMessageId :: HasField "forwardFromMessageId" s t a b => Lens s t a b-forwardFromMessageId = field @"forwardFromMessageId"--forwardSignature :: HasField "forwardSignature" s t a b => Lens s t a b-forwardSignature = field @"forwardSignature"--forwardSenderName :: HasField "forwardSenderName" s t a b => Lens s t a b-forwardSenderName = field @"forwardSenderName"--forwardDate :: HasField "forwardDate" s t a b => Lens s t a b-forwardDate = field @"forwardDate"--replyToMessage :: HasField "replyToMessage" s t a b => Lens s t a b-replyToMessage = field @"replyToMessage"--editDate :: HasField "editDate" s t a b => Lens s t a b-editDate = field @"editDate"--mediaGroupId :: HasField "mediaGroupId" s t a b => Lens s t a b-mediaGroupId = field @"mediaGroupId"--authorSignature :: HasField "authorSignature" s t a b => Lens s t a b-authorSignature = field @"authorSignature"--replyMarkup :: HasField "replyMarkup" s t a b => Lens s t a b-replyMarkup = field @"replyMarkup"--text :: HasField "text" s t a b => Lens s t a b-text = field @"text"--entities :: HasField "entities" s t a b => Lens s t a b-entities = field @"entities"--audio :: HasField "audio" s t a b => Lens s t a b-audio = field @"audio"--document :: HasField "document" s t a b => Lens s t a b-document = field @"document"--animation :: HasField "animation" s t a b => Lens s t a b-animation = field @"animation"--game :: HasField "game" s t a b => Lens s t a b-game = field @"game"--photo :: HasField "photo" s t a b => Lens s t a b-photo = field @"photo"--sticker :: HasField "sticker" s t a b => Lens s t a b-sticker = field @"sticker"--video :: HasField "video" s t a b => Lens s t a b-video = field @"video"--voice :: HasField "voice" s t a b => Lens s t a b-voice = field @"voice"--videoNote :: HasField "videoNote" s t a b => Lens s t a b-videoNote = field @"videoNote"--contact :: HasField "contact" s t a b => Lens s t a b-contact = field @"contact"--location :: HasField "location" s t a b => Lens s t a b-location = field @"location"--venue :: HasField "venue" s t a b => Lens s t a b-venue = field @"venue"--poll :: HasField "poll" s t a b => Lens s t a b-poll = field @"poll"--newChatMembers :: HasField "newChatMembers" s t a b => Lens s t a b-newChatMembers = field @"newChatMembers"--leftChatMember :: HasField "leftChatMember" s t a b => Lens s t a b-leftChatMember = field @"leftChatMember"--newChatPhoto :: HasField "newChatPhoto" s t a b => Lens s t a b-newChatPhoto = field @"newChatPhoto"--deleteChatPhoto :: HasField "deleteChatPhoto" s t a b => Lens s t a b-deleteChatPhoto = field @"deleteChatPhoto"--groupChatCreated :: HasField "groupChatCreated" s t a b => Lens s t a b-groupChatCreated = field @"groupChatCreated"--supergroupChatCreated :: HasField "supergroupChatCreated" s t a b => Lens s t a b-supergroupChatCreated = field @"supergroupChatCreated"--channelChatCreated :: HasField "channelChatCreated" s t a b => Lens s t a b-channelChatCreated = field @"channelChatCreated"--migrateToChatId :: HasField "migrateToChatId" s t a b => Lens s t a b-migrateToChatId = field @"migrateToChatId"--migrateFromChatId :: HasField "migrateFromChatId" s t a b => Lens s t a b-migrateFromChatId = field @"migrateFromChatId"--pinnedMessage :: HasField "pinnedMessage" s t a b => Lens s t a b-pinnedMessage = field @"pinnedMessage"--invoice :: HasField "invoice" s t a b => Lens s t a b-invoice = field @"invoice"--successfulPayment :: HasField "successfulPayment" s t a b => Lens s t a b-successfulPayment = field @"successfulPayment"--connectedWebsite :: HasField "connectedWebsite" s t a b => Lens s t a b-connectedWebsite = field @"connectedWebsite"--passPortData :: HasField "passPortData" s t a b => Lens s t a b-passPortData = field @"passPortData"--caption :: HasField "caption" s t a b => Lens s t a b-caption = field @"caption"--captionEntities :: HasField "captionEntities" s t a b => Lens s t a b-captionEntities = field @"captionEntities"--chatId :: HasField "chatId" s t a b => Lens s t a b-chatId = field @"chatId"--chatType :: HasField "chatType" s t a b => Lens s t a b-chatType = field @"chatType"--title :: HasField "title" s t a b => Lens s t a b-title = field @"title"--username :: HasField "username" s t a b => Lens s t a b-username = field @"username"--description :: HasField "description" s t a b => Lens s t a b-description = field @"description"--inviteLink :: HasField "inviteLink" s t a b => Lens s t a b-inviteLink = field @"inviteLink"--permissions :: HasField "permissions" s t a b => Lens s t a b-permissions = field @"permissions"--slowModeDelay :: HasField "slowModeDelay" s t a b => Lens s t a b-slowModeDelay = field @"slowModeDelay"--stickerSetName :: HasField "stickerSetName" s t a b => Lens s t a b-stickerSetName = field @"stickerSetName"--canSetStickerSet :: HasField "canSetStickerSet" s t a b => Lens s t a b-canSetStickerSet = field @"canSetStickerSet"--canSendMessages :: HasField "canSendMessages" s t a b => Lens s t a b-canSendMessages = field @"canSendMessages"--canSendMediaMessages :: HasField "canSendMediaMessages" s t a b => Lens s t a b-canSendMediaMessages = field @"canSendMediaMessages"--canSendPolls :: HasField "canSendPolls" s t a b => Lens s t a b-canSendPolls = field @"canSendPolls"--canSendOtherMesssages :: HasField "canSendOtherMesssages" s t a b => Lens s t a b-canSendOtherMesssages = field @"canSendOtherMesssages"--canAddWebPagePreviews :: HasField "canAddWebPagePreviews" s t a b => Lens s t a b-canAddWebPagePreviews = field @"canAddWebPagePreviews"--canChangeInfo :: HasField "canChangeInfo" s t a b => Lens s t a b-canChangeInfo = field @"canChangeInfo"--canInviteUsers :: HasField "canInviteUsers" s t a b => Lens s t a b-canInviteUsers = field @"canInviteUsers"--canPinMessages :: HasField "canPinMessages" s t a b => Lens s t a b-canPinMessages = field @"canPinMessages"--smallFileId :: HasField "smallFileId" s t a b => Lens s t a b-smallFileId = field @"smallFileId"--smallFileUniqueId :: HasField "smallFileUniqueId" s t a b => Lens s t a b-smallFileUniqueId = field @"smallFileUniqueId"--bigFileId :: HasField "bigFileId" s t a b => Lens s t a b-bigFileId = field @"bigFileId"--bitFileUniqueId :: HasField "bitFileUniqueId" s t a b => Lens s t a b-bitFileUniqueId = field @"bitFileUniqueId"--user :: HasField "user" s t a b => Lens s t a b-user = field @"user"--status :: HasField "status" s t a b => Lens s t a b-status = field @"status"--customTitle :: HasField "customTitle" s t a b => Lens s t a b-customTitle = field @"customTitle"--untilDate :: HasField "untilDate" s t a b => Lens s t a b-untilDate = field @"untilDate"--canBeEdited :: HasField "canBeEdited" s t a b => Lens s t a b-canBeEdited = field @"canBeEdited"--canPostMessages :: HasField "canPostMessages" s t a b => Lens s t a b-canPostMessages = field @"canPostMessages"--canEditMessages :: HasField "canEditMessages" s t a b => Lens s t a b-canEditMessages = field @"canEditMessages"--canDeleteMessages :: HasField "canDeleteMessages" s t a b => Lens s t a b-canDeleteMessages = field @"canDeleteMessages"--canRestrictMembers :: HasField "canRestrictMembers" s t a b => Lens s t a b-canRestrictMembers = field @"canRestrictMembers"--canPromoteMembers :: HasField "canPromoteMembers" s t a b => Lens s t a b-canPromoteMembers = field @"canPromoteMembers"--isMember :: HasField "isMember" s t a b => Lens s t a b-isMember = field @"isMember"--fileId :: HasField "fileId" s t a b => Lens s t a b-fileId = field @"fileId"--fileUniqueId :: HasField "fileUniqueId" s t a b => Lens s t a b-fileUniqueId = field @"fileUniqueId"--fileSize :: HasField "fileSize" s t a b => Lens s t a b-fileSize = field @"fileSize"--width :: HasField "width" s t a b => Lens s t a b-width = field @"width"--height :: HasField "height" s t a b => Lens s t a b-height = field @"height"--duration :: HasField "duration" s t a b => Lens s t a b-duration = field @"duration"--performer :: HasField "performer" s t a b => Lens s t a b-performer = field @"performer"--mimeType :: HasField "mimeType" s t a b => Lens s t a b-mimeType = field @"mimeType"--thumb :: HasField "thumb" s t a b => Lens s t a b-thumb = field @"thumb"--phoneNumber :: HasField "phoneNumber" s t a b => Lens s t a b-phoneNumber = field @"phoneNumber"--vcard :: HasField "vcard" s t a b => Lens s t a b-vcard = field @"vcard"--longitude :: HasField "longitude" s t a b => Lens s t a b-longitude = field @"longitude"--latitude :: HasField "latitude" s t a b => Lens s t a b-latitude = field @"latitude"--address :: HasField "address" s t a b => Lens s t a b-address = field @"address"--foursquareId :: HasField "foursquareId" s t a b => Lens s t a b-foursquareId = field @"foursquareId"--foursquareType :: HasField "foursquareType" s t a b => Lens s t a b-foursquareType = field @"foursquareType"--voterCount :: HasField "voterCount" s t a b => Lens s t a b-voterCount = field @"voterCount"--pollId :: HasField "pollId" s t a b => Lens s t a b-pollId = field @"pollId"--question :: HasField "question" s t a b => Lens s t a b-question = field @"question"--options :: HasField "options" s t a b => Lens s t a b-options = field @"options"--totalVoterCount :: HasField "totalVoterCount" s t a b => Lens s t a b-totalVoterCount = field @"totalVoterCount"--isClosed :: HasField "isClosed" s t a b => Lens s t a b-isClosed = field @"isClosed"--isAnonymous :: HasField "isAnonymous" s t a b => Lens s t a b-isAnonymous = field @"isAnonymous"--pollType :: HasField "pollType" s t a b => Lens s t a b-pollType = field @"pollType"--allowsMultipleAnswers :: HasField "allowsMultipleAnswers" s t a b => Lens s t a b-allowsMultipleAnswers = field @"allowsMultipleAnswers"--correctOptionId :: HasField "correctOptionId" s t a b => Lens s t a b-correctOptionId = field @"correctOptionId"--optionIds :: HasField "optionIds" s t a b => Lens s t a b-optionIds = field @"optionIds"--totalCount :: HasField "totalCount" s t a b => Lens s t a b-totalCount = field @"totalCount"--photos :: HasField "photos" s t a b => Lens s t a b-photos = field @"photos"--filePath :: HasField "filePath" s t a b => Lens s t a b-filePath = field @"filePath"--isAnimated :: HasField "isAnimated" s t a b => Lens s t a b-isAnimated = field @"isAnimated"--emoji :: HasField "emoji" s t a b => Lens s t a b-emoji = field @"emoji"--setName :: HasField "setName" s t a b => Lens s t a b-setName = field @"setName"--maskPosition :: HasField "maskPosition" s t a b => Lens s t a b-maskPosition = field @"maskPosition"--containsMasks :: HasField "containsMasks" s t a b => Lens s t a b-containsMasks = field @"containsMasks"--stickers :: HasField "stickers" s t a b => Lens s t a b-stickers = field @"stickers"--name :: HasField "name" s t a b => Lens s t a b-name = field @"name"--point :: HasField "point" s t a b => Lens s t a b-point = field @"point"--xShift :: HasField "xShift" s t a b => Lens s t a b-xShift = field @"xShift"--yShift :: HasField "yShift" s t a b => Lens s t a b-yShift = field @"yShift"--scale :: HasField "scale" s t a b => Lens s t a b-scale = field @"scale"--retryAfter :: HasField "retryAfter" s t a b => Lens s t a b-retryAfter = field @"retryAfter"--command :: HasField "command" s t a b => Lens s t a b-command = field @"command"-
telegram-types.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 1ce7c0f493d00addea341e93ceca1fa8a7969c97530ec77dfbe79d03bc90e100+-- hash: 8af209cc5d14ad01da13e8a8154044f721fe6a9791344c5d90673220e658ceaa name: telegram-types-version: 0.3.1+version: 0.4.0 synopsis: Types used in Telegram bot API description: Defines various datatypes and their serialization methods useful for writing bindings to Telegram bot API. category: Web@@ -29,7 +29,6 @@ library exposed-modules: Web.Telegram.Types- Web.Telegram.Types.Lens Web.Telegram.Types.Stock Web.Telegram.Types.Interaction Web.Telegram.Types.Passport@@ -61,14 +60,14 @@ , bytestring >=0.10.10.0 && <0.11 , deriving-aeson >=0.2.3 && <0.3 , filepath >=1.4.2.1 && <1.5- , generic-lens >=1.2.0.1 && <1.3- , hashable >=1.3.0.0 && <1.4+ , generic-lens >=1.2.0.1 && <2.1 , lens >=4.18.1 && <4.19 , mime-types >=0.1.0.9 && <0.2 , open-union >=0.4.0.0 && <0.5 , servant >=0.16.2 && <0.17 , servant-multipart >=0.11.5 && <0.12 , text >=1.2.4.0 && <1.3+ , time >=1.9.3 && <1.11 default-language: Haskell2010 test-suite telegram-types-test@@ -85,8 +84,7 @@ , bytestring >=0.10.10.0 && <0.11 , deriving-aeson >=0.2.3 && <0.3 , filepath >=1.4.2.1 && <1.5- , generic-lens >=1.2.0.1 && <1.3- , hashable >=1.3.0.0 && <1.4+ , generic-lens >=1.2.0.1 && <2.1 , lens >=4.18.1 && <4.19 , mime-types >=0.1.0.9 && <0.2 , open-union >=0.4.0.0 && <0.5@@ -94,4 +92,5 @@ , servant-multipart >=0.11.5 && <0.12 , telegram-types , text >=1.2.4.0 && <1.3+ , time >=1.9.3 && <1.11 default-language: Haskell2010