Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- createAndSendRemoveProposals :: forall r t. (Member (Error FederationError) r, Member (Input UTCTime) r, Member TinyLog r, Member BackendNotificationQueueAccess r, Member ExternalAccess r, Member NotificationSubsystem r, Member ProposalStore r, Member (Input Env) r, Member Random r, Foldable t) => Local ConvOrSubConv -> t LeafIndex -> Qualified UserId -> ClientMap -> Sem r ()
- removeExtraneousClients :: (Member BackendNotificationQueueAccess r, Member (Error FederationError) r, Member ExternalAccess r, Member NotificationSubsystem r, Member (Input Env) r, Member (Input UTCTime) r, Member MemberStore r, Member ProposalStore r, Member Random r, Member SubConversationStore r, Member TinyLog r) => Qualified UserId -> Local Conversation -> Sem r ()
- removeClient :: (Member BackendNotificationQueueAccess r, Member (Error FederationError) r, Member ExternalAccess r, Member NotificationSubsystem r, Member (Input Env) r, Member (Input UTCTime) r, Member MemberStore r, Member ProposalStore r, Member Random r, Member SubConversationStore r, Member TinyLog r) => Local Conversation -> Qualified UserId -> ClientId -> Sem r ()
- data RemoveUserIncludeMain
- removeUser :: (Member BackendNotificationQueueAccess r, Member (Error FederationError) r, Member ExternalAccess r, Member NotificationSubsystem r, Member (Input Env) r, Member (Input UTCTime) r, Member MemberStore r, Member ProposalStore r, Member Random r, Member SubConversationStore r, Member TinyLog r) => Local Conversation -> RemoveUserIncludeMain -> Qualified UserId -> Sem r ()
Documentation
createAndSendRemoveProposals Source #
:: forall r t. (Member (Error FederationError) r, Member (Input UTCTime) r, Member TinyLog r, Member BackendNotificationQueueAccess r, Member ExternalAccess r, Member NotificationSubsystem r, Member ProposalStore r, Member (Input Env) r, Member Random r, Foldable t) | |
=> Local ConvOrSubConv | |
-> t LeafIndex | |
-> Qualified UserId | |
-> ClientMap | The client map that has all the recipients of the message. This is an argument, and not constructed within the function, because of a special case of subconversations where everyone but the subconversation leaver client should get the remove proposal message; in this case the recipients are a strict subset of all the clients represented by the in-memory conversation/subconversation client maps. |
-> Sem r () |
Send remove proposals for a set of clients to clients in the ClientMap.
removeExtraneousClients :: (Member BackendNotificationQueueAccess r, Member (Error FederationError) r, Member ExternalAccess r, Member NotificationSubsystem r, Member (Input Env) r, Member (Input UTCTime) r, Member MemberStore r, Member ProposalStore r, Member Random r, Member SubConversationStore r, Member TinyLog r) => Qualified UserId -> Local Conversation -> Sem r () Source #
Send remove proposals for clients of users that are not part of a conversation
removeClient :: (Member BackendNotificationQueueAccess r, Member (Error FederationError) r, Member ExternalAccess r, Member NotificationSubsystem r, Member (Input Env) r, Member (Input UTCTime) r, Member MemberStore r, Member ProposalStore r, Member Random r, Member SubConversationStore r, Member TinyLog r) => Local Conversation -> Qualified UserId -> ClientId -> Sem r () Source #
Send remove proposals for a single client of a user to the local conversation.
data RemoveUserIncludeMain Source #
A flag to determine whether removeUser
should operate on the parent
conversation as well as all the subconversations.
RemoveUserIncludeMain | Remove user clients from all subconversations, including the parent. |
RemoveUserExcludeMain | Remove user clients from all subconversations, but not the parent. This can be used when the clients are already in the process of being removed from the main conversation, for example as a result of a commit containing a remove proposal. |
removeUser :: (Member BackendNotificationQueueAccess r, Member (Error FederationError) r, Member ExternalAccess r, Member NotificationSubsystem r, Member (Input Env) r, Member (Input UTCTime) r, Member MemberStore r, Member ProposalStore r, Member Random r, Member SubConversationStore r, Member TinyLog r) => Local Conversation -> RemoveUserIncludeMain -> Qualified UserId -> Sem r () Source #
Send remove proposals for all clients of the user to the local conversation.