{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE OverloadedStrings #-}
module Network.XMPP.XEP.Version
( isVersionReq
, versionAnswer
) where
import Network.XMPP.Types
import Network.XMPP.XML
import Text.XML.HaXml
isVersionReq :: Stanza 'IQ 'Incoming () -> Bool
isVersionReq :: Stanza 'IQ 'Incoming () -> Bool
isVersionReq MkIQ { iqBody :: forall (p :: StanzaPurpose) ext.
Stanza 'IQ p ext -> DataByPurpose p ext
iqBody = DataByPurpose 'Incoming ()
ext } =
([Content Posn] -> Bool)
-> (() -> Bool) -> Either [Content Posn] () -> Bool
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Text -> Text -> [Content Posn] -> Bool
isVal Text
"jabber:iq:version" Text
"/iq/query/@xmlns") (Bool -> () -> Bool
forall a b. a -> b -> a
const Bool
False) Either [Content Posn] ()
DataByPurpose 'Incoming ()
ext
versionAnswer :: String -> String -> String -> Stanza 'IQ 'Outgoing () -> [CFilter i]
versionAnswer :: String
-> String -> String -> Stanza 'IQ 'Outgoing () -> [CFilter i]
versionAnswer String
name String
version String
os MkIQ { } =
[ String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
forall i.
String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
mkElemAttr String
"query"
[ String -> String -> (String, CFilter i)
forall a i. a -> String -> (a, CFilter i)
strAttr String
"xmlns" String
"jabber:iq:version" ]
[ String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
forall i.
String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
mkElemAttr String
"name" [] [String -> CFilter i
forall i. String -> CFilter i
literal String
name],
String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
forall i.
String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
mkElemAttr String
"version" [] [String -> CFilter i
forall i. String -> CFilter i
literal String
version],
String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
forall i.
String -> [(String, CFilter i)] -> [CFilter i] -> CFilter i
mkElemAttr String
"os" [] [String -> CFilter i
forall i. String -> CFilter i
literal String
os]
]
]