packages feed

yesod-dsl-0.1.1.6: Generator/Require.hs

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
module Generator.Require where
import AST
import Text.Shakespeare.Text hiding (toText)
import qualified Data.Text as T
import Data.List
import Data.Maybe
import Data.Char
import Generator.Common
import Generator.Esqueleto
import Generator.Models
requireStmts :: Module -> [HandlerParam] -> String
requireStmts m ps = concatMap f $ zip [1..] ps
    where f (requireId,(Require sq)) = T.unpack $(codegenFile "codegen/require-select-query.cg")
            where 
                (limit, offset) = sqLimitOffset sq
                ctx = Context {
                      ctxNames = sqAliases sq,
                      ctxModule = m,
                      ctxHandlerParams = []
                }
                (selectEntity, selectVar) = sqFrom sq
                maybeWhere = case sqWhere sq of
                    Just expr -> T.unpack $(codegenFile "codegen/where-expr.cg")
                    Nothing -> ""
          f _ = ""