version 1.0
[asp-class-generator:asp-class-generator.git] / Controller.hs
1 {-# OPTIONS_GHC -fno-warn-orphans #-}
2 module Controller
3     ( withASPClassGenerator
4     ) where
5
6 import ASPClassGenerator
7 import Settings
8 import Yesod.Helpers.Static
9 import Yesod.Helpers.Auth
10 import Database.Persist.GenericSql
11
12 -- Import all relevant handler modules here.
13 import Handler.Root
14 import Handler.User
15 import Handler.Class
16
17 -- This line actually creates our YesodSite instance. It is the second half
18 -- of the call to mkYesodData which occurs in ASPClassGenerator.hs. Please see
19 -- the comments there for more details.
20 mkYesodDispatch "ASPClassGenerator" resourcesASPClassGenerator
21
22 -- Some default handlers that ship with the Yesod site template. You will
23 -- very rarely need to modify this.
24 getFaviconR :: Handler ()
25 getFaviconR = sendFile "image/x-icon" "favicon.ico"
26
27 getRobotsR :: Handler RepPlain
28 getRobotsR = return $ RepPlain $ toContent "User-agent: *"
29
30 -- This function allocates resources (such as a database connection pool),
31 -- performs initialization and creates a WAI application. This is also the
32 -- place to put your migrate statements to have automatic database
33 -- migrations handled by Yesod.
34 withASPClassGenerator :: (Application -> IO a) -> IO a
35 withASPClassGenerator f = Settings.withConnectionPool $ \p -> do
36     runConnectionPool (runMigration migrateAll) p
37     let h = ASPClassGenerator s p
38     toWaiApp h >>= f
39   where
40     s = fileLookupDir Settings.staticdir typeByExt