module Experimenter.Parameter.Query ( queryParamSettings ) where import Control.Monad.Reader import Database.Esqueleto import Prelude hiding (exp) import Experimenter.Models queryParamSettings :: (MonadIO m) => Key Exp -> ReaderT SqlBackend m [(Entity Exp, Entity ParamSetting)] queryParamSettings :: Key Exp -> ReaderT SqlBackend m [(Entity Exp, Entity ParamSetting)] queryParamSettings Key Exp kExp = SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlReadT m [(Entity Exp, Entity ParamSetting)] forall a r (m :: * -> *). (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m [r] select (SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlReadT m [(Entity Exp, Entity ParamSetting)]) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlReadT m [(Entity Exp, Entity ParamSetting)] forall a b. (a -> b) -> a -> b $ ((SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting))) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) forall a b. From a => (a -> SqlQuery b) -> SqlQuery b from (((SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting))) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting))) -> ((SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting))) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) forall a b. (a -> b) -> a -> b $ \(SqlExpr (Entity Exp) exp, SqlExpr (Entity ParamSetting) paramSet) -> do SqlExpr (Value Bool) -> SqlQuery () where_ (SqlExpr (Entity Exp) exp SqlExpr (Entity Exp) -> EntityField Exp (Key Exp) -> SqlExpr (Value (Key Exp)) forall typ val. (PersistEntity val, PersistField typ) => SqlExpr (Entity val) -> EntityField val typ -> SqlExpr (Value typ) ^. EntityField Exp (Key Exp) forall typ. (typ ~ Key Exp) => EntityField Exp typ ExpId SqlExpr (Value (Key Exp)) -> SqlExpr (Value (Key Exp)) -> SqlExpr (Value Bool) forall typ. PersistField typ => SqlExpr (Value typ) -> SqlExpr (Value typ) -> SqlExpr (Value Bool) ==. SqlExpr (Entity ParamSetting) paramSet SqlExpr (Entity ParamSetting) -> EntityField ParamSetting (Key Exp) -> SqlExpr (Value (Key Exp)) forall typ val. (PersistEntity val, PersistField typ) => SqlExpr (Entity val) -> EntityField val typ -> SqlExpr (Value typ) ^. EntityField ParamSetting (Key Exp) forall typ. (typ ~ Key Exp) => EntityField ParamSetting typ ParamSettingExp) SqlExpr (Value Bool) -> SqlQuery () where_ (SqlExpr (Entity Exp) exp SqlExpr (Entity Exp) -> EntityField Exp (Key Exp) -> SqlExpr (Value (Key Exp)) forall typ val. (PersistEntity val, PersistField typ) => SqlExpr (Entity val) -> EntityField val typ -> SqlExpr (Value typ) ^. EntityField Exp (Key Exp) forall typ. (typ ~ Key Exp) => EntityField Exp typ ExpId SqlExpr (Value (Key Exp)) -> SqlExpr (Value (Key Exp)) -> SqlExpr (Value Bool) forall typ. PersistField typ => SqlExpr (Value typ) -> SqlExpr (Value typ) -> SqlExpr (Value Bool) ==. Key Exp -> SqlExpr (Value (Key Exp)) forall typ. PersistField typ => typ -> SqlExpr (Value typ) val Key Exp kExp) [SqlExpr OrderBy] -> SqlQuery () orderBy [SqlExpr (Value Int) -> SqlExpr OrderBy forall a. PersistField a => SqlExpr (Value a) -> SqlExpr OrderBy asc (SqlExpr (Entity Exp) exp SqlExpr (Entity Exp) -> EntityField Exp Int -> SqlExpr (Value Int) forall typ val. (PersistEntity val, PersistField typ) => SqlExpr (Entity val) -> EntityField val typ -> SqlExpr (Value typ) ^. EntityField Exp Int forall typ. (typ ~ Int) => EntityField Exp typ ExpNumber)] (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) -> SqlQuery (SqlExpr (Entity Exp), SqlExpr (Entity ParamSetting)) forall (m :: * -> *) a. Monad m => a -> m a return (SqlExpr (Entity Exp) exp, SqlExpr (Entity ParamSetting) paramSet)