{-# 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)