packages feed

clckwrks-0.16.2: Clckwrks/URL.hs

{-# LANGUAGE DeriveDataTypeable, TemplateHaskell, TypeFamilies #-}
module Clckwrks.URL
     ( ClckURL(..)
     , AdminURL(..)
     , AuthURL(..)
     , ProfileURL(..)
     , AuthProfileURL(..)
     , ProfileDataURL(..)
     ) where

import Clckwrks.Admin.URL          (AdminURL(..))
-- import Clckwrks.Page.Acid          (PageId(..))
-- import Clckwrks.Page.Types         (Slug(..))
import Clckwrks.ProfileData.URL    (ProfileDataURL(..))
import Control.Applicative         ((<$>))
import Data.Data                   (Data, Typeable)
import Data.SafeCopy               (Migrate(..), SafeCopy(..), base, deriveSafeCopy, extension)
import Data.Text                   (Text)
import Happstack.Auth              (AuthURL(..), ProfileURL(..), AuthProfileURL(..), UserId)
import Happstack.Auth.Core.AuthURL (OpenIdURL, AuthMode, OpenIdProvider)
import Web.Routes.TH               (derivePathInfo)
{-
data ClckURL_1
    = ViewPage_1 PageId
    | Blog_1
    | AtomFeed_1
    | ThemeData_1 FilePath
    | PluginData_1 Text FilePath
    | Admin_1 AdminURL
    | Profile_1 ProfileDataURL
    | Auth_1 AuthProfileURL
      deriving (Eq, Ord, Data, Typeable, Read, Show)
$(deriveSafeCopy 1 'base ''ClckURL_1)
-}
data ClckURL
{-
    = ViewPage PageId
    | ViewPageSlug PageId Slug
    | Blog
    | AtomFeed
-}
    = ThemeData FilePath
    | PluginData Text FilePath
    | Admin AdminURL
    | Profile ProfileDataURL
    | Auth AuthProfileURL
      deriving (Eq, Ord, Data, Typeable, Read, Show)
(deriveSafeCopy 3 'base ''ClckURL)
{-
instance Migrate ClckURL where
    type MigrateFrom ClckURL   = ClckURL_1
    migrate (ViewPage_1 pid)   = ViewPage pid
    migrate Blog_1             = Blog
    migrate AtomFeed_1         = AtomFeed
    migrate (ThemeData_1 fp)   = ThemeData fp
    migrate (PluginData_1 t f) = PluginData t f
    migrate (Admin_1 u)        = Admin u
    migrate (Profile_1 pdu)    = Profile pdu
    migrate (Auth_1 apu)       = Auth apu
-}

-- TODO: move upstream
$(deriveSafeCopy 1 'base ''AuthURL)
$(deriveSafeCopy 1 'base ''ProfileURL)
$(deriveSafeCopy 1 'base ''AuthProfileURL)
$(deriveSafeCopy 1 'base ''OpenIdURL)
$(deriveSafeCopy 1 'base ''AuthMode)
$(deriveSafeCopy 1 'base ''OpenIdProvider)

$(derivePathInfo ''ClckURL)