packages feed

rds-data-0.0.0.1: src/Data/RdsData/Types/Param.hs

{-# LANGUAGE DataKinds        #-}
{-# LANGUAGE DeriveGeneric    #-}
{-# LANGUAGE TypeApplications #-}

{- HLINT ignore "Use <&>" -}

module Data.RdsData.Types.Param
  ( Param(..)
  , toSqlParameter
  ) where

import           Data.Generics.Product.Any
import           Data.RdsData.Types.Value
import           Data.Text
import           GHC.Generics
import           Lens.Micro

import qualified Amazonka.RDSData          as AWS
import qualified Data.Aeson                as J

data Param = Param
  { name  :: Maybe Text
  , hint  :: Maybe AWS.TypeHint
  , value :: Value
  } deriving (Eq, Generic, Show)

instance J.ToJSON Param where

toSqlParameter :: Param -> AWS.SqlParameter
toSqlParameter (Param n h v) =
  AWS.newSqlParameter & the @"name" .~ n & the @"typeHint" .~ h & the @"value" ?~ toField v