]> ruin.nu Git - yawbih.git/blobdiff - Wiki.hs
escape
[yawbih.git] / Wiki.hs
diff --git a/Wiki.hs b/Wiki.hs
index 916829e11a872db3fd7b99d37fb5e68954bf844e..d7ce7bcd912305223137ad8a72f141f255cfb165 100644 (file)
--- a/Wiki.hs
+++ b/Wiki.hs
@@ -1,21 +1,50 @@
 module Wiki (
+       WB
+       ,PGB
 
 ) where
 
-import Graphics.UI.WXCore.Db
+import Dbconnect
+import Data.Char
 
-{-Keyword -> Full text
-getCurrent :: String -> IO String
+class WB a where
+       --Keyword -> (Full text,date)
+       getCurrent :: a -> String -> IO (String,String)
 
---Keyword -> (id,date)
-getList :: String -> IO (Int, String)
+       --Keyword -> [(id,date)]
+       getList :: a -> String -> IO [(String, String, String, String)]
 
---Keyword -> id -> Full Text
-get :: String -> Int -> IO String
+       --Keyword -> id -> Full text
+       get :: a -> String -> String -> IO String
 
---Keyword -> id -> ()
-setCurrent :: String -> Int -> IO ()
+       --Keyword -> id -> ()
+       setCurrent :: a -> String -> String -> IO Int
+
+       --Keyword -> Full text -> id
+       addNew :: a -> String -> String -> IO String
+
+data PGB = PGB DBService
+
+createPGB :: String -> String -> String -> String -> IO PGB
+createPGB host database user password = let db = createDBService host database "" user password Nothing in return (PGB db)
+
+
+testDB = createPGB "wave" "wiki" "wiki" "12wiki34db"
+
+instance WB PGB where
+
+       getCurrent (PGB db) key = do 
+               [[text,date]] <- selectReturnTuples db $ "SELECT fulltext,timestamp FROM curtexts where keyword='"++(escapeQuery key)++"'"
+               return (text,date)
+
+       getList (PGB db) key = do
+               list <- selectReturnTuples db $ "SELECT id, timestamp, author, comment from fulltexts where keyword = '"++(escapeQuery key)++"'"
+               return $ map (\[id,date,author,comment] -> (id,date,author,comment)) list
+
+       get (PGB db) key id = return ""
+
+       setCurrent (PGB db) key id = 
+               execute db $ "UPDATE current SET id = '"++(escapeQuery id)++"' where keyword = '"++(escapeQuery key)++"'"
+
+       addNew (PGB db) key text = return ""
 
---Keyword -> Full text -> id
-addNew :: String -> String -> IO Int
--}