From 448f307cb5f88ae171680442589e1d19d9a4e189 Mon Sep 17 00:00:00 2001 From: Ajit Thakor <49403056+athakor@users.noreply.github.com> Date: Fri, 17 Jul 2020 00:38:04 +0530 Subject: [PATCH] fix: use rest api for detect and listSupportedLanguages (#243) Fixes #241 --- .../translate/spi/v2/HttpTranslateRpc.java | 48 ++++--------------- 1 file changed, 10 insertions(+), 38 deletions(-) diff --git a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java index 80594855..3a071715 100644 --- a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java +++ b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java @@ -19,15 +19,11 @@ import static com.google.common.base.MoreObjects.firstNonNull; import com.google.api.client.http.GenericUrl; -import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.http.HttpTransport; -import com.google.api.client.http.json.JsonHttpContent; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.services.translate.Translate; -import com.google.api.services.translate.model.DetectionsListResponse; import com.google.api.services.translate.model.DetectionsResourceItems; -import com.google.api.services.translate.model.LanguagesListResponse; import com.google.api.services.translate.model.LanguagesResource; import com.google.api.services.translate.model.TranslationsResource; import com.google.cloud.http.HttpTransportOptions; @@ -35,7 +31,6 @@ import com.google.cloud.translate.TranslateOptions; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import java.io.IOException; import java.util.List; @@ -73,20 +68,8 @@ private GenericUrl buildTargetUrl(String path) { @Override public List> detect(List texts) { try { - Map content = ImmutableMap.of("q", texts); - HttpRequest httpRequest = - translate - .getRequestFactory() - .buildPostRequest( - buildTargetUrl("detect"), - new JsonHttpContent(translate.getJsonFactory(), content)) - .setParser(translate.getObjectParser()); List> detections = - httpRequest.execute().parseAs(DetectionsListResponse.class).getDetections(); - // TODO use REST apiary as soon as it supports POST - // List> detections = - // - // translate.detections().list(texts).setKey(options.getApiKey()).execute().getDetections(); + translate.detections().list(texts).setKey(options.getApiKey()).execute().getDetections(); return detections != null ? detections : ImmutableList.>of(); } catch (IOException ex) { throw translate(ex); @@ -96,27 +79,16 @@ public List> detect(List texts) { @Override public List listSupportedLanguages(Map optionMap) { try { - Map content = - ImmutableMap.of( - "target", - firstNonNull( - Option.TARGET_LANGUAGE.getString(optionMap), options.getTargetLanguage())); - HttpRequest httpRequest = - translate - .getRequestFactory() - .buildPostRequest( - buildTargetUrl("languages"), - new JsonHttpContent(translate.getJsonFactory(), content)) - .setParser(translate.getObjectParser()); List languages = - httpRequest.execute().parseAs(LanguagesListResponse.class).getLanguages(); - // TODO use REST apiary as soon as it supports POST - // List languages = translate.languages() - // .list() - // .setKey(options.getApiKey()) - // .setTarget( - // firstNonNull(TARGET_LANGUAGE.getString(optionMap), options.getTargetLanguage())) - // .execute().getLanguages(); + translate + .languages() + .list() + .setKey(options.getApiKey()) + .setTarget( + firstNonNull( + Option.TARGET_LANGUAGE.getString(optionMap), options.getTargetLanguage())) + .execute() + .getLanguages(); return languages != null ? languages : ImmutableList.of(); } catch (IOException ex) { throw translate(ex);