Skip to content

Commit 5a425e4

Browse files
committed
Handle errors in GoogleCalendarSession.fetchGCalCalendars (Issue #18)
1 parent 54098a0 commit 5a425e4

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

package/contents/ui/config/ConfigGoogleCalendar.qml

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ ConfigPage {
5252
calendarsModel.calendarsShownChanged()
5353
}
5454

55-
onErrorFetchingUserCode: messageWidget.err(err)
55+
onError: messageWidget.err(err)
5656
}
5757

5858

package/contents/ui/config/GoogleCalendarSession.qml

+23-10
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ Item {
5050
property alias calendarIdList: calendarIdListData.value
5151

5252
signal newAccessToken()
53-
signal errorFetchingUserCode(string err)
53+
signal sessionReset()
54+
signal error(string err)
5455

5556

5657
//---
@@ -79,13 +80,8 @@ Item {
7980
logger.debugJSON('/oauth2/v4/token Response', data)
8081

8182
// Check for errors
82-
if (data.error) {
83-
var errorMessage = '' + data.error + ' (' + data.error_description + ')'
84-
session.errorFetchingUserCode(errorMessage)
85-
return
86-
}
87-
if (err) {
88-
session.errorFetchingUserCode(err)
83+
if (err || data.error) {
84+
handleError(err, data)
8985
return
9086
}
9187

@@ -110,6 +106,11 @@ Item {
110106
fetchGCalCalendars({
111107
access_token: accessToken,
112108
}, function(err, data, xhr) {
109+
// Check for errors
110+
if (err || data.error) {
111+
handleError(err, data)
112+
return
113+
}
113114
calendarListData.value = data.items
114115
})
115116
}
@@ -124,7 +125,7 @@ Item {
124125
}, function(err, data, xhr) {
125126
// console.log('fetchGCalCalendars.response', err, data, xhr.status)
126127
if (!err && data && data.error) {
127-
return callback(data, null, xhr)
128+
return callback('fetchGCalCalendars error', data, xhr)
128129
}
129130
callback(err, data, xhr)
130131
})
@@ -142,7 +143,19 @@ Item {
142143
plasmoid.configuration.agenda_newevent_last_calendar_id = ''
143144
calendarList = []
144145
calendarIdList = []
146+
sessionReset()
147+
}
145148

146-
// generateUserCodeAndPoll()
149+
// https://developers.google.com/calendar/v3/errors
150+
function handleError(err, data) {
151+
if (data.error && data.error_description) {
152+
var errorMessage = '' + data.error + ' (' + data.error_description + ')'
153+
session.error(errorMessage)
154+
} else if (data.error && data.error.message && typeof data.error.code !== "undefined") {
155+
var errorMessage = '' + data.error.message + ' (' + data.error.code + ')'
156+
session.error(errorMessage)
157+
} else if (err) {
158+
session.error(err)
159+
}
147160
}
148161
}

0 commit comments

Comments
 (0)