packages feed

testcontainers-postgresql-0.0.2: src/library/TestcontainersPostgresql/Configs/Auth.hs

module TestcontainersPostgresql.Configs.Auth where

import Data.Function
import Data.Text (Text)
import qualified TestContainers
import Prelude

data Auth
  = TrustAuth
  | CredentialsAuth
      -- | User.
      Text
      -- | Password.
      Text
  deriving stock (Show, Eq)

updateContainerRequest :: Auth -> TestContainers.ContainerRequest -> TestContainers.ContainerRequest
updateContainerRequest = TestContainers.setEnv . toEnvs

toEnvs :: Auth -> [(Text, Text)]
toEnvs = \case
  TrustAuth ->
    [ ("POSTGRES_HOST_AUTH_METHOD", "trust")
    ]
  CredentialsAuth user password ->
    [ ("POSTGRES_USER", user),
      ("POSTGRES_PASSWORD", password)
    ]