wire-api-0.1.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Wire.API.Routes.Named

Synopsis

Documentation

newtype Named name x Source #

Constructors

Named 

Fields

Instances

Instances details
RoutesToPaths api => RoutesToPaths (Named name api :: Type) Source # 
Instance details

Defined in Wire.API.Routes.Named

HasLink endpoint => HasLink (Named name endpoint :: Type) Source # 
Instance details

Defined in Wire.API.Routes.Named

Associated Types

type MkLink (Named name endpoint) a Source #

Methods

toLink :: (Link -> a) -> Proxy (Named name endpoint) -> Link -> MkLink (Named name endpoint) a Source #

HasClient m api => HasClient m (Named n api) Source # 
Instance details

Defined in Wire.API.Routes.Named

Associated Types

type Client m (Named n api) Source #

Methods

clientWithRoute :: Proxy m -> Proxy (Named n api) -> Request -> Client m (Named n api) Source #

hoistClientMonad :: Proxy m -> Proxy (Named n api) -> (forall x. mon x -> mon' x) -> Client mon (Named n api) -> Client mon' (Named n api) Source #

(HasOpenApi api, RenderableSymbol name) => HasOpenApi (Named name api :: Type) Source # 
Instance details

Defined in Wire.API.Routes.Named

Methods

toOpenApi :: Proxy (Named name api) -> OpenApi Source #

(RenderableSymbol name, HasFeds rest) => HasFeds (Named name rest :: Type) Source # 
Instance details

Defined in Wire.API.MakesFederatedCall

Methods

getFedCalls :: Proxy (Named name rest) -> State FedCallFrom [FedCallFrom] Source #

HasServer api ctx => HasServer (Named name api :: Type) ctx Source # 
Instance details

Defined in Wire.API.Routes.Named

Associated Types

type ServerT (Named name api) m Source #

Methods

route :: Proxy (Named name api) -> Context ctx -> Delayed env (Server (Named name api)) -> Router env Source #

hoistServerWithContext :: Proxy (Named name api) -> Proxy ctx -> (forall x. m x -> n x) -> ServerT (Named name api) m -> ServerT (Named name api) n Source #

Functor (Named name) Source # 
Instance details

Defined in Wire.API.Routes.Named

Methods

fmap :: (a -> b) -> Named name a -> Named name b #

(<$) :: a -> Named name b -> Named name a #

type SpecialiseToVersion (v :: k1) (Named n api) Source # 
Instance details

Defined in Wire.API.Routes.SpecialiseToVersion

type SpecialiseToVersion (v :: k1) (Named n api) = Named n (SpecialiseToVersion v api)
type Client m (Named n api) Source # 
Instance details

Defined in Wire.API.Routes.Named

type Client m (Named n api) = Client m api
type x ::> (Named name api) Source # 
Instance details

Defined in Wire.API.Routes.Named

type x ::> (Named name api) = Named name (x :> api)
type SpecialiseToVersion v (Named n api) Source # 
Instance details

Defined in Wire.API.Routes.Version

type MkLink (Named name endpoint :: Type) a Source # 
Instance details

Defined in Wire.API.Routes.Named

type MkLink (Named name endpoint :: Type) a = MkLink endpoint a
type ServerT (Named name api :: Type) m Source # 
Instance details

Defined in Wire.API.Routes.Named

type ServerT (Named name api :: Type) m = Named name (ServerT api m)

class RenderableSymbol a where Source #

For HasSwagger instance of Named. KnownSymbol isn't enough because we're using types other than string literals in some places.

Instances

Instances details
KnownSymbol a => RenderableSymbol (a :: Symbol) Source # 
Instance details

Defined in Wire.API.Routes.Named

RenderableSymbol AppLockConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol ClassifiedDomainsConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol ConferenceCallingConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol DigitalSignaturesConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol EnforceFileDownloadLocationConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol ExposeInvitationURLsToTeamAdminConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol FileSharingConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol GuestLinksConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol LegalholdConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol LimitedEventFanoutConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol MLSConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol MlsE2EIdConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol MlsMigrationConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol OutlookCalIntegrationConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol SSOConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol SearchVisibilityAvailableConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol SearchVisibilityInboundConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol SelfDeletingMessagesConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol SndFactorPasswordChallengeConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

RenderableSymbol ValidateSAMLEmailsConfig Source # 
Instance details

Defined in Wire.API.Team.Feature

GRenderableSymbol (Rep a) => RenderableSymbol (RenderableTypeName a :: Type) Source # 
Instance details

Defined in Wire.API.Routes.Named

(RenderableSymbol a, RenderableSymbol b) => RenderableSymbol ('(a, b) :: (k1, k2)) Source # 
Instance details

Defined in Wire.API.Routes.Named

newtype RenderableTypeName a Source #

Constructors

RenderableTypeName a 

Instances

Instances details
GRenderableSymbol (Rep a) => RenderableSymbol (RenderableTypeName a :: Type) Source # 
Instance details

Defined in Wire.API.Routes.Named

class GRenderableSymbol f where Source #

Instances

Instances details
KnownSymbol tyName => GRenderableSymbol (D1 ('MetaData tyName modName pkg b) k2 :: k1 -> Type) Source # 
Instance details

Defined in Wire.API.Routes.Named

type family FindName n (api :: Type) :: (n, Type) where ... Source #

Equations

FindName n (Named name api) = '(name, api) 
FindName n (x :> api) = AddPrefix x (FindName n api) 
FindName n api = '(TypeError ('Text "Named combinator not found"), api) 

type family AddPrefix x napi where ... Source #

Equations

AddPrefix x '(name, api) = '(name, x :> api) 

type family LiftNamed' napi where ... Source #

Equations

LiftNamed' '(name, api) = Named name api 

type family Flatten api where ... Source #

Equations

Flatten (x :> api) = Flatten1 x (Flatten api) 
Flatten api = api 

type family Flatten1 x api where ... Source #

Equations

Flatten1 x (api1 :<|> api2) = Flatten1 x api1 :<|> Flatten1 x api2 
Flatten1 x api = x :> api 

type family LiftFlatNamed n api where ... Source #

Equations

LiftFlatNamed n (api1 :<|> api2) = LiftFlatNamed n api1 :<|> LiftFlatNamed n api2 
LiftFlatNamed n api = LiftNamed' (FindName n api) 

type family MappendMaybe (x :: Maybe k) (y :: Maybe k) :: Maybe k where ... Source #

Equations

MappendMaybe 'Nothing y = y 
MappendMaybe ('Just x) y = 'Just x 

type family FMap (f :: a -> b) (m :: Maybe a) :: Maybe b where ... Source #

Equations

FMap _ 'Nothing = 'Nothing 
FMap f ('Just a) = 'Just (f a) 

type family LookupEndpoint api name :: Maybe Type where ... Source #

Equations

LookupEndpoint (Named name endpoint) name = 'Just endpoint 
LookupEndpoint (api1 :<|> api2) name = MappendMaybe (LookupEndpoint api1 name) (LookupEndpoint api2 name) 
LookupEndpoint (prefix :> api) name = FMap ((:>) prefix) (LookupEndpoint api name) 
LookupEndpoint api name = 'Nothing 

type HasEndpoint api endpoint name = 'Just endpoint ~ LookupEndpoint api name Source #

namedClient :: forall api (name :: Symbol) m endpoint. (HasEndpoint api endpoint name, HasClient m endpoint) => Client m endpoint Source #

Return a client for a named endpoint.

type family x ::> api infixr 4 Source #

Utility to push a Servant combinator inside Named APIs.

For example: @ From 'V5 ::> (Named "foo" (Get '[JSON] Foo) :| Named "bar" (Post '[JSON] Bar)) == Named "foo" (From 'V5 :> Get '[JSON] Foo) :| Named "bar" (From 'V5 :> Post '[JSON] Bar) @

Instances

Instances details
type x ::> (api1 :<|> api2) Source # 
Instance details

Defined in Wire.API.Routes.Named

type x ::> (api1 :<|> api2) = (x ::> api1) :<|> (x ::> api2)
type x ::> (Named name api) Source # 
Instance details

Defined in Wire.API.Routes.Named

type x ::> (Named name api) = Named name (x :> api)