hscim-0.3.6: hscim json schema and server implementation
Safe HaskellNone
LanguageHaskell2010

Web.Scim.Server

Synopsis

WAI application

app :: forall tag m. App tag m (SiteAPI tag) => Configuration -> (forall a. ScimHandler m a -> Handler a) -> Application Source #

mkapp :: forall tag m api. App tag m api => Proxy api -> ServerT api (ScimHandler m) -> (forall a. ScimHandler m a -> Handler a) -> Application Source #

type App tag m api = (DB tag m, Show (GroupId tag), HasServer api '[]) Source #

API tree

type SiteAPI tag = ToServantApi (Site tag) Source #

data Site tag route Source #

Constructors

Site 

Fields

Instances

Instances details
Generic (Site tag route) Source # 
Instance details

Defined in Web.Scim.Server

Associated Types

type Rep (Site tag route) :: Type -> Type #

Methods

from :: Site tag route -> Rep (Site tag route) x #

to :: Rep (Site tag route) x -> Site tag route #

type Rep (Site tag route) Source # 
Instance details

Defined in Web.Scim.Server

type Rep (Site tag route) = D1 ('MetaData "Site" "Web.Scim.Server" "hscim-0.3.6-JBBH5QJtoVCBhDdsGW2kZ7" 'False) (C1 ('MetaCons "Site" 'PrefixI 'True) (S1 ('MetaSel ('Just "config") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (route :- ConfigAPI)) :*: (S1 ('MetaSel ('Just "users") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (route :- (Header "Authorization" (AuthData tag) :> ("Users" :> UserAPI tag)))) :*: S1 ('MetaSel ('Just "groups") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (route :- (Header "Authorization" (AuthData tag) :> ("Groups" :> GroupAPI tag)))))))

siteServer :: forall tag m. (DB tag m, Show (GroupId tag)) => Configuration -> Site tag (AsServerT (ScimHandler m)) Source #

API subtrees, useful for tests

userServer :: forall tag m. (AuthDB tag m, UserDB tag m) => Maybe (AuthData tag) -> UserSite tag (AsServerT (ScimHandler m)) Source #

groupServer :: forall tag m. (Show (GroupId tag), GroupDB tag m) => Maybe (AuthData tag) -> GroupSite tag (AsServerT (ScimHandler m)) Source #