createDomainTerm :: P.ProductID -> APIDomainTerm -> App APIDomainTerm
createDomainTerm pID (APIDomainTerm _ _ t d) = do
  dbConfig <- reader getDBConfig
  utcTime  <- liftIO $ Clock.getCurrentTime
  termID   <- liftIO $ runReaderT (runPool (DT.createDomainTerm (DT.DomainTerm (toKey pID) t d utcTime))) (getPool dbConfig)
  return $ APIDomainTerm { domainTermID = Just termID
                         , productID    = Just (toKey pID)
                         , title        = t
                         , description  = d
                         }
createDomainTerm :: P.ProductID -> APIDomainTerm -> App APIDomainTerm
createDomainTerm pID (APIDomainTerm _ _ t d) = do
  dbConfig <- reader getDBConfig
  utcTime  <- liftIO $ Clock.getCurrentTime
  termID   <- liftIO $ runReaderT (runPool (DT.createDomainTerm (DT.DomainTerm (toKey pID) t d utcTime))) (getPool dbConfig)
  return $ APIDomainTerm { domainTermID = Just termID
                         , productID    = Just (toKey pID)
                         , title        = t
                         , description  = d
                         }
createDomainTerm pID (APIDomainTerm _ _ t d) = do
  dbConfig <- reader getDBConfig
  utcTime  <- liftIO $ Clock.getCurrentTime
  termID   <- liftIO $ runReaderT (runPool (DT.createDomainTerm (DT.DomainTerm (toKey pID) t d utcTime))) (getPool dbConfig)
  return $ APIDomainTerm { domainTermID = Just termID
                         , productID    = Just (toKey pID)
                         , title        = t
                         , description  = d
                         }