gogol 0.4.0 → 0.5.0
raw patch · 7 files changed
+33/−32 lines, 7 filesdep ~gogol-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: gogol-core
API changes (from Hackage documentation)
- Network.Google: Body :: !MediaType -> !RequestBody -> Body
- Network.Google: data Body
+ Network.Google: GBody :: !MediaType -> !RequestBody -> GBody
+ Network.Google: data GBody
+ Network.Google.Auth: retrieveTokenFromStore :: (MonadIO m, MonadCatch m, AllowScopes s) => Store s -> Logger -> Manager -> m (OAuthToken s)
- Network.Google: bodyContentType :: Lens' Body MediaType
+ Network.Google: bodyContentType :: Lens' GBody MediaType
- Network.Google: sourceBody :: MonadIO m => FilePath -> m Body
+ Network.Google: sourceBody :: MonadIO m => FilePath -> m GBody
- Network.Google: upload :: (MonadGoogle s m, HasScope s (MediaUpload a), GoogleRequest (MediaUpload a)) => a -> Body -> m (Rs (MediaUpload a))
+ Network.Google: upload :: (MonadGoogle s m, HasScope s (MediaUpload a), GoogleRequest (MediaUpload a)) => a -> GBody -> m (Rs (MediaUpload a))
- Network.Google.Auth: retrieveAuthFromStore :: (MonadIO m, MonadCatch m, AllowScopes s) => Store s -> m (Auth s)
+ Network.Google.Auth: retrieveAuthFromStore :: (MonadIO m, AllowScopes s) => Store s -> m (Auth s)
Files
- gogol.cabal +2/−2
- src/Network/Google.hs +2/−2
- src/Network/Google/Auth.hs +15/−11
- src/Network/Google/Auth/InstalledApplication.hs +2/−2
- src/Network/Google/Internal/Body.hs +4/−4
- src/Network/Google/Internal/HTTP.hs +5/−8
- src/Network/Google/Internal/Multipart.hs +3/−3
gogol.cabal view
@@ -1,5 +1,5 @@ name: gogol-version: 0.4.0+version: 0.5.0 synopsis: Comprehensive Google Services SDK. homepage: https://github.com/brendanhay/gogol bug-reports: https://github.com/brendanhay/gogol/issues@@ -66,7 +66,7 @@ , directory >= 1.2 , exceptions >= 0.6 , filepath >= 1.2- , gogol-core == 0.4.0.*+ , gogol-core == 0.5.0.* , http-client >= 0.5 && < 1 , http-conduit >= 2.3 && < 3 , http-media >= 0.6
src/Network/Google.hs view
@@ -63,7 +63,7 @@ , download , upload - , Body (..)+ , GBody (..) , bodyContentType , sourceBody@@ -266,7 +266,7 @@ , GoogleRequest (MediaUpload a) ) => a- -> Body+ -> GBody -> m (Rs (MediaUpload a)) upload x = send . MediaUpload x
src/Network/Google/Auth.hs view
@@ -39,6 +39,7 @@ , Store , initStore , retrieveAuthFromStore+ , retrieveTokenFromStore , Auth (..) , authToAuthorizedUser@@ -131,19 +132,22 @@ initStore c l m = exchange c l m >>= fmap Store . liftIO . newMVar -- | Retrieve auth from storage-retrieveAuthFromStore :: (MonadIO m, MonadCatch m, AllowScopes s)- => Store s- -> m (Auth s)-retrieveAuthFromStore (Store s) = liftIO (readMVar s)+retrieveAuthFromStore+ :: (MonadIO m, AllowScopes s)+ => Store s+ -> m (Auth s)+retrieveAuthFromStore (Store s) =+ liftIO (readMVar s) -- | Concurrently read the current token, and if expired, then -- safely perform a single serial refresh.-getToken :: (MonadIO m, MonadCatch m, AllowScopes s)- => Store s- -> Logger- -> Manager- -> m (OAuthToken s)-getToken (Store s) l m = do+retrieveTokenFromStore+ :: (MonadIO m, MonadCatch m, AllowScopes s)+ => Store s+ -> Logger+ -> Manager+ -> m (OAuthToken s)+retrieveTokenFromStore (Store s) l m = do x <- liftIO (readMVar s) mx <- validate x if mx@@ -193,7 +197,7 @@ -> Logger -> Manager -> m Client.Request-authorize rq s l m = bearer <$> getToken s l m+authorize rq s l m = bearer <$> retrieveTokenFromStore s l m where bearer t = rq { Client.requestHeaders =
src/Network/Google/Auth/InstalledApplication.hs view
@@ -140,7 +140,7 @@ -- | Perform a refresh to obtain a valid 'OAuthToken' with a new expiry time. ----- /See:/ <https://developers.google.com/accounts/docs/OAuth2InstalledApp#refresh Refreshing tokens>.+-- /See:/ <https://developers.google.com/accounts/docs/OAuth2InstalledApp#offline Refreshing tokens>. refreshToken :: (MonadIO m, MonadCatch m) => OAuthClient -> (OAuthToken s)@@ -148,7 +148,7 @@ -> Manager -> m (OAuthToken s) refreshToken c t = refreshRequest $- accountsRequest+ tokenRequest { Client.requestBody = textBody $ "grant_type=refresh_token" <> "&client_id=" <> toQueryParam (_clientId c)
src/Network/Google/Internal/Body.hs view
@@ -14,7 +14,7 @@ import Data.Conduit.Binary (sourceFile) import Data.Maybe (fromMaybe) import qualified Data.Text as Text-import Network.Google.Types (Body (..))+import Network.Google.Types (GBody (..)) import Network.HTTP.Conduit (requestBodySource) import Network.HTTP.Media (MediaType, parseAccept, (//)) import qualified Network.Mime as MIME@@ -35,13 +35,13 @@ . Text.takeWhileEnd (/= '/') . Text.pack --- | Construct a 'Body' from a 'FilePath'.+-- | Construct a 'GBody' from a 'FilePath'. -- -- This uses 'getMIMEType' to calculate the MIME type from the file extension, -- you can use 'bodyContentType' to set a MIME type explicitly.-sourceBody :: MonadIO m => FilePath -> m Body+sourceBody :: MonadIO m => FilePath -> m GBody sourceBody f = do n <- getFileSize f- pure $ Body+ pure $ GBody (getMIMEType f) (requestBodySource (fromIntegral n) (sourceFile f))
src/Network/Google/Internal/HTTP.hs view
@@ -20,8 +20,7 @@ import Control.Monad.IO.Class (MonadIO) import Control.Monad.Trans.Resource (MonadResource (..)) -import Data.Conduit (($$+-))-import Data.Monoid (Dual (..), Endo (..), (<>))+import Data.Monoid (Dual (..), Endo (..), (<>)) import GHC.Exts (toList) @@ -34,8 +33,6 @@ import Network.HTTP.Media (RenderHeader (..)) import Network.HTTP.Types -import qualified Data.ByteString.Lazy as LBS-import qualified Data.Conduit.List as Conduit import qualified Data.Text.Encoding as Text import qualified Data.Text.Lazy as LText import qualified Data.Text.Lazy.Builder as Build@@ -128,11 +125,11 @@ err e = return (Left e) getContent :: MonadIO m- => [Body]+ => [GBody] -> m ([Header] -> [Header], RequestBody)-getContent [] = pure (id, mempty)-getContent [Body t s] = pure (((hContentType, renderHeader t) :), s)-getContent bs = do+getContent [] = pure (id, mempty)+getContent [GBody t s] = pure (((hContentType, renderHeader t) :), s)+getContent bs = do b <- genBoundary pure ( (multipartHeader b :) , renderParts b bs
src/Network/Google/Internal/Multipart.hs view
@@ -15,7 +15,7 @@ import qualified Data.ByteString as BS import Data.ByteString.Builder.Extra (byteStringCopy) import Data.Monoid ((<>))-import Network.Google.Types (Body (..))+import Network.Google.Types (GBody (..)) import Network.HTTP.Client import Network.HTTP.Client.MultipartFormData (webkitBoundary) import Network.HTTP.Media (RenderHeader (..))@@ -57,10 +57,10 @@ copy :: ByteString -> RequestBody copy bs = RequestBodyBuilder (fromIntegral (BS.length bs)) (byteStringCopy bs) -renderParts :: Boundary -> [Body] -> RequestBody+renderParts :: Boundary -> [GBody] -> RequestBody renderParts b = (<> part b) . foldMap go where- go (Body ct x) =+ go (GBody ct x) = start b <> copy "Content-Type: " <> copy (renderHeader ct)