diff options
author | Determinant <ted.sybil@gmail.com> | 2019-01-30 00:58:11 -0500 |
---|---|---|
committer | Determinant <ted.sybil@gmail.com> | 2019-01-30 00:58:11 -0500 |
commit | 00f036861c73f72f8863cbc2259b440ca1344df1 (patch) | |
tree | b98450bf4f453bb79df7075336da9ccb5baed170 /src/gapi.js | |
parent | d9720829424f01bedfd2edc5cb6682c820566a2b (diff) |
re-organize the code
Diffstat (limited to 'src/gapi.js')
-rw-r--r-- | src/gapi.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/gapi.js b/src/gapi.js new file mode 100644 index 0000000..975d4d9 --- /dev/null +++ b/src/gapi.js @@ -0,0 +1,39 @@ +/* global chrome */ +const gapi_base = 'https://www.googleapis.com/calendar/v3'; + +function to_params(dict) { + return Object.entries(dict).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&'); +} + +export function getAuthToken() { + return new Promise(resolver => + chrome.identity.getAuthToken( + {interactive: true}, token => resolver(token))); +} + +export function getCalendars(token) { + return fetch(gapi_base + '/users/me/calendarList?' + to_params({access_token: token}), + { method: 'GET', async: true }) + .then(response => response.json()) + .then(data => data.items); +} + +export function genEventsGetter(calId, timeMin, timeMax) { + return token => fetch(gapi_base + '/calendars/' + calId + '/events?' + to_params({ + access_token: token, + timeMin, + timeMax + }), { method: 'GET', async: true }) + .then(response => { + if (response.status === 200) + return response.json() + else throw `got response ${response.status}`; + }) + .catch(e => { console.log(e); return []; }) + .then(data => data.items); +} + +export function getColors(token) { + return fetch(gapi_base + '/colors?' + to_params({access_token: token}), { method: 'GET', async: true }) + .then(response => response.json()); +} |