diff --git a/scripts/clean-up-dry-runs.ts b/scripts/clean-up-dry-runs.ts index 4da051b..230b2ca 100644 --- a/scripts/clean-up-dry-runs.ts +++ b/scripts/clean-up-dry-runs.ts @@ -6,7 +6,7 @@ import moment from "moment"; import yargs from "yargs/yargs"; // Internals -import googleAuth from "./Helpers/google-auth"; +import googleAuth from "../src/Helpers/General/google-auth"; import Logger from "../src/Helpers/Logger"; const args = yargs(process.argv.slice(2)).option("all", { diff --git a/scripts/upload-logs.ts b/scripts/upload-logs.ts index 2a78e9e..53b797c 100644 --- a/scripts/upload-logs.ts +++ b/scripts/upload-logs.ts @@ -7,7 +7,7 @@ import { format } from "prettier"; import moment from "moment"; // Internals -import googleAuth from "./Helpers/google-auth"; +import googleAuth from "../src/Helpers/General/google-auth"; import Logger from "../src/Helpers/Logger"; const uploadLogs = async () => { diff --git a/scripts/Helpers/google-auth.ts b/src/Helpers/General/google-auth.ts similarity index 77% rename from scripts/Helpers/google-auth.ts rename to src/Helpers/General/google-auth.ts index 4623b03..8f6bf9b 100644 --- a/scripts/Helpers/google-auth.ts +++ b/src/Helpers/General/google-auth.ts @@ -8,8 +8,7 @@ import readline, { createInterface } from "readline"; import { google, Auth } from "googleapis"; // Internals -import Logger from "../../src/Helpers/Logger"; -import keyfile from "../../credentials.json"; +import Logger from "../Logger"; readline.Interface.prototype.question[promisify.custom] = function ( prompt: string @@ -24,13 +23,17 @@ readline.Interface.prototype.questionAsync = promisify( readline.Interface.prototype.question ); -const TOKEN_PATH = join(__dirname, "..", "..", "oauth-token.json"); +const CRED_PATH = join(__dirname, "..", "..", "..", "credentials.json"); +const TOKEN_PATH = join(__dirname, "..", "..", "..", "oauth-token.json"); const googleAuth = async (): Promise => { + const keyfile = await readFile(CRED_PATH, "utf-8"); + const creds = JSON.parse(keyfile); + const oAuth2Client = new google.auth.OAuth2( - keyfile.installed.client_id, - keyfile.installed.client_secret, - keyfile.installed.redirect_uris[0] + creds.installed.client_id, + creds.installed.client_secret, + creds.installed.redirect_uris[0] ); Logger.log("Authorizing..."); @@ -47,7 +50,9 @@ const googleAuth = async (): Promise => { }); Logger.line(); - Logger.log(`Authorize this app by visiting this url: ${authUrl}`); + Logger.log( + `${Logger.COLORS.FgBlue}Authorize by signing in with social-impact@hack4impact.org${Logger.COLORS.Reset}: ${authUrl}` + ); const rl = createInterface({ input: process.stdin, diff --git a/src/Helpers/General/index.ts b/src/Helpers/General/index.ts index 4cf1d4b..45e23c3 100644 --- a/src/Helpers/General/index.ts +++ b/src/Helpers/General/index.ts @@ -3,3 +3,4 @@ export { default as escapeRegex } from "./escape-regex"; export { default as flattenFields } from "./flatten-fields"; export { default as getTemplate } from "./get-template"; export { default as normalizeDate } from "./normalize-date"; +export { default as googleAuth } from "./google-auth"; diff --git a/src/script.ts b/src/script.ts index cbdbf3d..de31b6b 100644 --- a/src/script.ts +++ b/src/script.ts @@ -17,7 +17,7 @@ import { } from "./Helpers/Checks"; import { sendReminderEmail } from "./Helpers/Email"; import { createGoogleForm } from "./Helpers/Forms"; -import { parseProject, flattenFields } from "./Helpers/General"; +import { parseProject, flattenFields, googleAuth } from "./Helpers/General"; import Logger from "./Helpers/Logger"; import { FIELDS } from "./Utils/constants"; @@ -42,6 +42,8 @@ const script = async () => { const logger = new Logger(dryRun); try { + await googleAuth(); + const table = Airtable.base(process.env.AIRTABLE_BASE_ID ?? ""); const standardQuestions = await getStandardQuestions(table);