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

import Data.Proxy
import Servant.API
import Servant.Client hiding (Response)

import Telegram.Bot.API.Types
import Telegram.Bot.API.MakingRequests

-- * Methods

-- ** 'setPassportDataErrors'
--
-- Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success.

type SetPassportDataErrors
  =  "setPassportDataErrors"
  :> RequiredQueryParam "user_id" UserId
  :> RequiredQueryParam "errors" [PassportElementError]
  :> Get '[JSON] (Response Bool)

-- | Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues.
setPassportDataErrors :: UserId -> [PassportElementError] -> ClientM (Response Bool)
setPassportDataErrors :: UserId -> [PassportElementError] -> ClientM (Response Bool)
setPassportDataErrors = forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (forall {k} (t :: k). Proxy t
Proxy @SetPassportDataErrors)