about summary refs log tree commit diff
path: root/src/App.hs
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-07-30T12·58+0100
committerWilliam Carroll <wpcarro@gmail.com>2020-07-30T12·58+0100
commitb6e8389edd486d407025383825a1beaf6b7f63b7 (patch)
treeb38c6fd1231bce0548be7557f2e509cea84b66c1 /src/App.hs
parent385164c6afea7995b797cf8ddddefa187c26f646 (diff)
Read env variables using envy library
Using my dear friend's, dmjio's, excellent library, envy -- to read and parse
variables from the system environment.

I added and git-ignored the .envrc file that contains API secrets. I'm using
Envy to read these values, so that I don't hard-code these values into the
source code.
Diffstat (limited to 'src/App.hs')
-rw-r--r--src/App.hs24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/App.hs b/src/App.hs
index 708dd896fab2..7536e3c771e1 100644
--- a/src/App.hs
+++ b/src/App.hs
@@ -37,15 +37,15 @@ err429 = ServerError
   , errHeaders = []
   }
 
-server :: FilePath -> Server API
-server dbFile = createAccount
-           :<|> deleteAccount
-           :<|> listAccounts
-           :<|> createTrip
-           :<|> deleteTrip
-           :<|> listTrips
-           :<|> login
-           :<|> logout
+server :: T.Config -> Server API
+server T.Config{..} = createAccount
+                 :<|> deleteAccount
+                 :<|> listAccounts
+                 :<|> createTrip
+                 :<|> deleteTrip
+                 :<|> listTrips
+                 :<|> login
+                 :<|> logout
   where
     -- Admit Admins + whatever the predicate `p` passes.
     adminsAnd cookie p = Auth.assert dbFile cookie (\acct@T.Account{..} -> accountRole == T.Admin || p acct)
@@ -124,6 +124,6 @@ server dbFile = createAccount
           liftIO $ Sessions.delete dbFile uuid
           pure $ addHeader Auth.emptyCookie NoContent
 
-run :: FilePath -> IO ()
-run dbFile =
-  Warp.run 3000 (serve (Proxy @ API) $ server dbFile)
+run :: T.Config -> IO ()
+run config =
+  Warp.run 3000 (serve (Proxy @ API) $ server config)