oauth2-mock-server/app/Main.hs
2024-01-19 01:07:08 +00:00

29 lines
885 B
Haskell

-- SPDX-FileCopyrightText: 2024 UniWorX Systems
-- SPDX-FileContributor: David Mosbach <david.mosbach@uniworx.de>
--
-- SPDX-License-Identifier: AGPL-3.0-or-later
{-# Language TypeApplications #-}
module Main (main) where
import UniWorX
import Server
import Control.Applicative ((<|>))
import Database.Persist (Entity(..))
import System.Environment (lookupEnv)
import qualified Data.Map as M
import qualified Data.Text as T
main :: IO ()
main = do
port <- determinePort
putStrLn $ "Try: http://localhost:" ++ show port ++ "/auth?scope=ID%20Profile&client_id=42&response_type=code&redirect_uri=http:%2F%2Flocalhost:0000%2F"
initDB
runMockServer @(Entity User) @(M.Map T.Text T.Text) port
where
determinePort :: IO Int
determinePort = do
Just port <- lookupEnv "OAUTH2_SERVER_PORT" >>= \p -> return $ p <|> Just "9443"
return $ read @Int port