module TD.Query.GetContacts
  (GetContacts(..)
  ) where

import qualified Data.Aeson as A
import qualified Data.Aeson.Types as AT
import qualified TD.Lib.Internal as I

-- | Returns all contacts of the user. Returns 'TD.Data.Users.Users'
data GetContacts
  = GetContacts
  deriving (GetContacts -> GetContacts -> Bool
(GetContacts -> GetContacts -> Bool)
-> (GetContacts -> GetContacts -> Bool) -> Eq GetContacts
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GetContacts -> GetContacts -> Bool
== :: GetContacts -> GetContacts -> Bool
$c/= :: GetContacts -> GetContacts -> Bool
/= :: GetContacts -> GetContacts -> Bool
Eq, Int -> GetContacts -> ShowS
[GetContacts] -> ShowS
GetContacts -> String
(Int -> GetContacts -> ShowS)
-> (GetContacts -> String)
-> ([GetContacts] -> ShowS)
-> Show GetContacts
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GetContacts -> ShowS
showsPrec :: Int -> GetContacts -> ShowS
$cshow :: GetContacts -> String
show :: GetContacts -> String
$cshowList :: [GetContacts] -> ShowS
showList :: [GetContacts] -> ShowS
Show)

instance I.ShortShow GetContacts where
  shortShow :: GetContacts -> String
shortShow
    GetContacts
GetContacts
        = String
"GetContacts"

instance AT.ToJSON GetContacts where
  toJSON :: GetContacts -> Value
toJSON
    GetContacts
GetContacts
        = [Pair] -> Value
A.object
          [ Key
"@type" Key -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
A..= Text -> Value
AT.String Text
"getContacts"
          ]