@@ -76,10 +76,6 @@ newtype OAuthToken = OAuthToken Text
7676instance ToText OAuthToken where
7777 toText (OAuthToken t) = "Bearer " <> t
7878
79−class GoogleAuth a where
80− _AuthKey :: Traversal' a AuthKey
81− _AuthToken :: Traversal' a OAuthToken
82−
8379newtype MediaDownload a = MediaDownload a
8480
8581_MediaDownload :: Iso' (MediaDownload a) a
@@ -117,7 +113,6 @@ data SerializeError = SerializeError'
117113 { _serializeId :: !ServiceId
118114 , _serializeHeaders :: [HTTP.Header]
119115 , _serializeStatus :: !Status
120− , _serializeMedia :: !MediaType
121116 , _serializeMessage :: String
122117 } deriving (Eq, Show, Typeable)
123118
@@ -125,8 +120,7 @@ data ServiceError = ServiceError'
125120 { _serviceId :: !ServiceId
126121 , _serviceStatus :: !Status
127122 , _serviceHeaders :: [HTTP.Header]
128− , _serviceMedia :: !MediaType
129− , _serviceBody :: LBS.ByteString
123+ , _serviceBody :: Maybe LBS.ByteString
130124 } deriving (Eq, Show, Typeable)
131125
132126class AsError a where
@@ -169,8 +163,6 @@ data Service = Service
169163 , _svcPort :: !Int
170164 , _svcSecure :: !Bool
171165 , _svcTimeout :: !(Maybe Seconds)
172− , _svcCheck :: !(Status -> Bool)
173− , _svcRetry :: !(ServiceError -> Bool)
174166 }
175167
176168-- | An intermediary request builder.
@@ -205,7 +197,7 @@ setBody rq c x = rq { _rqBody = Just (c, x) }
205197data Client a = Client
206198 { _cliAccept :: Maybe MediaType
207199 , _cliMethod :: Method
208− , _cliCheck :: Int -> Bool
200+ , _cliCheck :: Status -> Bool
209201 , _cliService :: Service
210202 , _cliRequest :: Request
211203 , _cliResponse :: Stream -> ResourceT IO (Either SerializeError a)
@@ -237,7 +229,7 @@ client :: (Stream -> ResourceT IO (Either SerializeError a))
237229client f cs m ns rq s = Client
238230 { _cliAccept = cs
239231 , _cliMethod = m
240− , _cliCheck = (`elem` ns)
232+ , _cliCheck = (`elem` ns) . fromEnum
241233 , _cliService = s
242234 , _cliRequest = rq
243235 , _cliResponse = f
@@ -275,7 +267,11 @@ instance FromJSON a => FromStream JSON a where
275267 Left e -> undefined
276268 Right x -> pure (Right x)
277269
278−class GoogleRequest a where
270+class GoogleAuth a where
271+ _AuthKey :: Traversal' a AuthKey
272+ _AuthToken :: Traversal' a OAuthToken
273+
274+class GoogleAuth a => GoogleRequest a where
279275 type Rs a :: *
280276
281277 requestClient :: a -> Client (Rs a)