packages feed

telegram-bot-api-6.7: src/Telegram/Bot/API/Methods/SetMyName.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.Methods.SetMyName where

import Data.Aeson (FromJSON (..), ToJSON (..))
import Data.Proxy
import GHC.Generics (Generic)
import Data.Text (Text)
import Servant.API
import Servant.Client hiding (Response)

import Telegram.Bot.API.Internal.Utils
import Telegram.Bot.API.MakingRequests
import Telegram.Bot.API.Internal.TH

-- ** 'setMyName'

data SetMyNameRequest = SetMyNameRequest
  { setMyNameName  :: Maybe Text -- ^ New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.
  , setMyNameLanguageCode :: Maybe Text -- ^ A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.
  }
  deriving Generic

instance ToJSON   SetMyNameRequest where toJSON = gtoJSON
instance FromJSON SetMyNameRequest where parseJSON = gparseJSON

type SetMyName = "setMyName"
  :> ReqBody '[JSON] SetMyNameRequest
  :> Post '[JSON] (Response Bool)

-- | Use this method to change the bot's name.
--   Returns 'True' on success.
setMyName :: SetMyNameRequest -> ClientM (Response Bool)
setMyName = client (Proxy @SetMyName)

makeDefault ''SetMyNameRequest