breve 0.1.1.0 → 0.2.0.0
raw patch · 4 files changed
+20/−7 lines, 4 files
Files
- breve.cabal +1/−1
- src/Application.hs +16/−3
- static/main.html +2/−2
- views/index.html +1/−1
breve.cabal view
@@ -1,5 +1,5 @@ name: breve-version: 0.1.1.0+version: 0.2.0.0 synopsis: a url shortener description:
src/Application.hs view
@@ -44,12 +44,25 @@ respond $ redirectTo (BS.pack url) Nothing -> respond notFound - post "/short" $ do- form <- fmap fst parseForm+ post "/" $ do+ form <- fst <$> parseForm case lookup "url" form of+ Nothing -> respond badRequest Just url' -> do let url = BS.unpack url' name <- liftIO (insert table url) logStr (printf "Registered %s -> %s " url name) render done $ object ["link" .= (bindUrl ++ name)]- Nothing -> respond badRequest++ post "/api" $ do+ form <- fst <$> parseForm+ case lookup "url" form of+ Nothing -> respond badRequest+ Just url' -> do+ let url = BS.unpack url'+ name <- liftIO (insert table url)+ logStr (printf "Registered %s -> %s " url name)+ let json = object [ "link" .= (bindUrl ++ name)+ , "name" .= name+ , "original" .= url ]+ respond $ okHtml (encode json)
static/main.html view
@@ -8,8 +8,8 @@ <meta charset="utf-8"> <link rel=stylesheet href="main.css" type="text/css"> <link rel="apple-touch-icon" href="icon-big.png">- <link rel="icon" type="image/png" href="/favicon-big.png" sizes="96x96">- <link rel="icon" type="image/png" href="/favicon-small.png" sizes="16x16">+ <link rel="icon" type="image/png" href="/icon-medium.png" sizes="96x96">+ <link rel="icon" type="image/png" href="/icon-small.png" sizes="16x16"> <script src="https://cdn.rawgit.com/LeaVerou/prefixfree/gh-pages/prefixfree.min.js"></script> </head> <body>
views/index.html view
@@ -1,4 +1,4 @@-<form action="/short" method="POST">+<form method="POST"> your url: <input type="text" name="url"> <input type="submit" value="go"> </form>