{-# LANGUAGE DataKinds #-} module Admin.Component.Managed ( ManagedAPI , ManagedComponent , managed , serveManaged , module Managed ) where import Admin.Components import Data.Version (makeVersion) import Managed import Managed.Connectors.HTTPConnector import Servant type ManagedAPI = HTTPConnectorAPI type ManagedComponent = Component "managed" ManagedAPI managed :: Agent SR -> ManagedComponent managed :: Agent SR -> ManagedComponent managed Agent SR agent = Component :: forall (name :: Symbol) api. Server api -> Version -> Component name api Component {server :: Server ManagedAPI server = Agent SR -> Server ManagedAPI serveManaged Agent SR agent, version :: Version version = [Int] -> Version makeVersion [Int 1]} serveManaged :: Agent SR -> Server ManagedAPI serveManaged :: Agent SR -> Server ManagedAPI serveManaged = Agent SR -> Server ManagedAPI httpConnectorServer