yesod/Web/Restful/Definitions.hs
2009-08-05 13:32:01 +03:00

49 lines
1.2 KiB
Haskell

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeSynonymInstances #-}
---------------------------------------------------------
--
-- Module : Web.Restful.Definitions
-- Copyright : Michael Snoyman
-- License : BSD3
--
-- Maintainer : Michael Snoyman <michael@snoyman.com>
-- Stability : Stable
-- Portability : portable
--
-- Definitions throughout Restful.
--
---------------------------------------------------------
module Web.Restful.Definitions
( Verb (..)
, toVerb
, Resource
, ParsedResource (..)
, ResourceParser
, HasResourceParser (..)
) where
import qualified Hack
data Verb = Get | Put | Delete | Post
deriving (Eq, Show)
toVerb :: Hack.RequestMethod -> Verb
toVerb Hack.PUT = Put
toVerb Hack.DELETE = Delete
toVerb Hack.POST = Post
toVerb _ = Get
type Resource = [String]
data ParsedResource a = ParsedResource
{ resourceName :: a
, urlParameters :: [(String, String)]
}
type ResourceParser a = Resource -> Maybe (ParsedResource a)
class HasResourceParser a where
resourceParser :: ResourceParser a
simpleParse :: a -> Maybe (ParsedResource a)
simpleParse x = Just $ ParsedResource x []