module Feature.Sharing.HTTP ( routes ) where import Core.Types import Core.Templates (renderIndex) import Feature.Generation.Links (genLink) import Feature.Sharing.SQLite (findByLink, insertNewSecret) import Feature.Sharing.Templates (renderPw) import Feature.Sharing.Types import qualified Data.Text as T import qualified Data.Text.Lazy as LT import Control.Monad.Reader (ask, lift, liftIO) import Data.Maybe (listToMaybe) import Web.Scotty.Trans import Prelude routes :: PurrApp () routes = do get "/pw/:id" $ do reqId <- param "id" res <- findByLink reqId html $ renderIndex reqId (secret <$> res) post "/pw" $ do reqId <- param "userLink" res <- findByLink reqId html $ renderPw reqId (secret <$> res) post "/new" $ do reqSecret <- param "newSec" link <- liftIO $ genLink 24 "" insertNewSecret reqSecret (T.pack link) html $ renderPw link (Just reqSecret)