Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/5-internal/galley-servant-split
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Split galley API routes and handler definitions into several modules
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import Wire.API.Error.Galley
import Wire.API.Federation.API.Common
import Wire.API.Federation.Endpoint
import Wire.API.Message
import Wire.API.Routes.Public.Galley
import Wire.API.Routes.Public.Galley.Messaging
import Wire.API.Util.Aeson (CustomEncoded (..))
import Wire.Arbitrary (Arbitrary, GenericUniform (..))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import GHC.Exts (IsList (fromList))
import Imports
import Wire.API.Federation.API.Galley (MessageSendResponse (..))
import Wire.API.Message
import Wire.API.Routes.Public.Galley
import Wire.API.Routes.Public.Galley.Messaging
import Wire.API.User.Client (QualifiedUserClients (..))

missing :: QualifiedUserClients
Expand Down
10 changes: 9 additions & 1 deletion libs/wire-api/src/Wire/API/Conversation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,9 @@ import Data.List.Extra (disjointOrd)
import Data.List.NonEmpty (NonEmpty)
import Data.List1
import Data.Misc
import Data.Proxy (Proxy (Proxy))
import Data.Qualified (Qualified (qUnqualified), deprecatedSchema)
import Data.Range (Range, fromRange, rangedSchema)
import Data.SOP
import Data.Schema
import qualified Data.Set as Set
import Data.String.Conversions (cs)
Expand All @@ -121,6 +121,7 @@ import Wire.API.Conversation.Protocol
import Wire.API.Conversation.Role (RoleName, roleNameWireAdmin)
import Wire.API.MLS.Group
import Wire.API.Routes.MultiTablePaging
import Wire.API.Routes.MultiVerb
import Wire.Arbitrary

--------------------------------------------------------------------------------
Expand Down Expand Up @@ -949,3 +950,10 @@ namespaceMLSSelfConv :: UUID.UUID
namespaceMLSSelfConv =
-- a V5 uuid created with the nil namespace
fromJust . UUID.fromString $ "3eac2a2c-3850-510b-bd08-8a98e80dd4d9"

--------------------------------------------------------------------------------
-- MultiVerb instances

instance AsHeaders '[ConvId] Conversation Conversation where
toHeaders c = (I (qUnqualified (cnvQualifiedId c)) :* Nil, c)
fromHeaders = snd
16 changes: 16 additions & 0 deletions libs/wire-api/src/Wire/API/Event/Conversation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ import qualified Data.Aeson.KeyMap as KeyMap
import Data.Id
import Data.Json.Util
import Data.Qualified
import Data.SOP
import Data.Schema
import qualified Data.Swagger as S
import Data.Time
Expand All @@ -83,6 +84,7 @@ import Wire.API.Conversation
import Wire.API.Conversation.Code (ConversationCode (..))
import Wire.API.Conversation.Role
import Wire.API.Conversation.Typing (TypingData (..))
import Wire.API.Routes.MultiVerb
import Wire.API.User (QualifiedUserIdList (..))
import Wire.Arbitrary (Arbitrary (arbitrary), GenericUniform (..))

Expand Down Expand Up @@ -413,3 +415,17 @@ instance ToJSON Event where

instance S.ToSchema Event where
declareNamedSchema = schemaToSwagger

--------------------------------------------------------------------------------
-- MultiVerb instances

instance
(ResponseType r1 ~ ConversationCode, ResponseType r2 ~ Event) =>
AsUnion '[r1, r2] AddCodeResult
where
toUnion (CodeAlreadyExisted c) = Z (I c)
toUnion (CodeAdded e) = S (Z (I e))

fromUnion (Z (I c)) = CodeAlreadyExisted c
fromUnion (S (Z (I e))) = CodeAdded e
fromUnion (S (S x)) = case x of {}
Loading