You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2022/09/03 12:29:00 UTC

[jira] [Updated] (CAMEL-18078) CamelGoogleSheets.valueInputOption not documented for google-sheets://data/append

     [ https://issues.apache.org/jira/browse/CAMEL-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen updated CAMEL-18078:
--------------------------------
    Fix Version/s: 3.x

> CamelGoogleSheets.valueInputOption not documented for google-sheets://data/append
> ---------------------------------------------------------------------------------
>
>                 Key: CAMEL-18078
>                 URL: https://issues.apache.org/jira/browse/CAMEL-18078
>             Project: Camel
>          Issue Type: Improvement
>          Components: google-sheets
>            Reporter: Peter Palaga
>            Priority: Minor
>             Fix For: 3.x
>
>
> Having a route like the following 
> {code}
>         from("timer:tick?period=3s").setBody().constant("foobar")
>                 .log("${body}")
>                 .process(exchange -> {
>                     final Message m = exchange.getMessage();
>                     //m.setHeader("CamelGoogleSheets.valueInputOption", "RAW");
>                     m.setHeader("CamelGoogleSheets.values",
>                             new ValueRange().setValues(
>                                     Arrays.asList(
>                                             Arrays.asList(
>                                                     m.getBody(String.class)))));
>                 })
>                 .to("google-sheets://data/append?spreadsheetId={{google-sheets.spreadsheet-id}}&range=Sheet1!A1:A1");
> {code}
> results in the following exception unless one uncomments {{m.setHeader("CamelGoogleSheets.valueInputOption", "RAW")}}:
> {code}
> org.apache.camel.RuntimeCamelException: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
> POST https://sheets.googleapis.com/v4/spreadsheets/12dtOvsosJ4l1vIfLRqD8bZXyzLk0iGI4ENzN6qi_ys8/values/Sheet1!A1:A1:append
> {
>   "code" : 400,
>   "errors" : [ {
>     "domain" : "global",
>     "message" : "'valueInputOption' is required but not specified",
>     "reason" : "badRequest"
>   } ],
>   "message" : "'valueInputOption' is required but not specified",
>   "status" : "INVALID_ARGUMENT"
> }
>         at org.apache.camel.component.google.sheets.GoogleSheetsProducer.doInvokeMethod(GoogleSheetsProducer.java:51)
>         at org.apache.camel.support.component.AbstractApiProducer$1.run(AbstractApiProducer.java:89)
>         at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>         at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
>         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
> POST https://sheets.googleapis.com/v4/spreadsheets/12dtOvsosJ4l1vIfLRqD8bZXyzLk0iGI4ENzN6qi_ys8/values/Sheet1!A1:A1:append
> {
>   "code" : 400,
>   "errors" : [ {
>     "domain" : "global",
>     "message" : "'valueInputOption' is required but not specified",
>     "reason" : "badRequest"
>   } ],
>   "message" : "'valueInputOption' is required but not specified",
>   "status" : "INVALID_ARGUMENT"
> }
>         at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
>         at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:118)
>         at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:37)
>         at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:428)
>         at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1111)
>         at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:514)
>         at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:455)
>         at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:565)
>         at org.apache.camel.component.google.sheets.GoogleSheetsProducer.doInvokeMethod(GoogleSheetsProducer.java:49)
>         ... 7 more
> {code}
> It would be nice to document the header around here: https://camel.apache.org/components/latest/google-sheets-component.html#_api_data_method_append
> Possible values are {{RAW}} and {{USER_ENTERED}}.
> Also, I wonder whether the {{valueInputOption}} could be made an uri/component parameter, so that {{to("google-sheets://data/append?valueInputOption=RAW}} in DSL and {{camel.component.google-sheets.value-input-option=RAW}} in {{application.properties}} become possible?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)