{-# LANGUAGE ScopedTypeVariables #-}
module Antiope.DynamoDB
( MonadAWS
, FromText(..), fromText
, ToText(..)
, TableName(..)
, dynamoPutItem
, dynamoQuery
, module Network.AWS.DynamoDB
) where
import Antiope.DynamoDB.Types (TableName (TableName))
import Control.Lens
import Data.HashMap.Strict (HashMap)
import Data.Text (Text)
import Network.AWS (MonadAWS, send)
import Network.AWS.Data.Text (FromText (..), ToText (..), fromText, toText)
import Network.AWS.DynamoDB
dynamoPutItem :: MonadAWS m => TableName -> HashMap Text AttributeValue -> m PutItemResponse
dynamoPutItem table item = send $ putItem (table & toText) & piItem .~ item
dynamoQuery :: MonadAWS m => TableName -> (Query -> Query) -> m QueryResponse
dynamoQuery table f = send $ f $ query (table & toText)