Skip to content

Commit 37fb713

Browse files
authored
Implement error handling for filter view operations
Added error handling for Add and Duplicate Filter View requests to ensure valid responses.
1 parent cba13c9 commit 37fb713

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

sheets/snippets/src/main/java/SheetsFilterViews.java

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ public static void filterViews(String spreadsheetId) {
8484
))
8585
.setCriteria(criteriaMap);
8686

87+
// --- Step 1: Add Filter View ---
88+
// (Request construction remains the same)
89+
// ...
8790
AddFilterViewRequest addFilterViewRequest = new AddFilterViewRequest().setFilter(filterView);
8891

8992
BatchUpdateSpreadsheetRequest batchRequest1 = new BatchUpdateSpreadsheetRequest()
@@ -93,11 +96,20 @@ public static void filterViews(String spreadsheetId) {
9396
.batchUpdate(spreadsheetId, batchRequest1)
9497
.execute();
9598

96-
// --- Step 2: Duplicate Filter View ---
97-
// Extract the ID from the previous response
98-
int filterId = response1.getReplies().get(0)
99-
.getAddFilterView().getFilter().getFilterViewId();
99+
if (response1.getReplies() == null || response1.getReplies().isEmpty()) {
100+
System.err.println("Error: No replies returned from AddFilterView request.");
101+
return;
102+
}
103+
104+
Response reply1 = response1.getReplies().get(0);
105+
if (reply1.getAddFilterView() == null || reply1.getAddFilterView().getFilter() == null) {
106+
System.err.println("Error: Response did not contain AddFilterView data.");
107+
return;
108+
}
109+
110+
int filterId = reply1.getAddFilterView().getFilter().getFilterViewId();
100111

112+
// --- Step 2: Duplicate Filter View ---
101113
DuplicateFilterViewRequest duplicateRequest = new DuplicateFilterViewRequest()
102114
.setFilterId(filterId);
103115

@@ -108,6 +120,19 @@ public static void filterViews(String spreadsheetId) {
108120
.batchUpdate(spreadsheetId, batchRequest2)
109121
.execute();
110122

123+
if (response2.getReplies() == null || response2.getReplies().isEmpty()) {
124+
System.err.println("Error: No replies returned from DuplicateFilterView request.");
125+
return;
126+
}
127+
128+
Response reply2 = response2.getReplies().get(0);
129+
if (reply2.getDuplicateFilterView() == null || reply2.getDuplicateFilterView().getFilter() == null) {
130+
System.err.println("Error: Response did not contain DuplicateFilterView data.");
131+
return;
132+
}
133+
134+
int newFilterId = reply2.getDuplicateFilterView().getFilter().getFilterViewId();
135+
111136
// --- Step 3: Update Filter View ---
112137
// Extract the new ID from the duplicate response
113138
int newFilterId = response2.getReplies().get(0)

0 commit comments

Comments
 (0)