@@ -74,15 +74,15 @@ feature -- Spreedsheets Operations
7474 not a_spreadsheet_id .is_empty
7575 local
7676 l_file : PLAIN_TEXT_FILE
77- l_params : STRING_TABLE [STRING ]
77+ l_qry_params : STRING_TABLE [STRING ]
7878 do
7979
80- logger .write_information (" Now getting sheet from id:" + a_spreadsheet_id )
81- create l_params .make (2 )
82- l_params .extend (" true" , " includeGridData" ) -- all content
80+ logger .write_information (" get_from_id-> Now getting sheet from id:" + a_spreadsheet_id )
81+ create l_qry_params .make (2 )
82+ l_qry_params .extend (" true" , " includeGridData" ) -- all content
8383-- l_params.extend ("sheets.properties", "fields") -- properties only
8484
85- api_get_call (sheets_url (" spreadsheets/" + a_spreadsheet_id , Void ), l_params )
85+ api_get_call (sheets_url (" spreadsheets/" + a_spreadsheet_id , Void ), l_qry_params )
8686 check
8787 attached last_response as l_response and then
8888 attached l_response .body as l_body
@@ -91,7 +91,7 @@ feature -- Spreedsheets Operations
9191 if l_response .status = {HTTP_STATUS_CODE }.ok then
9292 Result := l_body
9393
94- create l_file .make_create_read_write (" /tmp/hitme_sheet_json.json" )
94+ create l_file .make_create_read_write (" /tmp/hitme_sheet_json-get_from_id .json" )
9595 logger .write_information (" get_from_id->Writing body into " + l_file .path .utf_ 8 _name )
9696 l_file .close
9797 l_file .wipe_out
@@ -104,7 +104,56 @@ feature -- Spreedsheets Operations
104104 else
105105 logger .write_error (" get_from_id-> Status code invalid:" + l_response .status .out + " %NBody: " + l_body )
106106 end
107+ end
108+ end
109+
110+ append (a_spreadsheet_id : attached like spreadsheet_id ; a_data_line : ARRAY [STRING ]): detachable like last_response .body
111+ note
112+ EIS :" name=append.spreedsheets" , " src=https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append" , " protocol=uri"
113+ require
114+ not a_spreadsheet_id .is_empty
115+ local
116+ l_file : PLAIN_TEXT_FILE
117+ l_range ,
118+ l_path_params_s : STRING
119+ l_qry_params : STRING_TABLE [STRING ]
120+ do
121+ l_range := " "
122+ logger .write_information (" append-> spreadsheed_id:" + a_spreadsheet_id )
123+ -- path params
124+ l_path_params_s := a_spreadsheet_id
125+ l_path_params_s .append (" /values/{" ) -- spreadsheets/{spreadsheetId}/values/{range}:append
126+ l_path_params_s .append (" " ) -- range ex. A1:B2 or namedRanges TRY: last not null index could be: =index(J:J,max(row(J:J)*(J:J<>"")))
127+ l_path_params_s .append (" }:append" )
128+ -- qry params
129+ create l_qry_params .make (2 )
130+ l_qry_params .extend (" RAW" , " valueInputOption" ) -- INPUT_VALUE_OPTION_UNSPECIFIED|RAW|USER_ENTERED https://developers.google.com/sheets/api/reference/rest/v4/ValueInputOption
131+ l_qry_params .extend (" INSERT_ROWS" , " insertDataOption" ) -- OVERWRITE|INSERT_ROWS https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append#InsertDataOption
132+ l_qry_params .extend (" true" , " includeValuesInResponse" ) -- BOOLEAN
133+ l_qry_params .extend (" true" , " responseValueRenderOption" ) -- FORMATTED_VALUE| https://developers.google.com/sheets/api/reference/rest/v4/ValueRenderOption
134+
135+ api_get_call (sheets_url (" spreadsheets/" + l_path_params_s , Void ), l_qry_params )
136+ check
137+ attached last_response as l_response and then
138+ attached l_response .body as l_body
139+ then
140+ parse_last_response
141+ if l_response .status = {HTTP_STATUS_CODE }.ok then
142+ Result := l_body
143+
144+ create l_file .make_create_read_write (" /tmp/hitme_sheet_json-append.json" )
145+ logger .write_information (" get_from_id->Writing body into " + l_file .path .utf_ 8 _name )
146+ l_file .close
147+ l_file .wipe_out
148+ l_file .open_append
107149
150+ l_file .put_string (l_body )
151+ l_file .close
152+ elseif l_response .status = {HTTP_STATUS_CODE }.not_found then
153+ logger .write_error (" get_from_id-> Not found:" + l_response .status .out + " %NBody: " + l_body )
154+ else
155+ logger .write_error (" get_from_id-> Status code invalid:" + l_response .status .out + " %NBody: " + l_body )
156+ end
108157 end
109158 end
110159
0 commit comments