module QueryFoldoc where import Data.List import Database.HaskellDB import Database.HaskellDB.HSQL.MySQL --import Database.HaskellDB.HSQL.ODBC import ParseFoldoc import FoldocDB.Foldoc_entries as E import FoldocDB.Foldoc_entry_subjects as S {- connect = odbcConnect ODBCOptions{ dsn = "mysql-dp037", uid = "dp037", pwd = "teent333" } -} connect = mysqlConnect MySQLOptions { server = "localhost", db = "dp037", uid = "dp037", pwd = "teent333" } getSubjects db h = do rs <- query db $ do s <- table foldoc_entry_subjects restrict ((s!S.heading) `like` constant h) return s return [ r!.subject | r <- rs ] getEntries :: Database -> String -> IO [FoldocEntry] getEntries db h = do rs <- query db $ do e <- table foldoc_entries restrict ((e!E.heading) `like` constant h) return e mapM (recToEntry db) rs recToEntry db r = do ss <- getSubjects db (r!.E.heading) return $ FoldocEntry (r!.E.heading) (r!.body) ss (r!.last_updated) findEntries :: String -> IO [FoldocEntry] findEntries h = connect $ \db -> getEntries db h