on develop help sign in
Removing extraneous imports and applying consistent formatting
commit47fb0dc8dd2249d59af28570d4d3d780e2411586 authorBrendan Hay <brendan.g.hay@gmail.com> dateSat 31 Oct 2015, 13:29 (11 years ago) parent033fe2c
14 files changed+138−321
core/src/Network/Google/Data/Numeric.hs+1−1 core/src/Network/Google/Prelude.hs−1 gogol/src/Network/Google/Auth.hs+9−38 gogol/src/Network/Google/Auth/ApplicationDefault.hs+16−43 gogol/src/Network/Google/Auth/InstalledApplication.hs+4−35 gogol/src/Network/Google/Auth/Scope.hs+36−75 gogol/src/Network/Google/Auth/ServiceAccount.hs+1−30 gogol/src/Network/Google/Compute/Metadata.hs+13−15 gogol/src/Network/Google/Env.hs+8−10 gogol/src/Network/Google/Internal/Auth.hs+26−47 gogol/src/Network/Google/Internal/Body.hs+3−3 gogol/src/Network/Google/Internal/HTTP.hs+8−9 gogol/src/Network/Google/Internal/Logger.hs+5−6 gogol/src/Network/Google/Internal/Multipart.hs+8−8
core/src/Network/Google/Data/Numeric.hs+1−1
@@ -14,7 +14,7 @@ module Network.Google.Data.Numeric
1414 ( Nat (..)
1515 ) where
1616
17−import Control.Lens
17+
1818import Control.Monad
1919import Data.Aeson
2020import Data.Data
core/src/Network/Google/Prelude.hs−1
@@ -10,7 +10,6 @@ module Network.Google.Prelude
1010 ( module Export
1111 ) where
1212
13−import Control.Applicative as Export (pure, (<$>), (<*>))
1413import Control.Lens as Export (Lens', lens, mapping,
1514 ( # ), (^.), _Just)
1615import Data.Data as Export (Data, Typeable)
gogol/src/Network/Google/Auth.hs+9−38
@@ -76,52 +76,23 @@ module Network.Google.Auth
7676 , module Network.Google.Auth.Scope
7777 ) where
7878
79−import Control.Applicative
8079import Control.Concurrent
81−import Control.Exception.Lens
82−import Control.Lens hiding (coerce, (.=))
83−import Control.Monad
84−import Control.Monad.Catch
85−import Control.Monad.IO.Class
86−import Crypto.Hash.Algorithms (SHA256 (..))
87−import Crypto.PubKey.RSA.PKCS15 (signSafer)
88−import Crypto.PubKey.RSA.Types (PrivateKey)
89−import Data.Aeson
90−import Data.Aeson.Types
91−import Data.ByteArray
92−import Data.ByteArray.Encoding
93−import Data.ByteString (ByteString)
94−import Data.ByteString.Builder (Builder)
95−import qualified Data.ByteString.Builder as Build
96−import qualified Data.ByteString.Char8 as BS8
97−import qualified Data.ByteString.Lazy as LBS
98−import Data.Coerce
99−import Data.Default.Class (def)
100−import Data.List
101−import Data.String
102−import qualified Data.Text as Text
80+import Control.Monad.Catch (MonadCatch)
81+import Control.Monad.IO.Class (MonadIO (..))
10382import qualified Data.Text.Encoding as Text
104−import Data.Time
105−import Data.Time.Clock.POSIX
106−import Data.Type.Bool
107−import Data.Type.Equality
108−import Data.Typeable
109−import Data.X509
110−import Data.X509.Memory
111−import GHC.Exts (Constraint)
112−import GHC.TypeLits
83+import Data.Time (getCurrentTime)
84+import GHC.TypeLits (Symbol)
11385import Network.Google.Auth.ApplicationDefault
114−import Network.Google.Auth.Device
11586import Network.Google.Auth.InstalledApplication
11687import Network.Google.Auth.Scope
11788import Network.Google.Auth.ServiceAccount
118−import Network.Google.Compute.Metadata
89+import Network.Google.Compute.Metadata (checkGCEVar)
11990import Network.Google.Internal.Auth
120−import Network.Google.Internal.Logger
91+import Network.Google.Internal.Logger (Logger)
12192import Network.Google.Prelude
122−import Network.HTTP.Conduit hiding (Proxy)
93+import Network.HTTP.Conduit (Manager)
12394import qualified Network.HTTP.Conduit as Client
124−import Network.HTTP.Types
95+import Network.HTTP.Types (hAuthorization)
12596
12697-- | An 'OAuthToken' that can potentially be expired, with the original
12798-- credentials that can be used to perform a refresh.
@@ -183,7 +154,7 @@ exchange c l = fmap (Auth c) . action l
183154 action = case c of
184155 FromMetadata s -> metadataToken s
185156 FromAccount a -> serviceAccountToken a (getScopes c)
186− FromClient c n -> exchangeCode c n
157+ FromClient x n -> exchangeCode x n
187158 FromUser u -> authorizedUserToken u Nothing
188159
189160-- | Refresh an existing 'OAuthToken' using
gogol/src/Network/Google/Auth/ApplicationDefault.hs+16−43
@@ -8,55 +8,28 @@
88-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
99-- Stability : provisional
1010-- Portability : non-portable (GHC extensions)
11−
11+--
1212module Network.Google.Auth.ApplicationDefault where
1313
1414import Control.Applicative
15−import Control.Concurrent
16−import Control.Exception.Lens
17−import Control.Lens hiding (coerce, (.=))
18−import Control.Monad
15+import Control.Exception.Lens (catching, throwingM)
16+import Control.Monad (unless)
1917import Control.Monad.Catch
20−import Control.Monad.IO.Class
21−import Crypto.Hash.Algorithms (SHA256 (..))
22−import Crypto.PubKey.RSA.PKCS15 (signSafer)
23−import Crypto.PubKey.RSA.Types (PrivateKey)
18+import Control.Monad.IO.Class (MonadIO (..))
2419import Data.Aeson
25−import Data.Aeson.Types
26−import Data.ByteArray
27−import Data.ByteArray.Encoding
28−import Data.ByteString (ByteString)
29−import Data.ByteString.Builder (Builder)
30−import qualified Data.ByteString.Builder as Build
31−import qualified Data.ByteString.Char8 as BS8
32−import qualified Data.ByteString.Lazy as LBS
33−import Data.Coerce
34−import Data.Default.Class (def)
35−import Data.List (intersperse)
36−import Data.String
37−import qualified Data.Text as Text
38−import qualified Data.Text.Encoding as Text
39−import qualified Data.Text.Lazy as LText
40−import qualified Data.Text.Lazy.Builder as TBuild
41−import qualified Data.Text.Lazy.Encoding as LText
42−import Data.Time
43−import Data.Time.Clock.POSIX
44−import Data.Typeable
45−import Data.X509
46−import Data.X509.Memory
47−import Network.Google.Auth.ServiceAccount
48−import Network.Google.Compute.Metadata
20+import Data.Aeson.Types (parseEither)
21+import qualified Data.ByteString.Lazy as LBS
22+import qualified Data.Text as Text
23+import Network.Google.Compute.Metadata (isGCE)
4924import Network.Google.Internal.Auth
50−import Network.Google.Internal.Logger
51−import Network.Google.Prelude hiding (buildText)
52−import Network.HTTP.Conduit hiding (Request)
53−import qualified Network.HTTP.Conduit as Client
54−import Network.HTTP.Types
55−import System.Directory (doesFileExist,
56− getHomeDirectory)
57−import System.Environment (lookupEnv)
58−import System.FilePath ((</>))
59−import System.Info (os)
25+
26+
27+import Network.HTTP.Conduit (Manager)
28+import System.Directory (doesFileExist,
29+ getHomeDirectory)
30+import System.Environment (lookupEnv)
31+import System.FilePath ((</>))
32+import System.Info (os)
6033
6134-- | The environment variable name which is used to specify the directory
6235-- containing the @application_default_credentials.json@ generated by @gcloud init@.
gogol/src/Network/Google/Auth/InstalledApplication.hs+4−35
@@ -10,45 +10,14 @@
1010
1111module Network.Google.Auth.InstalledApplication where
1212
13−import Control.Applicative
14−import Control.Concurrent
15−import Control.Exception.Lens
16−import Control.Lens hiding (coerce, (.=))
17−import Control.Monad
18−import Control.Monad.Catch
19−import Control.Monad.IO.Class
20−import Crypto.Hash.Algorithms (SHA256 (..))
21−import Crypto.PubKey.RSA.PKCS15 (signSafer)
22−import Crypto.PubKey.RSA.Types (PrivateKey)
23−import Data.Aeson
24−import Data.Aeson.Types
25−import Data.ByteArray
26−import Data.ByteArray.Encoding
27−import Data.ByteString (ByteString)
28−import Data.ByteString.Builder (Builder)
29−import qualified Data.ByteString.Builder as Build
30−import qualified Data.ByteString.Char8 as BS8
31−import qualified Data.ByteString.Lazy as LBS
32−import Data.Coerce
33−import Data.Default.Class (def)
34−import Data.List (intersperse)
35−import Data.String
36−import qualified Data.Text as Text
13+import Control.Monad.Catch (MonadCatch)
14+import Control.Monad.IO.Class (MonadIO)
3715import qualified Data.Text.Encoding as Text
38−import qualified Data.Text.Lazy as LText
39−import qualified Data.Text.Lazy.Builder as TBuild
40−import qualified Data.Text.Lazy.Encoding as LText
41−import Data.Time
42−import Data.Time.Clock.POSIX
43−import Data.Typeable
44−import Data.X509
45−import Data.X509.Memory
4616import Network.Google.Internal.Auth
47−import Network.Google.Internal.Logger
17+import Network.Google.Internal.Logger (Logger)
4818import Network.Google.Prelude
49−import Network.HTTP.Conduit hiding (Request)
19+import Network.HTTP.Conduit (Manager)
5020import qualified Network.HTTP.Conduit as Client
51−import Network.HTTP.Types
5221
5322-- | @urn:ietf:wg:oauth:2.0:oob@.
5423redirectURI :: Text
gogol/src/Network/Google/Auth/Scope.hs+36−75
@@ -1,20 +1,10 @@
1−{-# LANGUAGE ConstraintKinds #-}
2−{-# LANGUAGE DataKinds #-}
3−{-# LANGUAGE DeriveDataTypeable #-}
4−{-# LANGUAGE DeriveGeneric #-}
5−{-# LANGUAGE FlexibleContexts #-}
6−{-# LANGUAGE FlexibleInstances #-}
7−{-# LANGUAGE FunctionalDependencies #-}
8−{-# LANGUAGE GeneralizedNewtypeDeriving #-}
9−{-# LANGUAGE KindSignatures #-}
10−{-# LANGUAGE LambdaCase #-}
11−{-# LANGUAGE OverloadedStrings #-}
12−{-# LANGUAGE PolyKinds #-}
13−{-# LANGUAGE RecordWildCards #-}
14−{-# LANGUAGE ScopedTypeVariables #-}
15−{-# LANGUAGE TypeFamilies #-}
16−{-# LANGUAGE TypeOperators #-}
17−{-# LANGUAGE UndecidableInstances #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE ExplicitNamespaces #-}
3+{-# LANGUAGE PolyKinds #-}
4+{-# LANGUAGE ScopedTypeVariables #-}
5+{-# LANGUAGE TypeFamilies #-}
6+{-# LANGUAGE TypeOperators #-}
7+{-# LANGUAGE UndecidableInstances #-}
188
199-- |
2010-- Module : Network.Google.Auth.Scope
@@ -28,46 +18,15 @@
2818-- from the underlying OS.
2919module Network.Google.Auth.Scope where
3020
31−import Control.Applicative
32−import Control.Concurrent
33−import Control.Exception.Lens
34−import Control.Lens hiding (coerce, (.=))
35−import Control.Monad
36−import Control.Monad.Catch
37−import Control.Monad.IO.Class
38−import Crypto.Hash.Algorithms (SHA256 (..))
39−import Crypto.PubKey.RSA.PKCS15 (signSafer)
40−import Crypto.PubKey.RSA.Types (PrivateKey)
41−import Data.Aeson
42−import Data.Aeson.Types
43−import Data.ByteArray
44−import Data.ByteArray.Encoding
45−import Data.ByteString (ByteString)
46−import Data.ByteString.Builder (Builder)
47−import qualified Data.ByteString.Builder as Build
48−import qualified Data.ByteString.Char8 as BS8
49−import qualified Data.ByteString.Lazy as LBS
50−import Data.Coerce
51−import Data.Default.Class (def)
52−import Data.List
53−import Data.String
54−import qualified Data.Text as Text
55−import qualified Data.Text.Encoding as Text
56−import Data.Time
57−import Data.Time.Clock.POSIX
58−import Data.Type.Bool
59−import Data.Type.Equality
60−import Data.Typeable
61−import Data.X509
62−import Data.X509.Memory
63−import GHC.Exts (Constraint)
64−import GHC.TypeLits
65−import Network.Google.Internal.Auth
66−import Network.Google.Internal.Logger
67−import Network.Google.Prelude
68−import Network.HTTP.Conduit hiding (Proxy)
69−import qualified Network.HTTP.Conduit as Client
70−import Network.HTTP.Types
21+import qualified Data.Text as Text
22+import Data.Type.Bool (type (||))
23+import Data.Type.Equality (type (==))
24+import Data.Typeable (Proxy (..))
25+import GHC.Exts (Constraint)
26+import GHC.TypeLits (KnownSymbol, Symbol, symbolVal)
27+import Network.Google.Internal.Auth (Credentials)
28+import Network.Google.Prelude (GoogleRequest (Ss),
29+ OAuthScope (..))
7130
7231-- | Type-restrict the supplied credentials/whatever to the specific scopes.
7332--
@@ -77,28 +36,34 @@ import Network.HTTP.Types
7736-- This seems sufficiently general, does it already exist?
7837--
7938-- /See:/ '(!)'.
80−authorize :: proxy s -> k s -> k s
81−authorize _ = id
39+allow :: proxy s -> k s -> k s
40+allow _ = id
41+
42+-- | Append the type-level lists of two 'Proxy' values.
43+--
44+-- /See:/ 'allow'.
45+(!) :: proxy xs -> proxy ys -> Proxy (xs ++ ys)
46+(!) _ _ = Proxy
8247
8348-- | Determine if _any_ of the scopes a request requires is a subset
8449-- of the scopes the credentials supports.
8550type family Authorize (s :: [Symbol]) a :: Constraint where
86− -- The use of 'HasScope' will show the reduced failing case,
87− -- and the use of '∈' will give the error context.
88− Authorize s a = HasScope (Ss a) s ∈ s
51+ Authorize s a = HasScope (Ss a ⊆ s) s
8952
9053-- | For error message/presentation purposes, this wraps the result of
91−-- the existence checks below.
92−type family (∈) p s :: Constraint where
93− (∈) 'True s = ()
54+-- the membership checks below. When 'False fails to match, it will show
55+-- the reduced error case for '⊆' compared against the full
56+-- set of scopes the credentials ('s') have.
57+type family HasScope p s :: Constraint where
58+ HasScope 'True s = ()
9459
95−type family HasScope a s where
96− HasScope a (x ': xs) = Elem x a || HasScope a xs
60+type family (⊆) a s where
61+ (⊆) a (x ': xs) = x ∈ a || a ⊆ xs
9762
98−-- | Does 'a :: *' exist in 'b :: [*]'.
99−type family Elem a b where
100− Elem x '[] = 'False
101− Elem x (y ': xs) = x == y || Elem x xs
63+-- | Is 'a :: *' an element of 'b :: [*]'.
64+type family (∈) a b where
65+ (∈) x '[] = 'False
66+ (∈) x (y ': xs) = x == y || x ∈ xs
10267
10368-- | Type-level append.
10469type family (++) xs ys where
@@ -120,7 +85,3 @@ instance (KnownSymbol x, Allow xs) => Allow (x ': xs) where
12085
12186instance Allow s => Allow (Credentials s) where
12287 getScopes _ = getScopes (Proxy :: Proxy s)
123−
124−-- | Append the types of two 'Proxy' values.
125−(!) :: proxy xs -> proxy ys -> Proxy (xs ++ ys)
126−(!) _ _ = Proxy
gogol/src/Network/Google/Auth/ServiceAccount.hs+1−30
@@ -7,54 +7,25 @@
77-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
88-- Stability : provisional
99-- Portability : non-portable (GHC extensions)
10−
10+--
1111module Network.Google.Auth.ServiceAccount where
1212
13−import Control.Applicative
14−import Control.Concurrent
15−import Control.Exception.Lens
16−import Control.Lens hiding (coerce, (.=))
17−import Control.Monad
1813import Control.Monad.Catch
1914import Control.Monad.IO.Class
2015import Crypto.Hash.Algorithms (SHA256 (..))
2116import Crypto.PubKey.RSA.PKCS15 (signSafer)
22−import Crypto.PubKey.RSA.Types (PrivateKey)
2317import Data.Aeson
24−import Data.Aeson.Types
25−import Data.ByteArray
26−import Data.ByteArray.Encoding
2718import Data.ByteString (ByteString)
28−import Data.ByteString.Builder (Builder)
29−import qualified Data.ByteString.Builder as Build
3019import qualified Data.ByteString.Char8 as BS8
31−import qualified Data.ByteString.Lazy as LBS
32−import Data.Coerce
33−import Data.Default.Class (def)
34−import Data.List (intersperse)
35−import Data.String
3620import qualified Data.Text as Text
3721import qualified Data.Text.Encoding as Text
38−import qualified Data.Text.Lazy as LText
39−import qualified Data.Text.Lazy.Builder as TBuild
40−import qualified Data.Text.Lazy.Encoding as LText
41−import Data.Time
4222import Data.Time.Clock.POSIX
43−import Data.Typeable
44−import Data.X509
45−import Data.X509.Memory
4623import Network.Google.Compute.Metadata
4724import Network.Google.Internal.Auth
4825import Network.Google.Internal.Logger
4926import Network.Google.Prelude hiding (buildText)
5027import Network.HTTP.Conduit hiding (Request)
5128import qualified Network.HTTP.Conduit as Client
52−import Network.HTTP.Types
53−import System.Directory (doesFileExist,
54− getHomeDirectory)
55−import System.Environment (lookupEnv)
56−import System.FilePath ((</>))
57−import System.Info (os)
5829
5930-- | The maximum lifetime of a @service_account@ token which is 1 hour, in seconds.
6031maxTokenLifetime :: Seconds
gogol/src/Network/Google/Compute/Metadata.hs+13−15
@@ -40,8 +40,8 @@ module Network.Google.Compute.Metadata
4040 ) where
4141
4242import Control.Monad.Catch
43−import Control.Monad.IO.Class
44−import Data.Aeson
43+import Control.Monad.IO.Class (MonadIO (..))
44+import Data.Aeson (eitherDecode')
4545import Data.ByteString (ByteString)
4646import qualified Data.ByteString.Lazy as LBS
4747import Data.Char (toLower)
@@ -49,12 +49,10 @@ import Data.Default.Class (def)
4949import qualified Data.Text.Encoding as Text
5050import qualified Data.Text.Lazy as LText
5151import qualified Data.Text.Lazy.Encoding as LText
52−import Network.Google.Prelude
53−import Network.HTTP.Conduit (HttpException (..), Manager, httpLbs,
54− responseBody, responseHeaders,
55− responseStatus)
52+import Network.Google.Prelude (Text, (<>))
53+import Network.HTTP.Conduit (HttpException (..), Manager)
5654import qualified Network.HTTP.Conduit as Client
57−import Network.HTTP.Types
55+import Network.HTTP.Types (HeaderName)
5856import System.Environment (lookupEnv)
5957
6058-- | @NO_GCE_CHECK@.
@@ -77,15 +75,15 @@ isGCE :: MonadIO m => Manager -> m Bool
7775isGCE m = liftIO $ do
7876 p <- check <$> lookupEnv checkGCEVar
7977 if p
80− then (success <$> httpLbs rq m) `catch` failure
78+ then (success <$> Client.httpLbs rq m) `catch` failure
8179 else pure False
8280 where
8381 check Nothing = True
8482 check (Just x) = map toLower x `notElem` ["1", "true", "yes", "on"]
8583
8684 success rs =
87− fromEnum (responseStatus rs) == 200
88− && (lookup metadataFlavorHeader (responseHeaders rs)
85+ fromEnum (Client.responseStatus rs) == 200
86+ && (lookup metadataFlavorHeader (Client.responseHeaders rs)
8987 == Just metadataFlavorDesired)
9088
9189 failure :: HttpException -> IO Bool
@@ -153,7 +151,7 @@ getMachineType = metadataText "instance/machine-type"
153151getTags :: MonadIO m => Manager -> m [Text]
154152getTags m = do
155153 rs <- metadata "instance/tags" [] m
156− case eitherDecode' (responseBody rs) of
154+ case eitherDecode' (Client.responseBody rs) of
157155 Left _ -> pure []
158156 Right xs -> pure xs
159157
@@ -208,15 +206,15 @@ metadataMaybe :: MonadIO m
208206 -> m (Maybe LBS.ByteString)
209207metadataMaybe path m = do
210208 rs <- metadata path [404] m
211− if fromEnum (responseStatus rs) == 404
209+ if fromEnum (Client.responseStatus rs) == 404
212210 then pure Nothing
213− else pure $ Just (responseBody rs)
211+ else pure $ Just (Client.responseBody rs)
214212
215213metadataText :: MonadIO m
216214 => ByteString
217215 -> Manager
218216 -> m Text
219−metadataText path m = LText.toStrict . LText.decodeUtf8 . responseBody
217+metadataText path m = LText.toStrict . LText.decodeUtf8 . Client.responseBody
220218 <$> metadata path [] m
221219
222220metadata :: MonadIO m
@@ -225,7 +223,7 @@ metadata :: MonadIO m
225223 -> Manager
226224 -> m (Client.Response LBS.ByteString)
227225metadata path ss m =
228− liftIO . flip httpLbs m $ metadataRequest
226+ liftIO . flip Client.httpLbs m $ metadataRequest
229227 { Client.path = "/computeMetadata/v1/" <> path
230228 , Client.checkStatus = \s hs cj ->
231229 let c = fromEnum s
gogol/src/Network/Google/Env.hs+8−10
@@ -15,17 +15,15 @@
1515-- Environment and Google specific configuration for the 'Network.Google' monad.
1616module Network.Google.Env where
1717
18−import Control.Lens
19−import Control.Monad.Catch
20−import Control.Monad.IO.Class
21−import Control.Monad.Reader
22−import Data.Function (on)
23−import Data.Monoid
24−import GHC.TypeLits
18+import Control.Lens (Lens', lens, (<>~), (?~))
19+import Control.Monad.Catch (MonadCatch)
20+import Control.Monad.IO.Class (MonadIO (..))
21+import Control.Monad.Reader (MonadReader (local))
22+import Data.Function (on)
23+import Data.Monoid (Dual (..), Endo (..))
24+import GHC.TypeLits (Symbol)
2525import Network.Google.Auth
26−import Network.Google.Auth.ApplicationDefault
27−import Network.Google.Internal.Auth
28−import Network.Google.Internal.Logger
26+import Network.Google.Internal.Logger (Logger)
2927import Network.Google.Types
3028import Network.HTTP.Conduit
3129
gogol/src/Network/Google/Internal/Auth.hs+26−47
@@ -7,11 +7,7 @@
77{-# LANGUAGE KindSignatures #-}
88{-# LANGUAGE LambdaCase #-}
99{-# LANGUAGE OverloadedStrings #-}
10−{-# LANGUAGE PolyKinds #-}
1110{-# LANGUAGE ScopedTypeVariables #-}
12−{-# LANGUAGE TypeFamilies #-}
13−{-# LANGUAGE TypeOperators #-}
14−{-# LANGUAGE UndecidableInstances #-}
1511
1612-- |
1713-- Module : Network.Google.Internal.Auth
@@ -23,51 +19,34 @@
2319
2420module Network.Google.Internal.Auth where
2521
26−import Control.Applicative
27−import Control.Concurrent
28−import Control.Exception.Lens
29−import Control.Lens hiding (coerce, (.=))
30−import Control.Monad
22+import Control.Exception.Lens (exception)
23+import Control.Lens (Prism', prism, (<&>))
3124import Control.Monad.Catch
32−import Control.Monad.IO.Class
33−import Crypto.Hash.Algorithms (SHA256 (..))
34−import Crypto.PubKey.RSA.PKCS15 (signSafer)
35−import Crypto.PubKey.RSA.Types (PrivateKey)
25+import Control.Monad.IO.Class (MonadIO (..))
26+import Crypto.PubKey.RSA.Types (PrivateKey)
3627import Data.Aeson
37−import Data.Aeson.Types
38−import Data.ByteArray
28+import Data.Aeson.Types (Pair)
29+import Data.ByteArray (ByteArray)
3930import Data.ByteArray.Encoding
40−import Data.ByteString (ByteString)
41−import Data.ByteString.Builder (Builder)
42−import qualified Data.ByteString.Builder as Build
43−import qualified Data.ByteString.Char8 as BS8
44−import qualified Data.ByteString.Lazy as LBS
45−import Data.Coerce
46−import Data.Default.Class (def)
47−import Data.List (intersperse)
48−import Data.Monoid
49−import Data.String
50−import Data.Text (Text)
51−import qualified Data.Text as Text
52−import qualified Data.Text.Encoding as Text
53−import qualified Data.Text.Lazy as LText
54−import qualified Data.Text.Lazy.Builder as TBuild
55−import qualified Data.Text.Lazy.Encoding as LText
31+import Data.ByteString (ByteString)
32+import Data.ByteString.Builder ()
33+import qualified Data.ByteString.Char8 as BS8
34+import qualified Data.ByteString.Lazy as LBS
35+import Data.Coerce (coerce)
36+import Data.Default.Class (def)
37+import Data.String (IsString)
38+import qualified Data.Text as Text
39+import qualified Data.Text.Encoding as Text
5640import Data.Time
57−import Data.Time.Clock.POSIX
58−import Data.Type.Bool
59−import Data.Type.Equality
60−import Data.Typeable
61−import Data.X509
62−import Data.X509.Memory
63−import GHC.Exts (Constraint)
64−import GHC.TypeLits
65−import Network.Google.Compute.Metadata
41+import Data.X509 (PrivKey (..))
42+import Data.X509.Memory (readKeyFileFromMemory)
43+import GHC.TypeLits (Symbol)
6644import Network.Google.Internal.Logger
6745import Network.Google.Prelude
68−import Network.HTTP.Conduit hiding (Proxy, Request)
69−import qualified Network.HTTP.Conduit as Client
70−import Network.HTTP.Types
46+import Network.HTTP.Conduit (HttpException, Manager)
47+import qualified Network.HTTP.Conduit as Client
48+import Network.HTTP.Types (Status, hContentType,
49+ urlEncode)
7150
7251-- | The supported credential mechanisms.
7352data Credentials (s :: [Symbol])
@@ -294,10 +273,10 @@ refreshRequest :: (MonadIO m, MonadCatch m)
294273refreshRequest rq l m = do
295274 logDebug l rq -- debug:ClientRequest
296275
297− rs <- liftIO (httpLbs rq m) `catch` (throwM . RetrievalError)
276+ rs <- liftIO (Client.httpLbs rq m) `catch` (throwM . RetrievalError)
298277
299− let bs = responseBody rs
300− s = responseStatus rs
278+ let bs = Client.responseBody rs
279+ s = Client.responseStatus rs
301280
302281 logDebug l rs -- debug:ClientResponse
303282 logTrace l $ "[Response Body]\n" <> bs -- trace:ResponseBody
@@ -351,4 +330,4 @@ concatScopes :: [OAuthScope] -> Text
351330concatScopes = Text.intercalate " " . coerce
352331
353332textBody :: Text -> RequestBody
354−textBody = RequestBodyBS . Text.encodeUtf8
333+textBody = Client.RequestBodyBS . Text.encodeUtf8
gogol/src/Network/Google/Internal/Body.hs+3−3
@@ -7,9 +7,9 @@
77-- Portability : non-portable (GHC extensions)
88module Network.Google.Internal.Body where
99
10−import Control.Monad.IO.Class
11−import Data.Conduit.Binary
12−import Network.HTTP.Conduit
10+import Control.Monad.IO.Class (MonadIO (..))
11+import Data.Conduit.Binary (sourceFile)
12+import Network.HTTP.Conduit (RequestBody, requestBodySource)
1313import System.IO
1414
1515-- | Convenience function for obtaining the size of a file.
gogol/src/Network/Google/Internal/HTTP.hs+8−9
@@ -15,25 +15,24 @@
1515--
1616module Network.Google.Internal.HTTP where
1717
18−import Control.Lens
18+import Control.Lens ((%~), (&))
1919import Control.Monad.Catch
20−import Control.Monad.IO.Class
21−import Control.Monad.Trans.Resource
22−import Data.Default.Class
23−import Data.Monoid
20+import Control.Monad.IO.Class (MonadIO)
21+import Control.Monad.Trans.Resource (MonadResource (..))
22+import Data.Default.Class (Default (..))
23+import Data.Monoid (Dual (..), Endo (..), (<>))
2424import qualified Data.Text.Encoding as Text
2525import qualified Data.Text.Lazy as LText
2626import qualified Data.Text.Lazy.Builder as Build
2727import GHC.Exts (toList)
28−import GHC.TypeLits
29−import Network.Google.Auth
28+import Network.Google.Auth (Allow, authorize)
3029import Network.Google.Env (Env (..))
31−import Network.Google.Internal.Logger
30+import Network.Google.Internal.Logger (logDebug)
3231import Network.Google.Internal.Multipart
3332import Network.Google.Types
3433import qualified Network.HTTP.Client.Conduit as Client
3534import Network.HTTP.Conduit
36−import Network.HTTP.Media
35+import Network.HTTP.Media (RenderHeader (..))
3736import Network.HTTP.Types
3837
3938-- FIXME: "mediaType" param also comes/calculated from the request body?
gogol/src/Network/Google/Internal/Logger.hs+5−6
@@ -32,8 +32,8 @@ module Network.Google.Internal.Logger
3232 , buildLines
3333 ) where
3434
35−import Control.Monad
36−import Control.Monad.IO.Class
35+import Control.Monad (when)
36+import Control.Monad.IO.Class (MonadIO (..))
3737import Data.ByteString (ByteString)
3838import qualified Data.ByteString as BS
3939import Data.ByteString.Builder (Builder)
@@ -42,18 +42,17 @@ import qualified Data.ByteString.Lazy as LBS
4242import qualified Data.ByteString.Lazy.Builder as Build
4343import Data.CaseInsensitive (CI)
4444import qualified Data.CaseInsensitive as CI
45−import Data.Int
45+import Data.Int (Int16, Int8)
4646import Data.List (intersperse)
47−import Data.Monoid
4847import qualified Data.Text as Text
4948import qualified Data.Text.Encoding as Text
5049import qualified Data.Text.Lazy as LText
5150import qualified Data.Text.Lazy.Encoding as LText
52−import Data.Word
51+import Data.Word (Word16)
5352import Network.Google.Prelude hiding (Header, Request)
5453import Network.HTTP.Conduit
5554import Network.HTTP.Types
56−import Numeric
55+import Numeric (showFFloat)
5756import System.IO
5857
5958-- | A function threaded through various request and serialisation routines
gogol/src/Network/Google/Internal/Multipart.hs+8−8
@@ -10,17 +10,17 @@
1010--
1111module Network.Google.Internal.Multipart where
1212
13−import Control.Monad.IO.Class
13+import Control.Monad.IO.Class (MonadIO (..))
1414import Data.ByteString (ByteString)
15−import qualified Data.ByteString as BS
16−import Data.ByteString.Builder.Extra
17−import qualified Data.CaseInsensitive as CI
18−import Data.Monoid
19−import Network.Google.Types
15+import qualified Data.ByteString as BS
16+import Data.ByteString.Builder.Extra (byteStringCopy)
17+import qualified Data.CaseInsensitive as CI
18+import Data.Monoid ((<>))
19+import Network.Google.Types (Part (..))
2020import Network.HTTP.Client
2121import Network.HTTP.Client.MultipartFormData (webkitBoundary)
22−import Network.HTTP.Media
23−import Network.HTTP.Types
22+import Network.HTTP.Media (RenderHeader(..))
23+import Network.HTTP.Types (Header, hContentType)
2424
2525-- POST /upload/drive/v2/files?uploadType=multipart HTTP/1.1
2626-- Host: www.googleapis.com