packages feed

hw-uri 0.1.0.1 → 0.1.1.0

raw patch · 2 files changed

+13/−2 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ HaskellWorks.Data.Uri.IO.Lazy: writeResource' :: (MonadUnliftIO m, MonadCatch m) => Env -> Location -> FilePath -> ExceptT UriError m (Maybe ETag)

Files

hw-uri.cabal view
@@ -1,7 +1,7 @@ cabal-version:          2.2  name:                   hw-uri-version:                0.1.0.1+version:                0.1.1.0 synopsis:               Supports IO on URIs description:            Supports IO on URIs. homepage:               https://github.com/haskell-works/hw-uri
src/HaskellWorks/Data/Uri/IO/Lazy.hs view
@@ -9,6 +9,7 @@   , firstExistingResource   , headS3Uri   , writeResource+  , writeResource'   , createLocalDirectoryIfMissing   , linkOrCopyResource   , readHttpUri@@ -27,8 +28,8 @@ import HaskellWorks.Data.Uri.Show import HaskellWorks.Data.Uri.UriError +import qualified Antiope.S3                       as AWS import qualified Antiope.S3.Lazy                  as AWS-import qualified Antiope.S3.Types                 as AWS import qualified Control.Concurrent               as IO import qualified Data.ByteString.Lazy             as LBS import qualified Data.Text                        as T@@ -126,10 +127,20 @@   let po  = AWS.putObject b k req   handleAwsError $ runResAws envAws $ view AWS.porsETag <$> AWS.send po +uploadToS3' :: (MonadUnliftIO m, MonadCatch m) => AWS.Env -> AWS.S3Uri -> FilePath -> m (Either UriError (Maybe AWS.ETag))+uploadToS3' envAws uri fn =+  handleAwsError $ runResAws envAws $ AWS.putFile' uri fn+ writeResource :: (MonadUnliftIO m, MonadCatch m) => AWS.Env -> Location -> LBS.ByteString -> ExceptT UriError m (Maybe AWS.ETag) writeResource envAws loc lbs = ExceptT $ case loc of   S3 s3Uri   -> uploadToS3 envAws s3Uri lbs   Local path -> liftIO (LBS.writeFile path lbs) >> return (Right Nothing)+  HttpUri _  -> return (Left (GenericUriError "HTTP PUT method not supported"))++writeResource' :: (MonadUnliftIO m, MonadCatch m) => AWS.Env -> Location -> FilePath -> ExceptT UriError m (Maybe AWS.ETag)+writeResource' envAws loc fn = ExceptT $ case loc of+  S3 s3Uri   -> uploadToS3' envAws s3Uri fn+  Local path -> liftIO (LBS.readFile fn >>= LBS.writeFile path) >> return (Right Nothing)   HttpUri _  -> return (Left (GenericUriError "HTTP PUT method not supported"))  createLocalDirectoryIfMissing :: (MonadCatch m, MonadIO m) => Location -> m ()