@@ -19,19 +19,16 @@ feature -- {NONE}
1919 do
2020 -- TODO improve this code so we can select which integration test we want to run.
2121 logger .write_information (" make-> ======================> Starting application" )
22-
23- set_from_json_credentials_file_path (create {PATH }.make_from_string (CREDENTIALS_PATH ))
22+ set_from_json_credentials_file_path (create {PATH }.make_from_string (" /home/pg/data/solarity/sit-dev/etc/opt/solarity/EGSheets-itadmin-api-project-credentials.json" ))
2423 retrieve_access_token
2524-- test_create_sheet
26- -- test_get_sheet ("1j5CTkpgOc6Y5qgYdA_klZYjNhmN2KYocoZAdM4Y61tw")
27- test_get_sheet_with_params_range (" 1j5CTkpgOc6Y5qgYdA_klZYjNhmN2KYocoZAdM4Y61tw" )
28- -- test_append_sheet ("19cKCmQBWJoMePX0Iy6LueHRw0sS2bMcyP1Auzbkvj6M") --pg
29- -- test_append_sheet ("1j5CTkpgOc6Y5qgYdA_klZYjNhmN2KYocoZAdM4Y61tw") --jv
30-
31- -- set_from_json_credentials_file_path (create {PATH}.make_from_string (CREDENTIALS_PATH))
32- -- retrieve_access_token
3325-- test_get_sheet ("1v1N4nRa6mmLcP9rUuyQPiCnLuUcBQFDEC7E0CDg3ASI")
26+ test_append_sheet (" 19cKCmQBWJoMePX0Iy6LueHRw0sS2bMcyP1Auzbkvj6M" , impl_append_post_data_sample ) -- pg
27+ -- test_append_sheet ("1j5CTkpgOc6Y5qgYdA_klZYjNhmN2KYocoZAdM4Y61tw") --jv
3428
29+ -- set_from_json_credentials_file_path (create {PATH}.make_from_string (CREDENTIALS_PATH))
30+ retrieve_access_token
31+ test_get_sheet (" 1v1N4nRa6mmLcP9rUuyQPiCnLuUcBQFDEC7E0CDg3ASI" )
3532 end
3633
3734
@@ -74,12 +71,12 @@ feature -- Tests
7471 end
7572 end
7673
77- test_get_sheet (an_id : attached like {EG_SHEETS_API }.spreadsheet_id )
74+ test_get_sheet (a_sheet_id : attached like {EG_SHEETS_API }.spreadsheet_id )
7875 local
7976 l_esapi : EG_SHEETS_API
8077 do
8178 create l_esapi .make (last_token .token )
82- if attached l_esapi .get_from_id 2 ( an_id ) as l_spreedsheet_get_result then
79+ if attached l_esapi .get_from_id ( a_sheet_id ) as l_spreedsheet_get_result then
8380 if l_esapi .has_error then
8481-- debug ("test_create_sheet")
8582 print (" test_create_sheet-> Error %N" )
@@ -108,56 +105,15 @@ feature -- Tests
108105 end
109106 end
110107
111- test_get_sheet_with_params_range ( an_id : attached like {EG_SHEETS_API }.spreadsheet_id )
108+ test_append_sheet ( a_sheet_id : attached like {EG_SHEETS_API }.spreadsheet_id ; a_data : STRING )
112109 local
113110 l_esapi : EG_SHEETS_API
114- l_qry : EG_SPREADSHEET_PARAMETERS
115-
111+ l_range : STRING
116112 do
117- create l_qry .make (1 )
118- l_qry .include_ranges (create {ARRAYED_LIST [STRING ]}.make_from_array (<<" Sheet1!A1:B1" >>))
119- l_qry .include_grid_data (True )
120113 create l_esapi .make (last_token .token )
121- if attached l_esapi .get_from_id (an_id , l_qry ) as l_spreedsheet_get_result then
122- if l_esapi .has_error then
123- -- debug ("test_create_sheet")
124- print (" test_create_sheet-> Error %N" )
125- print (" test_create_sheet-> Error: msg:" + l_esapi .error_message )
126- print (" test_create_sheet-> See codes here: https://developers.google.com/maps-booking/reference/rest-api-v3/status_codes" )
127- print (" %N" )
128- -- end
129- check
130- cannot_create_the_spreedsheet : False
131- end
132- else
133- check Json_Field_spreadsheetId : l_spreedsheet_get_result .has_substring (" spreadsheetId" ) end
134- check Json_Field_properties : l_spreedsheet_get_result .has_substring (" properties" ) end
135- check Json_Field_sheets : l_spreedsheet_get_result .has_substring (" sheets" ) end
136- check Json_Field_spreadsheetUrl : l_spreedsheet_get_result .has_substring (" spreadsheetUrl" ) end
137- -- developerMetadata and namedRanges are optional.
138- -- debug ("test_create_sheet")
139- logger .write_debug (" test_get_sheet-> success. Result:%N" )
140- logger .write_debug (l_spreedsheet_get_result + " %N" )
141- logger .write_debug (" test_get_sheet-> success. " )
142- -- end
143- end
144- else
145- -- Bad scope. no connection, etc
146- check Unexptected_Behavior : False end
147- end
148- end
114+ l_range := " Sheet1" + " !A1:A"
149115
150- test_append_sheet (an_id : attached like {EG_SHEETS_API }.spreadsheet_id )
151- local
152- l_esapi : EG_SHEETS_API
153- l_data : ARRAY [ARRAY [STRING ]]
154- do
155- l_data := <<
156- <<" test1" , " test2" >>,
157- <<" test3" , " test4" >>
158- >>
159- create l_esapi .make (last_token .token )
160- if attached l_esapi .append_with_id (an_id , l_data ) as l_spreedsheet_get_result then
116+ if attached l_esapi .append_with_id_raw (a_sheet_id , l_range , a_data ) as l_spreedsheet_get_result then
161117 if l_esapi .has_error then
162118-- debug ("test_create_sheet")
163119 print (" test_append_sheet-> Error %N" )
@@ -195,6 +151,86 @@ feature -- Tests
195151
196152feature {NONE } -- Implementations
197153
198- CREDENTIALS_PATH : STRING =" credentials.json"
154+ CREDENTIALS_PATH : STRING =" credentials.json" -- get this file from https://console.developers.google.com/
199155 -- Credentials path to json file.
156+
157+
158+
159+ impl_append_post_data_sample : STRING
160+ local
161+ l_res : JSON_OBJECT
162+ l_jsa_main ,
163+ l_jsa_line : JSON_ARRAY
164+ j_array : JSON_ARRAY
165+
166+ -- {
167+ -- "range": string,
168+ -- "majorDimension": enum (Dimension),
169+ -- "values": [
170+ -- array
171+ -- ]
172+ -- }
173+ -- // "values": [
174+ -- // [
175+ -- // "Item",
176+ -- // "Cost"
177+ -- // ],
178+ -- // [
179+ -- // "Wheel",
180+ -- // "$20.50"
181+ -- // ],
182+ -- // [
183+ -- // "Door",
184+ -- // "$15"
185+ -- // ],
186+ -- // [
187+ -- // "Engine",
188+ -- // "$100"
189+ -- // ],
190+ -- // [
191+ -- // "Totals",
192+ -- // "$135.50"
193+ -- // ]
194+ -- // ]
195+
196+ do
197+ create l_res .make_with_capacity (5 )
198+ l_res .put_string (" Sheet1!A1:B5" , " range" )
199+ l_res .put_string (" ROWS" , " majorDimension" ) -- "DIMENSION_UNSPECIFIED", "ROWS", "COLUMNS"
200+
201+ create l_jsa_main .make (10 )
202+
203+ create j_array .make (1 )
204+ create l_jsa_line .make (2 )
205+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" Item" ))
206+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" Cost" ))
207+ j_array .add (l_jsa_line )
208+
209+ create l_jsa_line .make (2 )
210+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" Wheel" ))
211+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" $20.50" ))
212+ j_array .add (l_jsa_line )
213+
214+ create l_jsa_line .make (2 )
215+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" Door" ))
216+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" $15" ))
217+ j_array .add (l_jsa_line )
218+
219+ create l_jsa_line .make (2 )
220+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" Engine" ))
221+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" $100" ))
222+ j_array .add (l_jsa_line )
223+
224+ create l_jsa_line .make (2 )
225+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" Totals" ))
226+ l_jsa_line .extend (create {JSON_STRING }.make_from_string (" $135.50" ))
227+ j_array .add (l_jsa_line )
228+
229+
230+ l_res .put (j_array , " values" )
231+
232+ Result := l_res .representation
233+ logger .write_debug (" impl_append_body-> Result: '" + Result .out + " '" )
234+ end
235+
200236end
0 commit comments