{-# LANGUAGE OverloadedStrings #-}
module SignalDBus (
SignalDBus.Interface.withConn,
SignalDBus.Interface.withConnNum,
SignalDBus.Interface.withReceiveMessages,
reactTo,
replyTo,
link,
listAccounts,
register,
registerWithCaptcha,
verify,
verifyWithPin,
getContactName,
getContactNumber,
getSelfNumber,
isContactBlocked,
isRegistered,
listNumbers,
removePin,
sendEndSessionMessage,
sendMessage,
sendMessageReaction,
sendNoteToSelfMessage,
sendReadReceipt,
sendViewedReceipt,
sendRemoteDeleteMessage,
sendTyping,
setContactBlocked,
setContactName,
deleteContact,
deleteRecipient,
setExpirationTimer,
setPin,
submitRateLimitChallenge,
updateProfile,
uploadStickerPack,
version,
createGroup,
getGroup,
joinGroup,
listGroups,
sendGroupMessage,
sendGroupTyping,
sendGroupMessageReaction,
sendGroupRemoteDeleteMessage,
addDevice,
getDevice,
listDevices,
getGroupId,
getGroupName,
getGroupDescription,
getGroupIsBlocked,
getGroupIsAdmin,
getGroupMessageExpirationTimer,
getGroupMembers,
getGroupPendingMembers,
getGroupRequestingMembers,
getGroupAdmins,
getGroupPermissionAddMember,
getGroupPermissionEditDetails,
getGroupPermissionSendMessage,
getGroupInviteLink,
setGroupName,
setGroupDescription,
setGroupAvatar,
setGroupIsBlocked,
setGroupMessageExpirationTimer,
setGroupPermissionAddMember,
setGroupPermissionEditDetails,
setGroupPermissionSendMessage,
groupAddAdmins,
groupAddMembers,
groupDisableLink,
groupEnableLink,
groupQuit,
groupRemoveAdmins,
groupRemoveMembers,
groupResetLink,
SignalDBus.Types.SignalConn,
SignalDBus.Types.Timestamp,
SignalDBus.Types.Device,
SignalDBus.Types.Group,
SignalDBus.Types.ReceivedMessage(..),
fromUTCTime,
toUTCTime,
) where
import Data.ByteString (ByteString)
import Data.Int (Int32, Int64)
import DBus.Internal.Types (toVariant, ObjectPath(..))
import DBus.Client (clientError)
import SignalDBus.Interface
import SignalDBus.Types
import UnliftIO (MonadIO, throwIO)
replyTo :: MonadIO m
=> ReceivedMessage
-> String
-> [String]
-> SignalConn
-> m Timestamp
replyTo :: forall (m :: * -> *).
MonadIO m =>
ReceivedMessage -> String -> [String] -> SignalConn -> m Timestamp
replyTo (Message Timestamp
_ String
_ (Just Group
gId) String
_ [String]
_) String
msg [String]
as SignalConn
sc = forall (m :: * -> *).
MonadIO m =>
String -> [String] -> Group -> SignalConn -> m Timestamp
sendGroupMessage String
msg [String]
as Group
gId SignalConn
sc
replyTo (Message Timestamp
_ String
n Maybe Group
Nothing String
_ [String]
_) String
msg [String]
as SignalConn
sc = forall (m :: * -> *).
MonadIO m =>
String -> [String] -> [String] -> SignalConn -> m Timestamp
sendMessage String
msg [String]
as [String
n] SignalConn
sc
replyTo (SyncMessage Timestamp
_ String
_ Maybe Group
_ String
_ [String]
_) String
_ [String]
_ SignalConn
_ = forall (m :: * -> *) e a. (MonadIO m, Exception e) => e -> m a
throwIO forall a b. (a -> b) -> a -> b
$ String -> ClientError
clientError forall a b. (a -> b) -> a -> b
$ String
"replyTo called on SyncMessage"
replyTo (Receipt Timestamp
_ String
_) String
_ [String]
_ SignalConn
_ = forall (m :: * -> *) e a. (MonadIO m, Exception e) => e -> m a
throwIO forall a b. (a -> b) -> a -> b
$ String -> ClientError
clientError forall a b. (a -> b) -> a -> b
$ String
"replyTo called on SyncMessage"
reactTo :: MonadIO m
=> ReceivedMessage
-> String
-> Bool
-> SignalConn
-> m Timestamp
reactTo :: forall (m :: * -> *).
MonadIO m =>
ReceivedMessage -> String -> Bool -> SignalConn -> m Timestamp
reactTo (Message Timestamp
ts String
n (Just Group
gId) String
_ [String]
_) String
emoji Bool
rm SignalConn
sc = forall (m :: * -> *).
MonadIO m =>
String
-> Bool
-> String
-> Timestamp
-> Group
-> SignalConn
-> m Timestamp
sendGroupMessageReaction String
emoji Bool
rm String
n Timestamp
ts Group
gId SignalConn
sc
reactTo (Message Timestamp
ts String
n Maybe Group
Nothing String
_ [String]
_) String
emoji Bool
rm SignalConn
sc = forall (m :: * -> *).
MonadIO m =>
String
-> Bool
-> String
-> Timestamp
-> String
-> SignalConn
-> m Timestamp
sendMessageReaction String
emoji Bool
rm String
n Timestamp
ts String
n SignalConn
sc
reactTo (SyncMessage Timestamp
_ String
_ Maybe Group
_ String
_ [String]
_) String
_ Bool
_ SignalConn
_ = forall (m :: * -> *) e a. (MonadIO m, Exception e) => e -> m a
throwIO forall a b. (a -> b) -> a -> b
$ String -> ClientError
clientError forall a b. (a -> b) -> a -> b
$ String
"replyTo called on SyncMessage"
reactTo (Receipt Timestamp
_ String
_) String
_ Bool
_ SignalConn
_ = forall (m :: * -> *) e a. (MonadIO m, Exception e) => e -> m a
throwIO forall a b. (a -> b) -> a -> b
$ String -> ClientError
clientError forall a b. (a -> b) -> a -> b
$ String
"replyTo called on SyncMessage"
link :: MonadIO m => String -> SignalConn -> m String
link :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m String
link String
name = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callControl MemberName
"link" [forall a. IsVariant a => a -> Variant
toVariant String
name]
listAccounts :: MonadIO m => SignalConn -> m [String]
listAccounts :: forall (m :: * -> *). MonadIO m => SignalConn -> m [String]
listAccounts SignalConn
sc = do
[ObjectPath]
obs <- forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callControl MemberName
"listAccounts" [] SignalConn
sc
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$! forall a b c. (a -> b -> c) -> b -> a -> c
flip forall a b. (a -> b) -> [a] -> [b]
map [ObjectPath]
obs forall a b. (a -> b) -> a -> b
$ \(ObjectPath String
s)
-> Char
'+' forall a. a -> [a] -> [a]
: forall a. Int -> [a] -> [a]
drop (forall (t :: * -> *) a. Foldable t => t a -> Int
length (String
"/org/asamk/Signal/_" :: String)) String
s
register :: MonadIO m => String -> Bool -> SignalConn -> m ()
register :: forall (m :: * -> *).
MonadIO m =>
String -> Bool -> SignalConn -> m ()
register String
name Bool
b = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callControl_ MemberName
"register" [forall a. IsVariant a => a -> Variant
toVariant String
name, forall a. IsVariant a => a -> Variant
toVariant Bool
b]
registerWithCaptcha :: MonadIO m => String -> Bool -> String -> SignalConn -> m ()
registerWithCaptcha :: forall (m :: * -> *).
MonadIO m =>
String -> Bool -> String -> SignalConn -> m ()
registerWithCaptcha String
name Bool
b String
c = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callControl_ MemberName
"registerWithCaptcha"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
name, forall a. IsVariant a => a -> Variant
toVariant Bool
b, forall a. IsVariant a => a -> Variant
toVariant String
c]
verify :: MonadIO m
=> String
-> String
-> SignalConn
-> m ()
verify :: forall (m :: * -> *).
MonadIO m =>
String -> String -> SignalConn -> m ()
verify String
n String
c = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callControl_ MemberName
"verify" [forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant String
c]
verifyWithPin :: MonadIO m
=> String
-> String
-> String
-> SignalConn
-> m ()
verifyWithPin :: forall (m :: * -> *).
MonadIO m =>
String -> String -> String -> SignalConn -> m ()
verifyWithPin String
n String
c String
p = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callControl_ MemberName
"verifyWithPin"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant String
c, forall a. IsVariant a => a -> Variant
toVariant String
p]
getContactName :: MonadIO m => String -> SignalConn -> m String
getContactName :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m String
getContactName String
n = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"getContactName" [forall a. IsVariant a => a -> Variant
toVariant String
n]
getContactNumber :: MonadIO m => String -> SignalConn -> m [String]
getContactNumber :: forall (m :: * -> *).
MonadIO m =>
String -> SignalConn -> m [String]
getContactNumber String
name = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"getContactNumber" [forall a. IsVariant a => a -> Variant
toVariant String
name]
getSelfNumber :: MonadIO m => SignalConn -> m String
getSelfNumber :: forall (m :: * -> *). MonadIO m => SignalConn -> m String
getSelfNumber = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"getSelfNumber" []
isContactBlocked :: MonadIO m => String -> SignalConn -> m Bool
isContactBlocked :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m Bool
isContactBlocked String
number = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"isContactBlocked" [forall a. IsVariant a => a -> Variant
toVariant String
number]
isRegistered :: MonadIO m => [String] -> SignalConn -> m [Bool]
isRegistered :: forall (m :: * -> *).
MonadIO m =>
[String] -> SignalConn -> m [Bool]
isRegistered [String]
nums = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"isRegistered" [forall a. IsVariant a => a -> Variant
toVariant [String]
nums]
listNumbers :: MonadIO m => SignalConn -> m [String]
listNumbers :: forall (m :: * -> *). MonadIO m => SignalConn -> m [String]
listNumbers = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"listNumbers" []
removePin :: MonadIO m => SignalConn -> m ()
removePin :: forall (m :: * -> *). MonadIO m => SignalConn -> m ()
removePin = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"removePin" []
sendEndSessionMessage :: MonadIO m => SignalConn -> m ()
sendEndSessionMessage :: forall (m :: * -> *). MonadIO m => SignalConn -> m ()
sendEndSessionMessage = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"sendEndSessionMessage" []
sendMessage :: MonadIO m
=> String
-> [String]
-> [String]
-> SignalConn
-> m Timestamp
sendMessage :: forall (m :: * -> *).
MonadIO m =>
String -> [String] -> [String] -> SignalConn -> m Timestamp
sendMessage String
m [String]
as [String]
rs = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendMessage"
[forall a. IsVariant a => a -> Variant
toVariant String
m, forall a. IsVariant a => a -> Variant
toVariant [String]
as, forall a. IsVariant a => a -> Variant
toVariant [String]
rs]
sendMessageReaction :: MonadIO m
=> String
-> Bool
-> String
-> Timestamp
-> String
-> SignalConn
-> m Timestamp
sendMessageReaction :: forall (m :: * -> *).
MonadIO m =>
String
-> Bool
-> String
-> Timestamp
-> String
-> SignalConn
-> m Timestamp
sendMessageReaction String
emoji Bool
rm String
n Timestamp
ts String
r = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendMessageReaction"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
emoji, forall a. IsVariant a => a -> Variant
toVariant Bool
rm, forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant Timestamp
ts, forall a. IsVariant a => a -> Variant
toVariant String
r]
sendNoteToSelfMessage :: MonadIO m
=> String
-> [String]
-> SignalConn
-> m Timestamp
sendNoteToSelfMessage :: forall (m :: * -> *).
MonadIO m =>
String -> [String] -> SignalConn -> m Timestamp
sendNoteToSelfMessage String
m [String]
as = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendNoteToSelfMessage"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
m, forall a. IsVariant a => a -> Variant
toVariant [String]
as]
sendReadReceipt :: MonadIO m => String -> [Timestamp] -> SignalConn -> m ()
sendReadReceipt :: forall (m :: * -> *).
MonadIO m =>
String -> [Timestamp] -> SignalConn -> m ()
sendReadReceipt String
r [Timestamp]
ts = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"sendReadReceipt" [forall a. IsVariant a => a -> Variant
toVariant String
r, forall a. IsVariant a => a -> Variant
toVariant [Timestamp]
ts]
sendViewedReceipt :: MonadIO m => String -> [Timestamp] -> SignalConn -> m ()
sendViewedReceipt :: forall (m :: * -> *).
MonadIO m =>
String -> [Timestamp] -> SignalConn -> m ()
sendViewedReceipt String
r [Timestamp]
ts = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"sendViewedReceipt" [forall a. IsVariant a => a -> Variant
toVariant String
r, forall a. IsVariant a => a -> Variant
toVariant [Timestamp]
ts]
sendRemoteDeleteMessage :: MonadIO m
=> Timestamp
-> [String]
-> SignalConn
-> m Timestamp
sendRemoteDeleteMessage :: forall (m :: * -> *).
MonadIO m =>
Timestamp -> [String] -> SignalConn -> m Timestamp
sendRemoteDeleteMessage Timestamp
ts [String]
rs = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendRemoteDeleteMessage"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant Timestamp
ts, forall a. IsVariant a => a -> Variant
toVariant [String]
rs]
sendTyping :: MonadIO m => String -> Bool -> SignalConn -> m ()
sendTyping :: forall (m :: * -> *).
MonadIO m =>
String -> Bool -> SignalConn -> m ()
sendTyping String
n Bool
b = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"sendTyping" [forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant Bool
b]
setContactBlocked :: MonadIO m => String -> Bool -> SignalConn -> m ()
setContactBlocked :: forall (m :: * -> *).
MonadIO m =>
String -> Bool -> SignalConn -> m ()
setContactBlocked String
n Bool
b = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"setContactBlocked" [forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant Bool
b]
setContactName :: a
setContactName :: forall a. a
setContactName = forall a. HasCallStack => String -> a
error String
"Not implemented due to documentation succ"
deleteContact :: MonadIO m => String -> SignalConn -> m ()
deleteContact :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m ()
deleteContact String
n = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"deleteContact" [forall a. IsVariant a => a -> Variant
toVariant String
n]
deleteRecipient :: MonadIO m => String -> SignalConn -> m ()
deleteRecipient :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m ()
deleteRecipient String
n = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"deleteRecipient" [forall a. IsVariant a => a -> Variant
toVariant String
n]
setExpirationTimer :: (MonadIO m, Integral i) => String -> i -> SignalConn -> m ()
setExpirationTimer :: forall (m :: * -> *) i.
(MonadIO m, Integral i) =>
String -> i -> SignalConn -> m ()
setExpirationTimer String
n i
i = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"setExpirationTimer"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant (forall a b. (Integral a, Num b) => a -> b
fromIntegral i
i :: Int32)]
setPin :: MonadIO m => String -> SignalConn -> m ()
setPin :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m ()
setPin String
p = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"setPin" [forall a. IsVariant a => a -> Variant
toVariant String
p]
submitRateLimitChallenge :: MonadIO m => String -> String -> SignalConn -> m ()
submitRateLimitChallenge :: forall (m :: * -> *).
MonadIO m =>
String -> String -> SignalConn -> m ()
submitRateLimitChallenge String
ch String
cap = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"submitRateLimitChallenge"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
ch, forall a. IsVariant a => a -> Variant
toVariant String
cap]
updateProfile :: MonadIO m
=> String
-> String
-> String
-> String
-> String
-> Bool
-> SignalConn
-> m ()
updateProfile :: forall (m :: * -> *).
MonadIO m =>
String
-> String
-> String
-> String
-> String
-> Bool
-> SignalConn
-> m ()
updateProfile String
gn String
fn String
ab String
em String
fp Bool
rm = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"updateProfile"
forall a b. (a -> b) -> a -> b
$ [forall a. IsVariant a => a -> Variant
toVariant String
gn, forall a. IsVariant a => a -> Variant
toVariant String
fn, forall a. IsVariant a => a -> Variant
toVariant String
ab, forall a. IsVariant a => a -> Variant
toVariant String
em, forall a. IsVariant a => a -> Variant
toVariant String
fp, forall a. IsVariant a => a -> Variant
toVariant Bool
rm]
uploadStickerPack :: MonadIO m => String -> SignalConn -> m String
uploadStickerPack :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m String
uploadStickerPack String
fp = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"uploadStickerPack" [forall a. IsVariant a => a -> Variant
toVariant String
fp]
version :: MonadIO m => SignalConn -> m String
version :: forall (m :: * -> *). MonadIO m => SignalConn -> m String
version = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"version" []
createGroup :: MonadIO m
=> String
-> [String]
-> String
-> SignalConn
-> m Group
createGroup :: forall (m :: * -> *).
MonadIO m =>
String -> [String] -> String -> SignalConn -> m Group
createGroup String
n [String]
ms String
f SignalConn
sc = do
ByteString
gId <- forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"createGroup" [forall a. IsVariant a => a -> Variant
toVariant String
n, forall a. IsVariant a => a -> Variant
toVariant [String]
ms, forall a. IsVariant a => a -> Variant
toVariant String
f] SignalConn
sc
forall (m :: * -> *).
MonadIO m =>
ByteString -> SignalConn -> m Group
getGroup ByteString
gId SignalConn
sc
getGroup :: MonadIO m => ByteString -> SignalConn -> m Group
getGroup :: forall (m :: * -> *).
MonadIO m =>
ByteString -> SignalConn -> m Group
getGroup ByteString
g = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"getGroup" [forall a. IsVariant a => a -> Variant
toVariant ByteString
g]
joinGroup :: MonadIO m => String -> SignalConn -> m ()
joinGroup :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m ()
joinGroup String
l = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"joinGroup" [forall a. IsVariant a => a -> Variant
toVariant String
l]
listGroups :: MonadIO m => SignalConn -> m [(Group, ByteString, String)]
listGroups :: forall (m :: * -> *).
MonadIO m =>
SignalConn -> m [(Group, ByteString, String)]
listGroups = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"listGroups" []
sendGroupMessage :: MonadIO m
=> String
-> [String]
-> Group
-> SignalConn
-> m Timestamp
sendGroupMessage :: forall (m :: * -> *).
MonadIO m =>
String -> [String] -> Group -> SignalConn -> m Timestamp
sendGroupMessage String
m [String]
as Group
g SignalConn
sc = do
ByteString
gId <- forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"Id" Group
g SignalConn
sc
forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendGroupMessage"
[forall a. IsVariant a => a -> Variant
toVariant String
m, forall a. IsVariant a => a -> Variant
toVariant [String]
as, forall a. IsVariant a => a -> Variant
toVariant (ByteString
gId :: ByteString)] SignalConn
sc
sendGroupTyping :: MonadIO m => Group -> Bool -> SignalConn -> m ()
sendGroupTyping :: forall (m :: * -> *).
MonadIO m =>
Group -> Bool -> SignalConn -> m ()
sendGroupTyping Group
g Bool
b SignalConn
sc = do
ByteString
gId <- forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m ByteString
getGroupId Group
g SignalConn
sc
forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"sendGroupTyping" [forall a. IsVariant a => a -> Variant
toVariant ByteString
gId, forall a. IsVariant a => a -> Variant
toVariant Bool
b] SignalConn
sc
sendGroupMessageReaction :: MonadIO m
=> String
-> Bool
-> String
-> Timestamp
-> Group
-> SignalConn
-> m Timestamp
sendGroupMessageReaction :: forall (m :: * -> *).
MonadIO m =>
String
-> Bool
-> String
-> Timestamp
-> Group
-> SignalConn
-> m Timestamp
sendGroupMessageReaction String
emoji Bool
rm String
n Timestamp
ts Group
g SignalConn
sc = do
ByteString
gId <- forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m ByteString
getGroupId Group
g SignalConn
sc
forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendGroupMessageReaction" [forall a. IsVariant a => a -> Variant
toVariant String
emoji, forall a. IsVariant a => a -> Variant
toVariant Bool
rm, forall a. IsVariant a => a -> Variant
toVariant String
n,
forall a. IsVariant a => a -> Variant
toVariant Timestamp
ts, forall a. IsVariant a => a -> Variant
toVariant ByteString
gId] SignalConn
sc
sendGroupRemoteDeleteMessage :: MonadIO m
=> Timestamp
-> Group
-> SignalConn
-> m Timestamp
sendGroupRemoteDeleteMessage :: forall (m :: * -> *).
MonadIO m =>
Timestamp -> Group -> SignalConn -> m Timestamp
sendGroupRemoteDeleteMessage Timestamp
ts Group
g SignalConn
sc = do
ByteString
gId <- forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m ByteString
getGroupId Group
g SignalConn
sc
forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"sendGroupRemoteDeleteMessage" [forall a. IsVariant a => a -> Variant
toVariant Timestamp
ts, forall a. IsVariant a => a -> Variant
toVariant ByteString
gId] SignalConn
sc
addDevice :: MonadIO m => String -> SignalConn -> m ()
addDevice :: forall (m :: * -> *). MonadIO m => String -> SignalConn -> m ()
addDevice String
l = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> SignalConn -> m ()
callSC_ MemberName
"addDevice" [forall a. IsVariant a => a -> Variant
toVariant String
l]
getDevice :: MonadIO m => Int64 -> SignalConn -> m ObjectPath
getDevice :: forall (m :: * -> *).
MonadIO m =>
Int64 -> SignalConn -> m ObjectPath
getDevice Int64
d = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"getDevice" [forall a. IsVariant a => a -> Variant
toVariant Int64
d]
listDevices :: MonadIO m => SignalConn -> m [(ObjectPath, Int64, String)]
listDevices :: forall (m :: * -> *).
MonadIO m =>
SignalConn -> m [(ObjectPath, Int64, String)]
listDevices = forall (m :: * -> *) a.
(MonadIO m, IsVariant a) =>
MemberName -> [Variant] -> SignalConn -> m a
callSC MemberName
"listDevices" []
getGroupId :: MonadIO m => Group -> SignalConn -> m ByteString
getGroupId :: forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m ByteString
getGroupId = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"Id"
getGroupName :: MonadIO m => Group -> SignalConn -> m String
getGroupName :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m String
getGroupName = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"Name"
getGroupDescription :: MonadIO m => Group -> SignalConn -> m String
getGroupDescription :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m String
getGroupDescription = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"Description"
getGroupIsBlocked :: MonadIO m => Group -> SignalConn -> m Bool
getGroupIsBlocked :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m Bool
getGroupIsBlocked = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"IsBlocked"
getGroupIsAdmin :: MonadIO m => Group -> SignalConn -> m Bool
getGroupIsAdmin :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m Bool
getGroupIsAdmin = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"IsAdmin"
getGroupMessageExpirationTimer :: MonadIO m => Group -> SignalConn -> m Int
getGroupMessageExpirationTimer :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m Int
getGroupMessageExpirationTimer Group
g SignalConn
sc = do
Int32
i <- forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"MessageExpirationTimer" Group
g SignalConn
sc
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$! forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int32
i :: Int32)
getGroupMembers :: MonadIO m => Group -> SignalConn -> m [String]
getGroupMembers :: forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m [String]
getGroupMembers = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"Members"
getGroupPendingMembers :: MonadIO m => Group -> SignalConn -> m [String]
getGroupPendingMembers :: forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m [String]
getGroupPendingMembers = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"PendingMembers"
getGroupRequestingMembers :: MonadIO m => Group -> SignalConn -> m [String]
getGroupRequestingMembers :: forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m [String]
getGroupRequestingMembers = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"RequestingMembers"
getGroupAdmins :: MonadIO m => Group -> SignalConn -> m [String]
getGroupAdmins :: forall (m :: * -> *).
MonadIO m =>
Group -> SignalConn -> m [String]
getGroupAdmins = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"Admins"
getGroupPermissionAddMember :: MonadIO m => Group -> SignalConn -> m String
getGroupPermissionAddMember :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m String
getGroupPermissionAddMember = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"PermissionAddMember"
getGroupPermissionEditDetails :: MonadIO m => Group -> SignalConn -> m String
getGroupPermissionEditDetails :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m String
getGroupPermissionEditDetails = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"PermissionEditDetails"
getGroupPermissionSendMessage :: MonadIO m => Group -> SignalConn -> m String
getGroupPermissionSendMessage :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m String
getGroupPermissionSendMessage = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"PermissionSendMessage"
getGroupInviteLink :: MonadIO m => Group -> SignalConn -> m String
getGroupInviteLink :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m String
getGroupInviteLink = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> Group -> SignalConn -> m a
getGroupProp MemberName
"GroupInviteLink"
setGroupName :: MonadIO m => String -> Group -> SignalConn -> m ()
setGroupName :: forall (m :: * -> *).
MonadIO m =>
String -> Group -> SignalConn -> m ()
setGroupName String
s = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"Name" String
s
setGroupDescription :: MonadIO m => String -> Group -> SignalConn -> m ()
setGroupDescription :: forall (m :: * -> *).
MonadIO m =>
String -> Group -> SignalConn -> m ()
setGroupDescription String
s = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"Description" String
s
setGroupAvatar :: MonadIO m => String -> Group -> SignalConn -> m ()
setGroupAvatar :: forall (m :: * -> *).
MonadIO m =>
String -> Group -> SignalConn -> m ()
setGroupAvatar String
s = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"Avatar" String
s
setGroupIsBlocked :: MonadIO m => Bool -> Group -> SignalConn -> m ()
setGroupIsBlocked :: forall (m :: * -> *).
MonadIO m =>
Bool -> Group -> SignalConn -> m ()
setGroupIsBlocked Bool
b = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"IsBlocked" Bool
b
setGroupMessageExpirationTimer :: MonadIO m => Int -> Group -> SignalConn -> m ()
setGroupMessageExpirationTimer :: forall (m :: * -> *).
MonadIO m =>
Int -> Group -> SignalConn -> m ()
setGroupMessageExpirationTimer Int
i = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"MessageExpirationTimer"
forall a b. (a -> b) -> a -> b
$ (forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
i :: Int32)
setGroupPermissionAddMember :: MonadIO m => String -> Group -> SignalConn -> m ()
setGroupPermissionAddMember :: forall (m :: * -> *).
MonadIO m =>
String -> Group -> SignalConn -> m ()
setGroupPermissionAddMember String
s = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"PermissionAddMember" String
s
setGroupPermissionEditDetails :: MonadIO m => String -> Group -> SignalConn -> m ()
setGroupPermissionEditDetails :: forall (m :: * -> *).
MonadIO m =>
String -> Group -> SignalConn -> m ()
setGroupPermissionEditDetails String
s = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"PermissionEditDetails" String
s
setGroupPermissionSendMessage :: MonadIO m => String -> Group -> SignalConn -> m ()
setGroupPermissionSendMessage :: forall (m :: * -> *).
MonadIO m =>
String -> Group -> SignalConn -> m ()
setGroupPermissionSendMessage String
s = forall (m :: * -> *) a.
(MonadIO m, IsValue a) =>
MemberName -> a -> Group -> SignalConn -> m ()
setGroupProp MemberName
"PermissionSendMessage" String
s
groupAddAdmins :: MonadIO m => [String] -> Group -> SignalConn -> m ()
groupAddAdmins :: forall (m :: * -> *).
MonadIO m =>
[String] -> Group -> SignalConn -> m ()
groupAddAdmins [String]
ns = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"addAdmins" [forall a. IsVariant a => a -> Variant
toVariant [String]
ns]
groupAddMembers :: MonadIO m => [String] -> Group -> SignalConn -> m ()
groupAddMembers :: forall (m :: * -> *).
MonadIO m =>
[String] -> Group -> SignalConn -> m ()
groupAddMembers [String]
ns = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"addMembers" [forall a. IsVariant a => a -> Variant
toVariant [String]
ns]
groupDisableLink :: MonadIO m => Group -> SignalConn -> m ()
groupDisableLink :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m ()
groupDisableLink = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"disableLink" []
groupEnableLink :: MonadIO m => Bool -> Group -> SignalConn -> m ()
groupEnableLink :: forall (m :: * -> *).
MonadIO m =>
Bool -> Group -> SignalConn -> m ()
groupEnableLink Bool
b = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"enableLink" [forall a. IsVariant a => a -> Variant
toVariant Bool
b]
groupQuit :: MonadIO m => Group -> SignalConn -> m ()
groupQuit :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m ()
groupQuit = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"quitGroup" []
groupRemoveAdmins :: MonadIO m => [String] -> Group -> SignalConn -> m ()
groupRemoveAdmins :: forall (m :: * -> *).
MonadIO m =>
[String] -> Group -> SignalConn -> m ()
groupRemoveAdmins [String]
ns = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"removeAdmins" [forall a. IsVariant a => a -> Variant
toVariant [String]
ns]
groupRemoveMembers :: MonadIO m => [String] -> Group -> SignalConn -> m ()
groupRemoveMembers :: forall (m :: * -> *).
MonadIO m =>
[String] -> Group -> SignalConn -> m ()
groupRemoveMembers [String]
ns = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"removeMembers" [forall a. IsVariant a => a -> Variant
toVariant [String]
ns]
groupResetLink :: MonadIO m => Group -> SignalConn -> m ()
groupResetLink :: forall (m :: * -> *). MonadIO m => Group -> SignalConn -> m ()
groupResetLink = forall (m :: * -> *).
MonadIO m =>
MemberName -> [Variant] -> Group -> SignalConn -> m ()
callGroup_ MemberName
"resetLink" []