-
Notifications
You must be signed in to change notification settings - Fork 325
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WPB-4928] Stop using Servant client to enqueue federation notificati…
…ons (#3647) * Move a Brig federation endpoint in the API * Move a Brig fed API notif endpoint to a module * Move Galley federation endpoints in the API * Move Galley notification endpoints * A type alias for notification endpoints * Add a changelog * Define Galley notification API via types * Convert a federation notification endpoint to a BackendNotification * Stop using Servant client for 'fedQueueClient'
- Loading branch information
1 parent
80637b8
commit 4b765e5
Showing
18 changed files
with
378 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Reorganise the federation API such that queueing notification endpoints are separate from synchronous endpoints. Also simplify queueing federation notification endpoints. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
56 changes: 56 additions & 0 deletions
56
libs/wire-api-federation/src/Wire/API/Federation/API/Brig/Notifications.hs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
-- This file is part of the Wire Server implementation. | ||
-- | ||
-- Copyright (C) 2023 Wire Swiss GmbH <opensource@wire.com> | ||
-- | ||
-- This program is free software: you can redistribute it and/or modify it under | ||
-- the terms of the GNU Affero General Public License as published by the Free | ||
-- Software Foundation, either version 3 of the License, or (at your option) any | ||
-- later version. | ||
-- | ||
-- This program is distributed in the hope that it will be useful, but WITHOUT | ||
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||
-- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more | ||
-- details. | ||
-- | ||
-- You should have received a copy of the GNU Affero General Public License along | ||
-- with this program. If not, see <https://www.gnu.org/licenses/>. | ||
|
||
module Wire.API.Federation.API.Brig.Notifications where | ||
|
||
import Data.Aeson | ||
import Data.Id | ||
import Data.Range | ||
import Imports | ||
import Wire.API.Federation.Component | ||
import Wire.API.Federation.Endpoint | ||
import Wire.API.Federation.HasNotificationEndpoint | ||
import Wire.API.Util.Aeson | ||
import Wire.Arbitrary | ||
|
||
type UserDeletedNotificationMaxConnections = 1000 | ||
|
||
data UserDeletedConnectionsNotification = UserDeletedConnectionsNotification | ||
{ -- | This is qualified implicitly by the origin domain | ||
user :: UserId, | ||
-- | These are qualified implicitly by the target domain | ||
connections :: Range 1 UserDeletedNotificationMaxConnections [UserId] | ||
} | ||
deriving stock (Eq, Show, Generic) | ||
deriving (Arbitrary) via (GenericUniform UserDeletedConnectionsNotification) | ||
deriving (FromJSON, ToJSON) via (CustomEncoded UserDeletedConnectionsNotification) | ||
|
||
data BrigNotificationTag = OnUserDeletedConnectionsTag | ||
deriving (Show, Eq, Generic, Bounded, Enum) | ||
|
||
instance HasNotificationEndpoint 'OnUserDeletedConnectionsTag where | ||
type Payload 'OnUserDeletedConnectionsTag = UserDeletedConnectionsNotification | ||
type NotificationPath 'OnUserDeletedConnectionsTag = "on-user-deleted-connections" | ||
type NotificationComponent 'OnUserDeletedConnectionsTag = 'Brig | ||
type | ||
NotificationAPI 'OnUserDeletedConnectionsTag 'Brig = | ||
NotificationFedEndpoint 'OnUserDeletedConnectionsTag | ||
|
||
-- | All the notification endpoints return an 'EmptyResponse'. | ||
type BrigNotificationAPI = | ||
-- FUTUREWORK: Use NotificationAPI 'OnUserDeletedConnectionsTag 'Brig instead | ||
NotificationFedEndpoint 'OnUserDeletedConnectionsTag |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.