aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/ApiManagers/GeneralGoogleManager.ts35
-rw-r--r--src/server/apis/google/GoogleTasksHandler.ts54
2 files changed, 35 insertions, 54 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.');
+ }
+ },
+ });
+
+
}
}
diff --git a/src/server/apis/google/GoogleTasksHandler.ts b/src/server/apis/google/GoogleTasksHandler.ts
deleted file mode 100644
index a8af86fe2..000000000
--- a/src/server/apis/google/GoogleTasksHandler.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import express from 'express';
-import { google } from 'googleapis';
-import { GoogleCredentialsLoader } from './CredentialsLoader';
-import User from '../../authentication/DashUserModel';
-import { DashUserModel } from '../../authentication/DashUserModel';
-
-
-const router = express.Router();
-
-router.post('/tasks/create', async (req, res) => {
- try {
- const { title, notes, due } = req.body;
-
- // Make sure user is authenticated
- if (!req.user) {
- return res.status(401).json({ error: 'User not authenticated' });
- }
-
- // Assuming access token is stored in user model
- const user = req.user as typeof User; // replace with your actual User type if needed
- const accessToken = user.googleAccessToken; // <-- change this based on where you store it
-
- if (!accessToken) {
- return res.status(400).json({ error: 'Google access token not found for user' });
- }
-
- const credentials = GoogleCredentialsLoader.ProjectCredentials;
- const auth = new google.auth.OAuth2(
- credentials.client_id,
- credentials.client_secret,
- credentials.redirect_uris[0]
- );
-
- auth.setCredentials({ access_token: accessToken });
-
- const tasks = google.tasks({ version: 'v1', auth });
-
- const result = await tasks.tasks.insert({
- tasklist: '@default',
- requestBody: {
- title,
- notes,
- due,
- },
- });
-
- res.status(200).json(result.data);
- } catch (err) {
- console.error('Error creating Google Task:', err);
- res.status(500).json({ error: 'Failed to create task' });
- }
-});
-
-export default router;