google-translate 0.2 → 0.3
raw patch · 2 files changed
+32/−11 lines, 2 filesdep ~http-api-datadep ~http-clientdep ~servantPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: http-api-data, http-client, servant, servant-client
API changes (from Hackage documentation)
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.Confidence
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.Detection
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.DetectionResponse
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.IsReliable
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.Lang
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.Language
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.LanguageName
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.LanguageResponse
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.TranslatedText
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.Translation
- Web.Google.Translate: instance Data.Aeson.Types.Class.FromJSON Web.Google.Translate.TranslationResponse
- Web.Google.Translate: instance Data.Aeson.Types.Class.ToJSON Web.Google.Translate.Lang
- Web.Google.Translate: instance Web.HttpApiData.Internal.FromHttpApiData Web.Google.Translate.Body
- Web.Google.Translate: instance Web.HttpApiData.Internal.FromHttpApiData Web.Google.Translate.Key
- Web.Google.Translate: instance Web.HttpApiData.Internal.FromHttpApiData Web.Google.Translate.TranslatedText
- Web.Google.Translate: instance Web.HttpApiData.Internal.ToHttpApiData Web.Google.Translate.Body
- Web.Google.Translate: instance Web.HttpApiData.Internal.ToHttpApiData Web.Google.Translate.Key
- Web.Google.Translate: instance Web.HttpApiData.Internal.ToHttpApiData Web.Google.Translate.Lang
- Web.Google.Translate: instance Web.HttpApiData.Internal.ToHttpApiData Web.Google.Translate.Source
- Web.Google.Translate: instance Web.HttpApiData.Internal.ToHttpApiData Web.Google.Translate.Target
- Web.Google.Translate: instance Web.HttpApiData.Internal.ToHttpApiData Web.Google.Translate.TranslatedText
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Confidence
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Detection
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.DetectionResponse
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.IsReliable
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Lang
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Language
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.LanguageName
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.LanguageResponse
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.TranslatedText
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Translation
+ Web.Google.Translate: instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.TranslationResponse
+ Web.Google.Translate: instance Data.Aeson.Types.ToJSON.ToJSON Web.Google.Translate.Lang
+ Web.Google.Translate: instance Web.Internal.HttpApiData.FromHttpApiData Web.Google.Translate.Body
+ Web.Google.Translate: instance Web.Internal.HttpApiData.FromHttpApiData Web.Google.Translate.Key
+ Web.Google.Translate: instance Web.Internal.HttpApiData.FromHttpApiData Web.Google.Translate.TranslatedText
+ Web.Google.Translate: instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Body
+ Web.Google.Translate: instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Key
+ Web.Google.Translate: instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Lang
+ Web.Google.Translate: instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Source
+ Web.Google.Translate: instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Target
+ Web.Google.Translate: instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.TranslatedText
Files
- google-translate.cabal +6/−5
- src/Web/Google/Translate.hs +26/−6
google-translate.cabal view
@@ -1,5 +1,5 @@ name: google-translate-version: 0.2+version: 0.3 synopsis: Google Translate API bindings license: BSD3 license-file: LICENSE@@ -16,15 +16,16 @@ library exposed-modules: Web.Google.Translate+ ghc-options: -Wall hs-source-dirs: src build-depends: aeson , base >= 4.7 && < 5 , bytestring == 0.10.* , transformers >= 0.4 && < 0.6- , http-api-data == 0.2.*- , http-client == 0.4.*- , servant == 0.7.*- , servant-client == 0.7.*+ , http-api-data >= 0.2 && < 0.4+ , http-client >= 0.4 && < 0.6+ , servant >= 0.7 && < 0.10+ , servant-client >= 0.7 && < 0.10 , text == 1.2.* default-language: Haskell2010
src/Web/Google/Translate.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-}@@ -168,33 +169,50 @@ -> Maybe Source -> Maybe Target -> Maybe Body+#if !(MIN_VERSION_servant_client(0,9,0)) -> Manager -> BaseUrl- -> ExceptT ServantError IO TranslationResponse+#endif+ -> ClientM TranslationResponse detect' :: Maybe Key -> Maybe Body+#if !(MIN_VERSION_servant_client(0,9,0)) -> Manager -> BaseUrl- -> ExceptT ServantError IO DetectionResponse+#endif+ -> ClientM DetectionResponse getLanguages' :: Maybe Key -> Maybe Target+#if !(MIN_VERSION_servant_client(0,9,0)) -> Manager -> BaseUrl- -> ExceptT ServantError IO LanguageResponse+#endif+ -> ClientM LanguageResponse translate' :<|> detect' :<|> getLanguages' = client api ------------------------------------------------------------------------------ googleApis :: BaseUrl googleApis = BaseUrl Https "www.googleapis.com" 443 "/" ------------------------------------------------------------------------------+-- compatability for servant-client 0.7 and 0.8:+#if !(MIN_VERSION_servant_client(0,9,0))+data ClientEnv = ClientEnv Manager BaseUrl+runClientM+ :: (Manager -> BaseUrl -> ExceptT e m a)+ -> ClientEnv -> m (Either e a)+runClientM a (ClientEnv mgr baseurl) = runExceptT (a mgr baseurl)+#endif+------------------------------------------------------------------------------ -- | Detect target language detect :: Manager -> Key -> Body -> IO (Either ServantError DetectionResponse)-detect mgr key body = runExceptT $ detect' (Just key) (Just body) mgr googleApis+detect mgr key body =+ runClientM (detect' (Just key) (Just body))+ (ClientEnv mgr googleApis) ------------------------------------------------------------------------------ -- | Perform translation from `Source` language to `Target` langauge. -- If `Source` not specified, attempt detection of `Lang`@@ -206,7 +224,8 @@ -> Body -> IO (Either ServantError TranslationResponse) translate mgr key src trgt body =- runExceptT $ translate' (Just key) src (Just trgt) (Just body) mgr googleApis+ runClientM (translate' (Just key) src (Just trgt) (Just body))+ (ClientEnv mgr googleApis) ------------------------------------------------------------------------------ -- | Retrieve all languages -- If `Target` specified, return langauge name in `Target` langauge.@@ -216,7 +235,8 @@ -> Maybe Target -> IO (Either ServantError LanguageResponse) getLanguages mgr key trgt =- runExceptT $ getLanguages' (Just key) trgt mgr googleApis+ runClientM (getLanguages' (Just key) trgt)+ (ClientEnv mgr googleApis) ------------------------------------------------------------------------------ instance Show Lang where show Afrikaans = "af"