module Aws.Kinesis.Reshard.Common
( kinesisStreamName
, runKinesis
) where
import Aws
import Aws.General
import Aws.Kinesis
import Aws.Kinesis.Reshard.Monad
import Control.Applicative
import Control.Exception.Lifted
import Control.Lens
import Control.Monad.Error.Hoist
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import Prelude.Unicode
awsCredentials
∷ MonadReshard m
⇒ m Credentials
awsCredentials = do
accessKey ← view $ oAccessKey ∘ to T.encodeUtf8
secretKey ← view $ oSecretAccessKey ∘ to T.encodeUtf8
makeCredentials
accessKey
secretKey
awsConfiguration
∷ MonadReshard m
⇒ m Configuration
awsConfiguration = do
cred ← awsCredentials
return Configuration
{ timeInfo = Timestamp
, credentials = cred
, logger = defaultLog Warning
}
awsRegion
∷ MonadReshard m
⇒ m Region
awsRegion = do
r ← view oRegion
fromText r <%?>
SomeException ∘ InvalidRegionException r ∘ T.pack
kinesisConfiguration
∷ MonadReshard m
⇒ m (KinesisConfiguration NormalQuery)
kinesisConfiguration =
KinesisConfiguration
<$> awsRegion
kinesisStreamName
∷ MonadReshard m
⇒ m StreamName
kinesisStreamName = do
sn ← view oStreamName
streamName sn <%?>
SomeException ∘ InvalidStreamNameException sn
runKinesis
∷ ( MonadReshard m
, Transaction r α
, ServiceConfiguration r ~ KinesisConfiguration
, AsMemoryResponse α
)
⇒ r
→ m (MemoryResponse α)
runKinesis request = do
cfg ← awsConfiguration
kinCfg ← kinesisConfiguration
simpleAws cfg kinCfg request