40 lines
1015 B
Haskell
40 lines
1015 B
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
{-# LANGUAGE RecordWildCards #-}
|
|
|
|
module Pipes.IRC.Server.MessageHandler
|
|
( ircMessageHandler )
|
|
where
|
|
|
|
import Control.Applicative
|
|
import Control.Monad.RWS
|
|
import Pipes.IRC.Message.Types
|
|
import Pipes.IRC.Server.Types
|
|
|
|
ircMessageHandler :: IrcMessage -> IrcMonad ()
|
|
ircMessageHandler msg = do
|
|
reg <- clientReg <$> get
|
|
case reg of
|
|
Unreg {} -> unregHandler msg
|
|
RegUser {} -> regHandler msg
|
|
return ()
|
|
|
|
unregHandler :: IrcMessage -> IrcMonad ()
|
|
unregHandler IrcMessage{..} =
|
|
case command of
|
|
Left PASS -> undefined
|
|
Left NICK -> undefined
|
|
Left USER -> undefined
|
|
Left QUIT -> undefined
|
|
_ -> return ()
|
|
|
|
regHandler :: IrcMessage -> IrcMonad ()
|
|
regHandler IrcMessage{..} =
|
|
case command of
|
|
Left PRIVMSG -> undefined
|
|
Left JOIN -> undefined
|
|
Left PART -> undefined
|
|
Left LIST -> undefined
|
|
Left NICK -> undefined
|
|
Left QUIT -> undefined
|
|
_ -> return ()
|