diff options
author | Skitty1238 <157652284+Skitty1238@users.noreply.github.com> | 2025-06-05 13:34:53 -0400 |
---|---|---|
committer | Skitty1238 <157652284+Skitty1238@users.noreply.github.com> | 2025-06-05 13:34:53 -0400 |
commit | 1ec0291a689ed0aea0bb6fdd91e3c08113bfac46 (patch) | |
tree | 5b0d5c21f4a866942bae9a55bbac4fc8c190ac3a /src/server/ApiManagers/GeneralGoogleManager.ts | |
parent | d73f7d9960285aceec01ef41a80bbb19e5d86f8c (diff) |
changed add to google tasks button to sync to google button. Implemented auto creation and auto deletion in Google when node is created/deleted in dash
Diffstat (limited to 'src/server/ApiManagers/GeneralGoogleManager.ts')
-rw-r--r-- | src/server/ApiManagers/GeneralGoogleManager.ts | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/src/server/ApiManagers/GeneralGoogleManager.ts b/src/server/ApiManagers/GeneralGoogleManager.ts index 4f0b8c02b..79ca55444 100644 --- a/src/server/ApiManagers/GeneralGoogleManager.ts +++ b/src/server/ApiManagers/GeneralGoogleManager.ts @@ -63,8 +63,9 @@ export default class GeneralGoogleManager extends ApiManager { }, }); - // AARAV ADD (creating a task) + // AARAV ADD + // Task Creation register({ method: Method.POST, subscription: new RouteSubscriber('googleTasks').add('create'), @@ -92,6 +93,68 @@ export default class GeneralGoogleManager extends ApiManager { }, }); + // Task Update + register({ + method: Method.PATCH, + subscription: new RouteSubscriber('googleTasks').add('taskId'), + // any way to add static params? like /update (this is not very descriptive) + secureHandler: async ({ req, res, user }) => { + try { + const auth = await GoogleApiServerUtils.retrieveOAuthClient(user.id); + + if (!auth) { + return res.status(401).send('Google credentials missing or invalid.'); + } + + const tasks = google.tasks({ version: 'v1', auth }); + + const { taskId } = req.params; + const { title, notes, due, status, completed } = req.body; + + const result = await tasks.tasks.patch({ + tasklist: '@default', + task: taskId, + requestBody: { title, notes, due, status, completed }, + }); + + res.status(200).send(result.data); + } catch (err) { + console.error('Google Tasks update error:', err); + res.status(500).send('Failed to update task.'); + } + }, + }); + + // Task Deletion + register({ + method: Method.DELETE, + subscription: new RouteSubscriber('googleTasks').add('taskId'), + secureHandler: async ({ req, res, user }) => { + try { + const auth = await GoogleApiServerUtils.retrieveOAuthClient(user.id); + + if (!auth) { + return res.status(401).send('Google credentials missing or invalid.'); + } + + const tasks = google.tasks({ version: 'v1', auth }); + const { taskId } = req.params; + + await tasks.tasks.delete({ + tasklist: '@default', + task: taskId, + }); + + res.status(200).send({ success: true }); + } catch (err) { + console.error('Google Tasks delete error:', err); + res.status(500).send('Failed to delete task.'); + } + }, + }); + + + register({ method: Method.GET, subscription: '/refreshGoogle', |