aboutsummaryrefslogtreecommitdiff
path: root/server/src/Thermoprint/Server
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-01-23 11:42:45 +0000
committerGregor Kleen <gkleen@yggdrasil.li>2016-01-23 11:42:45 +0000
commit6348b2fb57b291b925ce27e9070eecc10d560608 (patch)
tree227654643df6d2f9f75b65f72a097aed6343f1a7 /server/src/Thermoprint/Server
parentd776f630c6bf60a14e496694bcb502e93f215a41 (diff)
downloadthermoprint-6348b2fb57b291b925ce27e9070eecc10d560608.tar
thermoprint-6348b2fb57b291b925ce27e9070eecc10d560608.tar.gz
thermoprint-6348b2fb57b291b925ce27e9070eecc10d560608.tar.bz2
thermoprint-6348b2fb57b291b925ce27e9070eecc10d560608.tar.xz
thermoprint-6348b2fb57b291b925ce27e9070eecc10d560608.zip
additional documentation
Diffstat (limited to 'server/src/Thermoprint/Server')
-rw-r--r--server/src/Thermoprint/Server/API.hs7
1 files changed, 6 insertions, 1 deletions
diff --git a/server/src/Thermoprint/Server/API.hs b/server/src/Thermoprint/Server/API.hs
index 9559ad1..e147ac3 100644
--- a/server/src/Thermoprint/Server/API.hs
+++ b/server/src/Thermoprint/Server/API.hs
@@ -36,12 +36,16 @@ import Database.Persist.Sql
36type ProtoHandler = ReaderT HandlerInput (LoggingT IO) 36type ProtoHandler = ReaderT HandlerInput (LoggingT IO)
37type Handler = EitherT ServantErr ProtoHandler 37type Handler = EitherT ServantErr ProtoHandler
38 38
39data HandlerInput = HandlerInput { sqlPool :: ConnectionPool 39-- ^ Runtime configuration of our handlers
40data HandlerInput = HandlerInput { sqlPool :: ConnectionPool -- ^ How to interact with 'persistent' storage
40 } 41 }
41 42
42handlerNat :: ( MonadReader ConnectionPool m 43handlerNat :: ( MonadReader ConnectionPool m
43 , MonadLoggerIO m 44 , MonadLoggerIO m
44 ) => m (Handler :~> EitherT ServantErr IO) 45 ) => m (Handler :~> EitherT ServantErr IO)
46-- ^ Servant requires its handlers to be 'EitherT ServantErr IO'
47--
48-- This generates a 'Nat'ural transformation for squashing the monad-transformer-stack we use in our handlers to the monad 'servant-server' wants
45handlerNat = do 49handlerNat = do
46 sqlPool <- ask 50 sqlPool <- ask
47 logFunc <- askLoggerIO 51 logFunc <- askLoggerIO
@@ -54,6 +58,7 @@ handlerNat = do
54 return $ hoistNat protoNat 58 return $ hoistNat protoNat
55 59
56thermoprintServer :: ServerT ThermoprintAPI Handler 60thermoprintServer :: ServerT ThermoprintAPI Handler
61-- ^ A 'servant-server' for 'ThermoprintAPI'
57thermoprintServer = listPrinters 62thermoprintServer = listPrinters
58 :<|> (listJobs :<|> queueJob) 63 :<|> (listJobs :<|> queueJob)
59 :<|> getJob <||> jobStatus <||> deleteJob 64 :<|> getJob <||> jobStatus <||> deleteJob