Browse Source

* fixed response JSON for /db

Saurabh Nanda 9 years ago
parent
commit
d06d4aebc1
1 changed files with 6 additions and 7 deletions
  1. 6 7
      frameworks/Haskell/yesod-postgres/bench/src/Main.hs

+ 6 - 7
frameworks/Haskell/yesod-postgres/bench/src/Main.hs

@@ -50,12 +50,10 @@ import           System.IO.Unsafe              (unsafePerformIO)
 import qualified System.Random.MWC             as R
 import           Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder)
 import           Yesod
-import GHC.Generics
 
 mkPersist sqlSettings { mpsGeneric = True } [persistLowerCase|
 World sql=World
     randomNumber Int sql=randomNumber
-    deriving Generic Show
 |]
 
 mkPersist sqlSettings { mpsGeneric = True } [persistLowerCase|
@@ -63,8 +61,6 @@ Fortune sql=Fortune
     message Text sql=message
 |]
 
-instance ToJSON World
-
 data App = App
     { appGen      :: !(R.Gen (PrimState IO))
     , appDbPool   :: !(Pool Pg.SqlBackend)
@@ -133,10 +129,14 @@ getDbR :: Handler Value
 getDbR = do
   app <- getYesod
   randomNumber <- liftIO $ ((R.uniformR (1, 1000) (appGen app)) :: IO Int)
-  (runPg $ get ((toSqlKey $ fromIntegral randomNumber) :: WorldId)) >>= \case
+  let wId = (toSqlKey $ fromIntegral randomNumber) :: WorldId
+  (runPg $ get wId) >>= \case
     -- TODO: Throw appropriate HTTP response
     Nothing -> error "This shouldn't be happening"
-    Just worldRow -> returnJson worldRow
+    Just worldRow -> returnJson $ object [
+      "id" .= wId
+      ,"randomnumber" .= (worldRandomNumber worldRow)
+      ]
 
 -- getMongoRawDbR :: Handler Value
 -- getMongoRawDbR = getDb rawMongoIntQuery
@@ -273,7 +273,6 @@ getDbR = do
 --     stripEntity e =
 --         (My.fromSqlKey (My.entityKey e), fortuneMessage . My.entityVal $ e)
 
-
 getPlaintextR :: Handler Text
 getPlaintextR = return "Hello, World!"