simplex-chat-6.5.0.7
Safe HaskellNone
LanguageHaskell2010

Simplex.Chat.Store.Groups

Synopsis

Util methods

type GroupInfoRow = (Int64, GroupName, GroupName, Text, Maybe Text, Text, Maybe Text, Maybe ImageData) :. ((Maybe MsgFilter, Maybe BoolInt, BoolInt, Maybe GroupPreferences, Maybe GroupMemberAdmission) :. ((UTCTime, UTCTime, Maybe UTCTime, Maybe UTCTime) :. (PreparedGroupRow :. (BusinessChatInfoRow :. ((Maybe UIThemeEntityOverrides, Int64, Maybe CustomData, Maybe Int64, Int, Maybe ConnReqContact) :. GroupMemberRow))))) Source #

type GroupMemberRow = (GroupMemberId, GroupId, Int64, MemberId, VersionChat, VersionChat, GroupMemberRole, GroupMemberCategory, GroupMemberStatus, BoolInt, Maybe MemberRestrictionStatus) :. ((Maybe Int64, Maybe GroupMemberId, ContactName, Maybe ContactId, ProfileId) :. (ProfileRow :. ((UTCTime, UTCTime) :. (Maybe UTCTime, Int64, Int64, Int64, Maybe UTCTime)))) Source #

type MaybeGroupMemberRow = (Maybe GroupMemberId, Maybe GroupId, Maybe Int64, Maybe MemberId, Maybe VersionChat, Maybe VersionChat, Maybe GroupMemberRole, Maybe GroupMemberCategory, Maybe GroupMemberStatus, Maybe BoolInt, Maybe MemberRestrictionStatus) :. ((Maybe Int64, Maybe GroupMemberId, Maybe ContactName, Maybe ContactId, Maybe ProfileId) :. ((Maybe ProfileId, Maybe ContactName, Maybe Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType, Maybe LocalAlias, Maybe Preferences) :. ((Maybe UTCTime, Maybe UTCTime) :. (Maybe UTCTime, Maybe Int64, Maybe Int64, Maybe Int64, Maybe UTCTime)))) Source #

Group functions

createGroupLink :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> ConnId -> CreatedLinkContact -> GroupLinkId -> GroupMemberRole -> SubscriptionMode -> ExceptT StoreError IO GroupLink Source #

deleteGroupLink :: Connection -> User -> GroupInfo -> IO () Source #

getGroupLink :: Connection -> User -> GroupInfo -> ExceptT StoreError IO GroupLink Source #

getGroupLinkId :: Connection -> User -> GroupInfo -> IO (Maybe GroupLinkId) Source #

createNewGroup :: Connection -> VersionRangeChat -> TVar ChaChaDRG -> User -> GroupProfile -> Maybe Profile -> ExceptT StoreError IO GroupInfo Source #

creates completely new group with a single member - the current user

createGroupInvitation :: Connection -> VersionRangeChat -> User -> Contact -> GroupInvitation -> Maybe ProfileId -> ExceptT StoreError IO (GroupInfo, GroupMemberId) Source #

creates a new group record for the group the current user was invited to, or returns an existing one

deleteContactCardKeepConn :: Connection -> Int64 -> Contact -> IO () Source #

getGroup :: Connection -> VersionRangeChat -> User -> GroupId -> ExceptT StoreError IO Group Source #

getGroupInfo :: Connection -> VersionRangeChat -> User -> Int64 -> ExceptT StoreError IO GroupInfo Source #

getGroupIdByName :: Connection -> User -> GroupName -> ExceptT StoreError IO GroupId Source #

getGroupMemberByIndex :: Connection -> VersionRangeChat -> User -> GroupInfo -> Int64 -> ExceptT StoreError IO GroupMember Source #

getGroupMembersByIndexes :: Connection -> VersionRangeChat -> User -> GroupInfo -> [Int64] -> IO [GroupMember] Source #

getGroupCurrentMembersCount :: Connection -> User -> GroupInfo -> IO Int Source #

deleteGroupChatItems :: Connection -> User -> GroupInfo -> IO () Source #

deleteGroupMembers :: Connection -> User -> GroupInfo -> IO () Source #

cleanupHostGroupLinkConn :: Connection -> User -> GroupInfo -> IO () Source #

deleteGroup :: Connection -> User -> GroupInfo -> IO () Source #

getBaseGroupDetails :: Connection -> VersionRangeChat -> User -> Maybe ContactId -> Maybe Text -> IO [GroupInfo] Source #

createNewContactMember :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> Contact -> GroupMemberRole -> ConnId -> ConnReqInvitation -> SubscriptionMode -> ExceptT StoreError IO GroupMember Source #

createNewContactMemberAsync :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> Contact -> GroupMemberRole -> (CommandId, ConnId) -> VersionChat -> VersionRangeChat -> SubscriptionMode -> ExceptT StoreError IO () Source #

