module Galley.API.Public.TeamConversation where
import Galley.API.Teams
import Galley.App
import Wire.API.Routes.API
import Wire.API.Routes.Public.Galley.TeamConversation
teamConversationAPI :: API TeamConversationAPI GalleyEffects
teamConversationAPI :: API TeamConversationAPI GalleyEffects
teamConversationAPI =
forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"get-team-conversation-roles" ServerT
(Summary "Get existing roles available for the given team"
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> ("roles" :> Get '[JSON] ConversationRolesList)))))))
(Sem
(Append
(DeclaredErrorEffects
(Summary "Get existing roles available for the given team"
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> ("roles" :> Get '[JSON] ConversationRolesList))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]))
UserId
-> TeamId
-> Sem
'[ErrorS 'NotATeamMember, BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
ConversationRolesList
forall (r :: EffectRow).
(Member (ErrorS 'NotATeamMember) r, Member TeamStore r) =>
UserId -> TeamId -> Sem r ConversationRolesList
getTeamConversationRoles
API
(Named
"get-team-conversation-roles"
(Summary "Get existing roles available for the given team"
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> ("roles" :> Get '[JSON] ConversationRolesList))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"get-team-conversations"
(Summary "Get team conversations"
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations" :> Get '[JSON] TeamConversationList)))))))
:<|> (Named
"get-team-conversation"
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> Get '[JSON] TeamConversation)))))))))
:<|> Named
"delete-team-conversation"
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty
200 "Conversation deleted"]
())))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
TeamConversationAPI
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
forall api1 (r :: EffectRow) api2.
API api1 r -> API api2 r -> API (api1 :<|> api2) r
<@> forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"get-team-conversations" ServerT
(Summary "Get team conversations"
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations" :> Get '[JSON] TeamConversationList)))))))
(Sem
(Append
(DeclaredErrorEffects
(Summary "Get team conversations"
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations" :> Get '[JSON] TeamConversationList))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]))
UserId
-> TeamId
-> Sem
'[Error (Tagged OperationDenied ()), ErrorS 'NotATeamMember,
BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
TeamConversationList
forall (r :: EffectRow).
(Member (ErrorS 'NotATeamMember) r,
Member (Error (Tagged OperationDenied ())) r,
Member TeamStore r) =>
UserId -> TeamId -> Sem r TeamConversationList
getTeamConversations
API
(Named
"get-team-conversations"
(Summary "Get team conversations"
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations" :> Get '[JSON] TeamConversationList))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"get-team-conversation"
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> Get '[JSON] TeamConversation)))))))))
:<|> Named
"delete-team-conversation"
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty
200 "Conversation deleted"]
()))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"get-team-conversations"
(Summary "Get team conversations"
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations" :> Get '[JSON] TeamConversationList)))))))
:<|> (Named
"get-team-conversation"
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> Get '[JSON] TeamConversation)))))))))
:<|> Named
"delete-team-conversation"
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty
200 "Conversation deleted"]
())))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
forall api1 (r :: EffectRow) api2.
API api1 r -> API api2 r -> API (api1 :<|> api2) r
<@> forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"get-team-conversation" ServerT
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId :> Get '[JSON] TeamConversation)))))))))
(Sem
(Append
(DeclaredErrorEffects
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> Get '[JSON] TeamConversation))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]))
UserId
-> TeamId
-> ConvId
-> Sem
'[ErrorS 'ConvNotFound, Error (Tagged OperationDenied ()),
ErrorS 'NotATeamMember, BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
TeamConversation
forall (r :: EffectRow).
(Member (ErrorS 'ConvNotFound) r,
Member (ErrorS 'NotATeamMember) r,
Member (Error (Tagged OperationDenied ())) r,
Member TeamStore r) =>
UserId -> TeamId -> ConvId -> Sem r TeamConversation
getTeamConversation
API
(Named
"get-team-conversation"
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId :> Get '[JSON] TeamConversation))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"delete-team-conversation"
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty 200 "Conversation deleted"]
()))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"get-team-conversation"
(Summary "Get one team conversation"
:> (CanThrow 'ConvNotFound
:> (CanThrow OperationDenied
:> (CanThrow 'NotATeamMember
:> (ZUser
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> Get '[JSON] TeamConversation)))))))))
:<|> Named
"delete-team-conversation"
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty
200 "Conversation deleted"]
()))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
forall api1 (r :: EffectRow) api2.
API api1 r -> API api2 r -> API (api1 :<|> api2) r
<@> forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"delete-team-conversation" ServerT
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty 200 "Conversation deleted"]
())))))))))))
(Sem
(Append
(DeclaredErrorEffects
(Summary "Remove a team conversation"
:> (CanThrow ('ActionDenied 'DeleteConversation)
:> (CanThrow 'ConvNotFound
:> (CanThrow 'InvalidOperation
:> (CanThrow 'NotATeamMember
:> (ZLocalUser
:> (ZConn
:> ("teams"
:> (Capture "tid" TeamId
:> ("conversations"
:> (Capture "cid" ConvId
:> MultiVerb
'DELETE
'[JSON]
'[RespondEmpty 200 "Conversation deleted"]
()))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]))
Local UserId
-> ConnId
-> TeamId
-> ConvId
-> Sem
'[Error (Tagged ('ActionDenied 'DeleteConversation) ()),
ErrorS 'ConvNotFound, Error (Tagged 'InvalidOperation ()),
ErrorS 'NotATeamMember, BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
()
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
Member CodeStore r, Member ConversationStore r,
Member (Error FederationError) r, Member (ErrorS 'ConvNotFound) r,
Member (Error (Tagged 'InvalidOperation ())) r,
Member (ErrorS 'NotATeamMember) r,
Member (Error (Tagged ('ActionDenied 'DeleteConversation) ())) r,
Member FederatorAccess r, Member MemberStore r,
Member ProposalStore r, Member ExternalAccess r,
Member NotificationSubsystem r, Member (Input UTCTime) r,
Member SubConversationStore r, Member TeamStore r) =>
Local UserId -> ConnId -> TeamId -> ConvId -> Sem r ()
deleteTeamConversation