-- | Description: Account management with Servant and Polysemy
module Polysemy.Account.Api (
-- * Effects
Jwt,
key,
settings,
makeToken,
GenJwk,
genJwk,
Authorize (Authorize),
AuthorizeP,
authorize,
-- * Interpreters
interpretJwt,
interpretJwtDb,
interpretJwtPersistent,
interpretJwtState,
interpretGenJwk,
interpretAuthorizeWith,
interpretAuthorizeP,
interpretAccountsDb,
interpretAccountStore,
interpretAccountAuthStore,
interpretAccountTable,
interpretAccountAuthTable,
-- * Servant
Authed,
AccountApi,
AuthApi,
accountServer,
authServer,
AuthedP,
AccountApiP,
AuthApiP,
runServerJwt,
runServerJwtWith,
runServerSem,
ServerReady (ServerReady),
authorizeEndpoint,
AuthEndpointParam (..),
accountOnly,
accountOnly_,
accountOnly1,
accountOnly1_,
accountOnly2,
accountOnly2_,
adminOnly,
adminOnly_,
adminOnly1,
adminOnly1_,
adminOnly2,
adminOnly2_,
) where
import Polysemy.Account.Api.Effect.Authorize (Authorize (Authorize), AuthorizeP, authorize)
import Polysemy.Account.Api.Effect.Jwt (GenJwk, Jwt, genJwk, key, makeToken, settings)
import Polysemy.Account.Api.Interpreter.Accounts (
interpretAccountAuthStore,
interpretAccountAuthTable,
interpretAccountStore,
interpretAccountTable,
interpretAccountsDb,
)
import Polysemy.Account.Api.Interpreter.Authorize (interpretAuthorizeP, interpretAuthorizeWith)
import Polysemy.Account.Api.Interpreter.Jwt (
interpretGenJwk,
interpretJwt,
interpretJwtDb,
interpretJwtPersistent,
interpretJwtState,
)
import Polysemy.Account.Api.Native (runServerJwt, runServerJwtWith)
import Polysemy.Account.Api.NativeContext (ServerReady (ServerReady), runServerSem)
import Polysemy.Account.Api.Routes (AccountApi, AccountApiP, AuthApi, AuthApiP)
import Polysemy.Account.Api.Server.Account (accountServer)
import Polysemy.Account.Api.Server.Auth (authServer)
import Polysemy.Account.Api.Server.AuthEndpoint (
AuthEndpointParam (..),
accountOnly,
accountOnly1,
accountOnly1_,
accountOnly2,
accountOnly2_,
accountOnly_,
adminOnly,
adminOnly1,
adminOnly1_,
adminOnly2,
adminOnly2_,
adminOnly_,
authorizeEndpoint,
)
import Polysemy.Account.Data.Authed (Authed, AuthedP)