createJoiningMember :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> VersionRangeChat -> Profile -> Maybe XContactId -> Maybe SharedMsgId -> GroupMemberRole -> GroupMemberStatus -> ExceptT StoreError IO (GroupMemberId, MemberId) Source #

getMemberJoinRequest :: Connection -> User -> GroupInfo -> GroupMember -> IO (Maybe (Maybe XContactId, Maybe SharedMsgId)) Source #

createJoiningMemberConnection :: Connection -> User -> Int64 -> (CommandId, ConnId) -> VersionChat -> VersionRangeChat -> GroupMemberId -> SubscriptionMode -> IO () Source #

createBusinessRequestGroup :: Connection -> VersionRangeChat -> TVar ChaChaDRG -> User -> VersionRangeChat -> Profile -> Int64 -> Text -> GroupPreferences -> ExceptT StoreError IO (GroupInfo, GroupMember) Source #

getMemberInvitation :: Connection -> User -> Int64 -> IO (Maybe ConnReqInvitation) Source #

createMemberConnection :: Connection -> UserId -> GroupMember -> ConnId -> VersionChat -> VersionRangeChat -> SubscriptionMode -> IO Connection Source #

createMemberConnectionAsync :: Connection -> User -> GroupMemberId -> (CommandId, ConnId) -> VersionChat -> VersionRangeChat -> SubscriptionMode -> IO () Source #

updateGroupMemberStatus :: Connection -> UserId -> GroupMember -> GroupMemberStatus -> IO () Source #

updateGroupMemberStatusById :: Connection -> UserId -> GroupMemberId -> GroupMemberStatus -> IO () Source #

createNewGroupMember :: Connection -> User -> GroupInfo -> GroupMember -> MemberInfo -> GroupMemberCategory -> GroupMemberStatus -> ExceptT StoreError IO GroupMember Source #

add new member with profile

checkGroupMemberHasItems :: Connection -> User -> GroupMember -> IO (Maybe ChatItemId) Source #

deleteGroupMember :: Connection -> User -> GroupMember -> IO () Source #

deleteGroupMemberConnection :: Connection -> User -> GroupMember -> IO () Source #

getMemberRelationsVector :: Connection -> GroupMember -> ExceptT StoreError IO ByteString Source #

createIntroReMember :: Connection -> User -> GroupInfo -> GroupMember -> VersionChat -> MemberInfo -> Maybe MemberRestrictions -> (CommandId, ConnId) -> SubscriptionMode -> ExceptT StoreError IO GroupMember Source #

createIntroToMemberContact :: Connection -> User -> GroupMember -> GroupMember -> VersionChat -> VersionRangeChat -> (CommandId, ConnId) -> Maybe (CommandId, ConnId) -> Maybe ProfileId -> SubscriptionMode -> IO () Source #

createSentProbe :: Connection -> TVar ChaChaDRG -> UserId -> ContactOrMember -> ExceptT StoreError IO (Probe, Int64) Source #

createSentProbeHash :: Connection -> UserId -> Int64 -> ContactOrMember -> IO () Source #

deleteOldProbes :: Connection -> UTCTime -> IO () Source #

updateGroupSettings :: Connection -> User -> Int64 -> ChatSettings -> IO () Source #

getHostConnId :: Connection -> User -> GroupId -> ExceptT StoreError IO GroupMemberId Source #

createMemberContact :: Connection -> User -> ConnId -> ConnReqInvitation -> GroupInfo -> GroupMember -> Connection -> SubscriptionMode -> IO Contact Source #

setContactGrpInvSent :: Connection -> Contact -> Bool -> IO () Source #

createMemberContactConn :: Connection -> User -> ConnId -> Maybe CommandId -> GroupInfo -> Connection -> ConnStatus -> ContactId -> SubscriptionMode -> IO Int64 Source #

getXGrpLinkMemReceived :: Connection -> GroupMemberId -> ExceptT StoreError IO Bool Source #

setXGrpLinkMemReceived :: Connection -> GroupMemberId -> Bool -> IO () Source #

updateUserMemberProfileSentAt :: Connection -> User -> GroupInfo -> UTCTime -> IO () Source #

setGroupCustomData :: Connection -> User -> GroupInfo -> Maybe CustomData -> IO () Source #

setGroupUIThemes :: Connection -> User -> GroupInfo -> Maybe UIThemeEntityOverrides -> IO () Source #

updateGroupChatTags :: Connection -> GroupId -> [ChatTagId] -> IO () Source #

getGroupChatTags :: Connection -> GroupId -> IO [ChatTagId] Source #

setGroupChatTTL :: Connection -> GroupId -> Maybe Int64 -> IO () Source #

getGroupChatTTL :: Connection -> GroupId -> IO (Maybe Int64) Source #

getUserGroupsToExpire :: Connection -> User -> Int64 -> IO [GroupId] Source #

updateGroupAlias :: Connection -> UserId -> GroupInfo -> LocalAlias -> IO GroupInfo Source #