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