From ac9f08b6c02f96c4ba2ae0dcca594b3c6b9b8eb0 Mon Sep 17 00:00:00 2001 From: Arjun Patel Date: Sat, 7 Oct 2017 01:37:11 -0700 Subject: [PATCH] auth func --- main.js | 208 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 105 insertions(+), 103 deletions(-) diff --git a/main.js b/main.js index fddceee..1e6833b 100644 --- a/main.js +++ b/main.js @@ -15,6 +15,7 @@ function captureInput() { console.log(command); if (command in dict) { dict[command](input.substring(untilSpace+1)); + google_auth(); } else { console.log("not a valid command"); @@ -22,116 +23,117 @@ function captureInput() { } +function google_auth() { + // Client ID and API key from the Developer Console + var CLIENT_ID = '282164278400-fibsdnpmvl7hnhu0v837mql3f5u0b8lu.apps.googleusercontent.com'; -// Client ID and API key from the Developer Console -var CLIENT_ID = '282164278400-fibsdnpmvl7hnhu0v837mql3f5u0b8lu.apps.googleusercontent.com'; + // Array of API discovery doc URLs for APIs used by the quickstart + var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"]; -// Array of API discovery doc URLs for APIs used by the quickstart -var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"]; + // Authorization scopes required by the API; multiple scopes can be + // included, separated by spaces. + var SCOPES = "https://www.googleapis.com/auth/calendar"; -// Authorization scopes required by the API; multiple scopes can be -// included, separated by spaces. -var SCOPES = "https://www.googleapis.com/auth/calendar"; + var authorizeButton = document.getElementById('authorize-button'); + var signoutButton = document.getElementById('signout-button'); -var authorizeButton = document.getElementById('authorize-button'); -var signoutButton = document.getElementById('signout-button'); + /** + * On load, called to load the auth2 library and API client library. + */ + function handleClientLoad() { + gapi.load('client:auth2', initClient); + } -/** - * On load, called to load the auth2 library and API client library. - */ -function handleClientLoad() { - gapi.load('client:auth2', initClient); -} + /** + * Initializes the API client library and sets up sign-in state + * listeners. + */ + function initClient() { + gapi.client.init({ + discoveryDocs: DISCOVERY_DOCS, + clientId: CLIENT_ID, + scope: SCOPES + }).then(function () { + // Listen for sign-in state changes. + gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); -/** - * Initializes the API client library and sets up sign-in state - * listeners. - */ -function initClient() { - gapi.client.init({ - discoveryDocs: DISCOVERY_DOCS, - clientId: CLIENT_ID, - scope: SCOPES - }).then(function () { - // Listen for sign-in state changes. - gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); + // Handle the initial sign-in state. + updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); + authorizeButton.onclick = handleAuthClick; + signoutButton.onclick = handleSignoutClick; + }); + } - // Handle the initial sign-in state. - updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); - authorizeButton.onclick = handleAuthClick; - signoutButton.onclick = handleSignoutClick; - }); -} + /** + * Called when the signed in status changes, to update the UI + * appropriately. After a sign-in, the API is called. + */ + function updateSigninStatus(isSignedIn) { + if (isSignedIn) { + authorizeButton.style.display = 'none'; + signoutButton.style.display = 'block'; + listUpcomingEvents(); + } else { + authorizeButton.style.display = 'block'; + signoutButton.style.display = 'none'; + } + } -/** - * Called when the signed in status changes, to update the UI - * appropriately. After a sign-in, the API is called. - */ -function updateSigninStatus(isSignedIn) { - if (isSignedIn) { - authorizeButton.style.display = 'none'; - signoutButton.style.display = 'block'; - listUpcomingEvents(); - } else { - authorizeButton.style.display = 'block'; - signoutButton.style.display = 'none'; + /** + * Sign in the user upon button click. + */ + function handleAuthClick(event) { + gapi.auth2.getAuthInstance().signIn(); + } + + /** + * Sign out the user upon button click. + */ + function handleSignoutClick(event) { + gapi.auth2.getAuthInstance().signOut(); + } + + /** + * Append a pre element to the body containing the given message + * as its text node. Used to display the results of the API call. + * + * @param {string} message Text to be placed in pre element. + */ + function appendPre(message) { + var pre = document.getElementById('content'); + var textContent = document.createTextNode(message + '\n'); + pre.appendChild(textContent); + } + + /** + * Print the summary and start datetime/date of the next ten events in + * the authorized user's calendar. If no events are found an + * appropriate message is printed. + */ + function listUpcomingEvents() { + gapi.client.calendar.events.list({ + 'calendarId': 'primary', + 'timeMin': (new Date()).toISOString(), + 'showDeleted': false, + 'singleEvents': true, + 'maxResults': 10, + 'orderBy': 'startTime' + }).then(function(response) { + var events = response.result.items; + appendPre('Upcoming events:'); + + if (events.length > 0) { + for (i = 0; i < events.length; i++) { + var event = events[i]; + var when = event.start.dateTime; + if (!when) { + when = event.start.date; + } + appendPre(event.summary + ' (' + when + ')') + } + } else { + appendPre('No upcoming events found.'); + } + }); } } - -/** - * Sign in the user upon button click. - */ -function handleAuthClick(event) { - gapi.auth2.getAuthInstance().signIn(); -} - -/** - * Sign out the user upon button click. - */ -function handleSignoutClick(event) { - gapi.auth2.getAuthInstance().signOut(); -} - -/** - * Append a pre element to the body containing the given message - * as its text node. Used to display the results of the API call. - * - * @param {string} message Text to be placed in pre element. - */ -function appendPre(message) { - var pre = document.getElementById('content'); - var textContent = document.createTextNode(message + '\n'); - pre.appendChild(textContent); -} - -/** - * Print the summary and start datetime/date of the next ten events in - * the authorized user's calendar. If no events are found an - * appropriate message is printed. - */ -function listUpcomingEvents() { - gapi.client.calendar.events.list({ - 'calendarId': 'primary', - 'timeMin': (new Date()).toISOString(), - 'showDeleted': false, - 'singleEvents': true, - 'maxResults': 10, - 'orderBy': 'startTime' - }).then(function(response) { - var events = response.result.items; - appendPre('Upcoming events:'); - - if (events.length > 0) { - for (i = 0; i < events.length; i++) { - var event = events[i]; - var when = event.start.dateTime; - if (!when) { - when = event.start.date; - } - appendPre(event.summary + ' (' + when + ')') - } - } else { - appendPre('No upcoming events found.'); - } - }); -}