File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,7 +53,14 @@ library
5353 -- Modules exported by the library.
5454 exposed-modules : Database.SqlServer.Types.Database,
5555 Database.SqlServer.Types.Sequence,
56- Database.SqlServer.Types.Identifiers
56+ Database.SqlServer.Types.Identifiers,
57+ Database.SqlServer.Types.Procedure,
58+ Database.SqlServer.Types.Properties,
59+ Database.SqlServer.Types.Queue,
60+ Database.SqlServer.Types.DataTypes,
61+ Database.SqlServer.Types.Reserved,
62+ Database.SqlServer.Types.Table,
63+ Database.SqlServer.Types.Collations
5764
5865 ghc-options : -Wall
5966
@@ -86,4 +93,16 @@ Test-Suite tests
8693 sql-server-gen,
8794 hspec >= 2.1.7 ,
8895 containers >= 0.5.6.2
89-
96+
97+ executable webserver
98+ ghc-options : -Wall
99+ main-is : Main.hs
100+ hs-source-dirs : web
101+ default-language : Haskell2010
102+ build-depends : base >= 4.8 && < 4.9 ,
103+ sql-server-gen,
104+ scotty >= 0.10.1 ,
105+ aeson >= 0.9.0.1 ,
106+ QuickCheck >= 2.8.1 ,
107+ pretty >= 1.1.2 ,
108+ transformers >= 0.4.2.0
Original file line number Diff line number Diff line change 1+ {-# LANGUAGE OverloadedStrings #-}
2+ {-# LANGUAGE DeriveGeneric #-}
3+
4+ module Main where
5+
6+ import Web.Scotty
7+ import Data.Aeson hiding (json )
8+ import GHC.Generics
9+ import Test.QuickCheck
10+ import Test.QuickCheck.Gen
11+ import Test.QuickCheck.Random
12+ import Text.PrettyPrint (render )
13+
14+
15+ import Database.SqlServer.Types.Database ;
16+
17+ data DatabaseAsJson = DatabaseAsJson
18+ {
19+ seed :: Int
20+ , size :: Int
21+ , createStatement :: String
22+ } deriving Generic
23+
24+ instance ToJSON DatabaseAsJson
25+
26+ generateDB :: Int -> Int -> DatabaseAsJson
27+ generateDB seed' size' = DatabaseAsJson
28+ {
29+ seed = seed'
30+ , size = size'
31+ , createStatement = (render . renderDatabaseDefinition) db
32+ }
33+ where
34+ db = unGen (arbitrary :: Gen DatabaseDefinition ) (mkQCGen seed') size'
35+
36+ main :: IO ()
37+ main = scotty 8888 $ do
38+ get " /database/:seed" $ do
39+ s <- param " seed"
40+ z <- param " size" `rescue` (const $ return 101 )
41+ json (generateDB s z)
42+
You can’t perform that action at this time.
0 commit comments