aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/GeneralGoogleManager.ts
diff options
context:
space:
mode:
authorSkitty1238 <157652284+Skitty1238@users.noreply.github.com>2025-06-04 18:28:35 -0400
committerSkitty1238 <157652284+Skitty1238@users.noreply.github.com>2025-06-04 18:28:35 -0400
commit09be9002b5aa8f5ad7c602bcef6b53bbe0398cd3 (patch)
tree730acef57ae76d8698c68acb641fce3167d9c941 /src/server/ApiManagers/GeneralGoogleManager.ts
parent645df1d00f953524c6da22103d26c38ae4331cd6 (diff)
fixed google authentication + linking and task creation via GT button
Diffstat (limited to 'src/server/ApiManagers/GeneralGoogleManager.ts')
-rw-r--r--src/server/ApiManagers/GeneralGoogleManager.ts50
1 files changed, 34 insertions, 16 deletions
diff --git a/src/server/ApiManagers/GeneralGoogleManager.ts b/src/server/ApiManagers/GeneralGoogleManager.ts
index e8debfc12..25589ccb5 100644
--- a/src/server/ApiManagers/GeneralGoogleManager.ts
+++ b/src/server/ApiManagers/GeneralGoogleManager.ts
@@ -71,24 +71,20 @@ export default class GeneralGoogleManager extends ApiManager {
subscription: new RouteSubscriber('googleTasks').add('create'),
secureHandler: async ({ req, res, user }) => {
try {
- const { credentials } = await GoogleApiServerUtils.retrieveCredentials(user.id);
- const access_token = user.googleToken || credentials?.access_token; // if googleToken expires, we need to renew it.
-
- if (!access_token) {
- return res.status(401).send('Google access token not found.');
+ const auth = await GoogleApiServerUtils.retrieveOAuthClient(user);
+
+ if (!auth) {
+ return res.status(401).send('Google credentials missing or invalid.');
}
-
- const auth = new google.auth.OAuth2();
- auth.setCredentials({ access_token: access_token });
-
+
const tasks = google.tasks({ version: 'v1', auth });
-
- const { title, notes, due } = req.body;
+
+ const { title, notes, due, status, completed } = req.body;
const result = await tasks.tasks.insert({
tasklist: '@default',
- requestBody: { title, notes, due },
+ requestBody: { title, notes, due, status, completed},
});
-
+
res.status(200).send(result.data);
} catch (err) {
console.error('Google Tasks error:', err);
@@ -102,9 +98,31 @@ export default class GeneralGoogleManager extends ApiManager {
subscription: '/refreshGoogle',
secureHandler: async ({ user, req, res }) => {
const code = req.query.code as string;
- _success(res, code);
- user.googleToken = code;
- user.save();
+ console.log('/refreshGoogle hit with code:', code);
+
+ try {
+ const enriched = await GoogleApiServerUtils.processNewUser(user.id, code);
+
+ if (enriched.refresh_token) {
+ console.log('Enriched credentials:', enriched);
+
+ if (enriched.refresh_token) {
+ user.googleToken = enriched.refresh_token;
+ await user.save();
+ console.log('Saved refresh token to user model');
+ } else {
+ console.warn('No refresh token returned');
+ }
+ }
+
+ // await user.save();
+ // _success(res, 'Google account successfully linked!');
+ res.redirect('/home');
+
+ } catch (err) {
+ console.error('Failed to process Google code:', err);
+ res.status(500).send('Error linking Google account');
+ }
// const response2 = await Networking.PostToServer('/writeGoogleAccessToken', { authenticationCode });
// runInAction(() => {