module Wire.API.Federation.API.Util where
import Imports
import Wire.API.Federation.API.Galley.Notifications
import Wire.API.Federation.BackendNotifications
import Wire.API.Federation.Component
makeConversationUpdateBundle ::
ConversationUpdate ->
FedQueueClient 'Galley (PayloadBundle 'Galley)
makeConversationUpdateBundle :: ConversationUpdate
-> FedQueueClient 'Galley (PayloadBundle 'Galley)
makeConversationUpdateBundle ConversationUpdate
update =
PayloadBundle 'Galley
-> PayloadBundle 'Galley -> PayloadBundle 'Galley
forall a. Semigroup a => a -> a -> a
(<>) (PayloadBundle 'Galley
-> PayloadBundle 'Galley -> PayloadBundle 'Galley)
-> FedQueueClient 'Galley (PayloadBundle 'Galley)
-> FedQueueClient
'Galley (PayloadBundle 'Galley -> PayloadBundle 'Galley)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Payload 'OnConversationUpdatedTag
-> FedQueueClient 'Galley (PayloadBundle 'Galley)
forall {k} (tag :: k) (c :: Component).
(HasFedPath tag, HasVersionRange tag,
KnownComponent (NotificationComponent k), ToJSON (Payload tag),
c ~ NotificationComponent k) =>
Payload tag -> FedQueueClient c (PayloadBundle c)
makeBundle Payload 'OnConversationUpdatedTag
ConversationUpdate
update FedQueueClient
'Galley (PayloadBundle 'Galley -> PayloadBundle 'Galley)
-> FedQueueClient 'Galley (PayloadBundle 'Galley)
-> FedQueueClient 'Galley (PayloadBundle 'Galley)
forall a b.
FedQueueClient 'Galley (a -> b)
-> FedQueueClient 'Galley a -> FedQueueClient 'Galley b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Payload 'OnConversationUpdatedTagV0
-> FedQueueClient 'Galley (PayloadBundle 'Galley)
forall {k} (tag :: k) (c :: Component).
(HasFedPath tag, HasVersionRange tag,
KnownComponent (NotificationComponent k), ToJSON (Payload tag),
c ~ NotificationComponent k) =>
Payload tag -> FedQueueClient c (PayloadBundle c)
makeBundle (ConversationUpdate -> ConversationUpdateV0
conversationUpdateToV0 ConversationUpdate
update)