diff options
author | Skitty1238 <157652284+Skitty1238@users.noreply.github.com> | 2025-06-03 22:41:11 -0400 |
---|---|---|
committer | Skitty1238 <157652284+Skitty1238@users.noreply.github.com> | 2025-06-03 22:41:11 -0400 |
commit | c96a14c881ea28d820a53a38fa9360814dcb6385 (patch) | |
tree | ca19c6982fdc6653bb42c925b3324ad6b11a0340 /src/server/ApiManagers/GeneralGoogleManager.ts | |
parent | 6e7a29470e2c9e2fad287b4851b9eb561821ea9e (diff) |
gcal task addition route added -- problems with fetchOrGenerateAccessToken
Diffstat (limited to 'src/server/ApiManagers/GeneralGoogleManager.ts')
-rw-r--r-- | src/server/ApiManagers/GeneralGoogleManager.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/server/ApiManagers/GeneralGoogleManager.ts b/src/server/ApiManagers/GeneralGoogleManager.ts index 12913b1ef..aa06ca1b3 100644 --- a/src/server/ApiManagers/GeneralGoogleManager.ts +++ b/src/server/ApiManagers/GeneralGoogleManager.ts @@ -3,6 +3,8 @@ import { Method } from '../RouteManager'; import { GoogleApiServerUtils } from '../apis/google/GoogleApiServerUtils'; import RouteSubscriber from '../RouteSubscriber'; import { Database } from '../database'; +import { google } from 'googleapis'; + const EndpointHandlerMap = new Map<GoogleApiServerUtils.Action, GoogleApiServerUtils.ApiRouter>([ ['create', (api, params) => api.create(params)], @@ -61,5 +63,38 @@ export default class GeneralGoogleManager extends ApiManager { res.send(undefined); }, }); + + // AARAV ADD (creating a task) + + register({ + method: Method.POST, + subscription: new RouteSubscriber('googleTasks').add('create'), + secureHandler: async ({ req, res, user }) => { + try { + const { credentials } = await GoogleApiServerUtils.retrieveCredentials(user.id); + if (!credentials?.access_token) { + return res.status(401).send('Google access token not found.'); + } + + const auth = new google.auth.OAuth2(); + auth.setCredentials({ access_token: credentials.access_token }); + + const tasks = google.tasks({ version: 'v1', auth }); + + const { title, notes, due } = req.body; + const result = await tasks.tasks.insert({ + tasklist: '@default', + requestBody: { title, notes, due }, + }); + + res.status(200).send(result.data); + } catch (err) { + console.error('Google Tasks error:', err); + res.status(500).send('Failed to create task.'); + } + }, + }); + + } } |