Added Shakespeare templating and setup basic Maybe-bound lookup for conditional rendering of the page or an appropriate notice that the password doesn't exist.
This commit is contained in:
@ -1,18 +1,23 @@
|
||||
module Feature.Handlers ( root ) where
|
||||
module Feature.Handlers ( pwLookup ) where
|
||||
|
||||
import Core.Types
|
||||
import Core.Templates
|
||||
import qualified Core.Mongo as DB
|
||||
|
||||
import Control.Monad.Reader (ask, lift)
|
||||
import Data.AesonBson (aesonify)
|
||||
import Data.Bson (Document, Field (..), Value (Array, Doc))
|
||||
import Data.Bson (Document, Field (..), Value (Array, Doc), lookup)
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.Lazy as LT
|
||||
import Web.Scotty.Trans (json)
|
||||
import Prelude hiding (id)
|
||||
import Web.Scotty.Trans (html, param)
|
||||
import Prelude hiding (id, lookup)
|
||||
|
||||
root :: PurrAction ()
|
||||
root = do
|
||||
config <- lift $ ask
|
||||
docs <- DB.tempGetDocs config
|
||||
json $ aesonify ["allDocs" := Array (map Doc docs)]
|
||||
pwLookup :: PurrAction ()
|
||||
pwLookup = do
|
||||
id <- param "id"
|
||||
doc <- DB.findByLink id
|
||||
html $ LT.pack $ renderIndex id (pwLook doc)
|
||||
where
|
||||
pwLook :: Maybe Document -> Maybe String
|
||||
pwLook (Just x) = (lookup "password" x) :: Maybe String
|
||||
pwLook _ = Nothing
|
||||
|
Reference in New Issue
Block a user