move auth out of dbapi, use middleware, put in main

This commit is contained in:
Adam C. Baker
2014-10-13 16:52:14 -07:00
parent fff84cca90
commit f81ca8bf0b
2 changed files with 16 additions and 49 deletions
+3 -7
View File
@@ -1,10 +1,8 @@
{-# LANGUAGE OverloadedStrings #-}
-- {{{ Imports
module Main where
import Dbapi
import Middleware (inTransaction)
import Middleware (inTransaction, authenticated, withSavepoint, clientErrors)
import Network.Wai.Handler.Warp hiding (Connection)
import Database.HDBC.PostgreSQL (connectPostgreSQL')
import Data.String.Conversions (cs)
@@ -15,8 +13,6 @@ import Network.Wai.Handler.WarpTLS (tlsSettings, runTLS)
import Network.Wai.Middleware.Gzip (gzip, def)
import Network.Wai.Middleware.Cors (cors)
-- }}}
argParser :: Parser AppConfig
argParser = AppConfig
<$> strOption (long "db" <> short 'd' <> metavar "URI"
@@ -41,8 +37,8 @@ main = do
Prelude.putStrLn $ "Listening on port " ++ (show $ configPort conf :: String)
conn <- connectPostgreSQL' dburi
runTLS tls settings . gzip def . cors corsPolicy $
inTransaction (app (cs $ configAnonRole conf)) conn
runTLS tls settings . gzip def . cors corsPolicy . clientErrors $ (
inTransaction . authenticated (cs $ configAnonRole conf) . withSavepoint) app conn
where
describe = progDesc "create a REST API to an existing Postgres database"