Skip to content

Commit c1911e8

Browse files
committed
Merge pull request #9 from fffej/beam-me-up
Beam me up
2 parents 9fb27ed + af9d58b commit c1911e8

2 files changed

Lines changed: 63 additions & 2 deletions

File tree

sql-server-gen.cabal

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff 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

web/Main.hs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+

0 commit comments

Comments
 (0)