packages feed

data-basic-0.2.0.4: test/Spec.hs

{-# LANGUAGE DataKinds, NoImplicitPrelude, TypeFamilies, FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses, FlexibleContexts, OverloadedStrings #-}
import Prelude hiding (id)

import Data.Time
import Database.PostgreSQL.Simple

import Data.Basic
import Control.Monad.IO.Class
import Control.Lens
import Control.Monad
import Data.Function ((&))
import Data.Aeson
import Data.String.Conv (toS)

import Model

insertNewSession :: MonadIO m => Connection -> LocalTime -> m ()
insertNewSession conn expiration =
    handleBasicPsql conn query'
    where
        session = newUserSession
            & expirationDate .~ expiration
            & id .~ 0
        query'  = void $ insert session

main :: IO ()
main = do
    conn <- connectPostgreSQL "host=localhost port=5432 user=postgres dbname=test password=admin connect_timeout=10"
    handleBasicPsql conn $ do
        executeQuery "drop schema if exists public cascade;" ()
        applySchema initialSchema
        us <- allUsers
        liftIO $ putStrLn (toS $ encode us)
        _ <- dmap (view upper) allCapstables
        void $ dmap (view upper) allLowers