packages feed

polysemy-hasql-0.0.1.0: lib/Polysemy/Hasql/Statement.hs

module Polysemy.Hasql.Statement where

import Hasql.Statement (Statement)
import Polysemy.Db.Data.DbName (DbName, unDbName)
import Sqel.Data.Sql (Sql, sql, sqlQuote)
import Sqel.Statement (plain)

quoteName :: DbName -> Sql
quoteName =
  sqlQuote . unDbName

createDbSql ::
  DbName ->
  Sql
createDbSql (quoteName -> name) =
  [sql|create database #{name}|]

createDb ::
  DbName ->
  Statement () ()
createDb =
  plain . createDbSql

dropDbSql ::
  DbName ->
  Sql
dropDbSql (quoteName -> name) =
  [sql|drop database #{name}|]

dropDb ::
  DbName ->
  Statement () ()
dropDb =
  plain . dropDbSql