Skip to content

Commit df8d5eb

Browse files
committed
append_added_but_not_tested
1 parent 844c1db commit df8d5eb

File tree

1 file changed

+55
-6
lines changed

1 file changed

+55
-6
lines changed

sheets/src/eg_sheets_api.e

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)