40 lines
1017 B
Haskell
40 lines
1017 B
Haskell
{-# LANGUAGE DataKinds #-}
|
|
{-# LANGUAGE NoImplicitPrelude #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
{-# LANGUAGE TypeFamilies #-}
|
|
{-# LANGUAGE FlexibleInstances, TypeSynonymInstances #-}
|
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
|
|
|
module CryptoID
|
|
( module CryptoID
|
|
, module Data.CryptoID.Poly.ImplicitNamespace
|
|
, module Data.UUID.Cryptographic.ImplicitNamespace
|
|
, module System.FilePath.Cryptographic.ImplicitNamespace
|
|
) where
|
|
|
|
import CryptoID.TH
|
|
|
|
import ClassyPrelude hiding (fromString)
|
|
import Model
|
|
|
|
import Data.CryptoID.Poly.ImplicitNamespace
|
|
import Data.UUID.Cryptographic.ImplicitNamespace
|
|
import System.FilePath.Cryptographic.ImplicitNamespace
|
|
|
|
import Data.UUID.Types
|
|
import Web.PathPieces
|
|
|
|
|
|
instance PathPiece UUID where
|
|
fromPathPiece = fromString . unpack
|
|
toPathPiece = pack . toString
|
|
|
|
|
|
-- Generates CryptoUUID... Datatypes
|
|
decCryptoIDs [ ''SubmissionId
|
|
, ''CourseId
|
|
, ''SheetId
|
|
, ''FileId
|
|
]
|
|
{- TODO: Do we need/want CryptoUUIDs for Sheet numbers? -}
|