lib sources restructuring
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getOAuthClient } from '$lib/google-server.js';
|
||||
import { authServer } from '$lib/google/index.js';
|
||||
|
||||
export const POST: RequestHandler = async ({ request }) => {
|
||||
try {
|
||||
@@ -10,7 +10,7 @@ export const POST: RequestHandler = async ({ request }) => {
|
||||
return json({ error: 'Refresh token is required' }, { status: 400 });
|
||||
}
|
||||
|
||||
const oauth = getOAuthClient();
|
||||
const oauth = authServer.getOAuthClient();
|
||||
oauth.setCredentials({ refresh_token: refreshToken });
|
||||
|
||||
const { credentials } = await oauth.refreshAccessToken();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getSpreadsheetData } from '$lib/sheets.js';
|
||||
import { sheets } from '$lib/google/index.js';
|
||||
|
||||
export const GET: RequestHandler = async ({ params, request }) => {
|
||||
try {
|
||||
@@ -12,7 +12,7 @@ export const GET: RequestHandler = async ({ params, request }) => {
|
||||
}
|
||||
|
||||
const refreshToken = authHeader.slice(7);
|
||||
const sheetData = await getSpreadsheetData(refreshToken, sheetId, 'A1:Z10');
|
||||
const sheetData = await sheets.getSpreadsheetData(refreshToken, sheetId, 'A1:Z10');
|
||||
|
||||
return json(sheetData);
|
||||
} catch (error) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getRecentSpreadsheets } from '$lib/sheets.js';
|
||||
import { sheets } from '$lib/google/index.js';
|
||||
|
||||
export const GET: RequestHandler = async ({ request }) => {
|
||||
try {
|
||||
@@ -10,9 +10,9 @@ export const GET: RequestHandler = async ({ request }) => {
|
||||
}
|
||||
|
||||
const refreshToken = authHeader.slice(7);
|
||||
const sheets = await getRecentSpreadsheets(refreshToken, 20);
|
||||
const spreadsheets = await sheets.getRecentSpreadsheets(refreshToken, 20);
|
||||
|
||||
return json(sheets);
|
||||
return json(spreadsheets);
|
||||
} catch (error) {
|
||||
console.error('Error fetching recent spreadsheets:', error);
|
||||
return json({ error: 'Failed to fetch spreadsheets' }, { status: 500 });
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { redirect } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { createAuthUrl } from '$lib/google-server.js';
|
||||
import { authServer } from '$lib/google/index.js';
|
||||
|
||||
export const GET: RequestHandler = () => {
|
||||
const authUrl = createAuthUrl();
|
||||
const authUrl = authServer.createAuthUrl();
|
||||
throw redirect(302, authUrl);
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { redirect } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getOAuthClient } from '$lib/google-server.js';
|
||||
import { authServer } from '$lib/google/index.js';
|
||||
|
||||
export const GET: RequestHandler = async ({ url }) => {
|
||||
try {
|
||||
@@ -17,7 +17,7 @@ export const GET: RequestHandler = async ({ url }) => {
|
||||
}
|
||||
|
||||
// Exchange code for tokens
|
||||
const oauth = getOAuthClient();
|
||||
const oauth = authServer.getOAuthClient();
|
||||
const { tokens } = await oauth.getToken(code);
|
||||
|
||||
if (!tokens.refresh_token || !tokens.access_token) {
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
import type { RequestHandler } from './$types';
|
||||
import { json, redirect } from '@sveltejs/kit';
|
||||
import {
|
||||
createAuthUrl,
|
||||
exchangeCodeForTokens,
|
||||
getOAuthClient
|
||||
} from '$lib/google';
|
||||
import { sendGmail } from '$lib/gmail';
|
||||
|
||||
/* ───────────── GET ───────────── */
|
||||
export const GET: RequestHandler = async ({ url }) => {
|
||||
/* 1. /private/api/gmail?action=auth → 302 to Google */
|
||||
if (url.searchParams.get('action') === 'auth') {
|
||||
throw redirect(302, createAuthUrl());
|
||||
}
|
||||
|
||||
/* 2. Google callback /private/api/gmail?code=XXXX */
|
||||
const code = url.searchParams.get('code');
|
||||
if (code) {
|
||||
try {
|
||||
const refreshToken = await exchangeCodeForTokens(code);
|
||||
|
||||
const html = `
|
||||
<script>
|
||||
localStorage.setItem('gmail_refresh_token', ${JSON.stringify(refreshToken)});
|
||||
location = '/private/events/creator';
|
||||
</script>`;
|
||||
return new Response(html, { headers: { 'Content-Type': 'text/html' } });
|
||||
} catch (err) {
|
||||
return new Response((err as Error).message, { status: 500 });
|
||||
}
|
||||
}
|
||||
|
||||
return new Response('Bad request', { status: 400 });
|
||||
};
|
||||
|
||||
/* ───────────── POST ───────────── */
|
||||
export const POST: RequestHandler = async ({ request }) => {
|
||||
const { action, refreshToken, to, subject, text, qr_code } = await request.json();
|
||||
|
||||
/* send e-mail */
|
||||
if (action === 'send') {
|
||||
if (!refreshToken) return new Response('Missing token', { status: 401 });
|
||||
try {
|
||||
await sendGmail(refreshToken, { to, subject, text, qr_code });
|
||||
return json({ ok: true });
|
||||
} catch (err) {
|
||||
return new Response((err as Error).message, { status: 500 });
|
||||
}
|
||||
}
|
||||
|
||||
/* revoke token */
|
||||
if (action === 'revoke') {
|
||||
if (!refreshToken) return new Response('Missing token', { status: 401 });
|
||||
try {
|
||||
await getOAuthClient().revokeToken(refreshToken);
|
||||
return json({ ok: true });
|
||||
} catch (err) {
|
||||
return new Response((err as Error).message, { status: 500 });
|
||||
}
|
||||
}
|
||||
|
||||
/* validate token */
|
||||
if (action === 'validate') {
|
||||
if (!refreshToken) {
|
||||
return json({ valid: false });
|
||||
}
|
||||
try {
|
||||
const oAuth2Client = getOAuthClient();
|
||||
oAuth2Client.setCredentials({ refresh_token: refreshToken });
|
||||
await oAuth2Client.getAccessToken(); // This will throw if invalid
|
||||
return json({ valid: true });
|
||||
} catch (err) {
|
||||
return json({ valid: false, error: (err as Error).message });
|
||||
}
|
||||
}
|
||||
|
||||
return new Response('Bad request', { status: 400 });
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getOAuthClient } from '$lib/google-server.js';
|
||||
import { authServer } from '$lib/google/index.js';
|
||||
|
||||
export const POST: RequestHandler = async ({ request }) => {
|
||||
try {
|
||||
@@ -10,7 +10,7 @@ export const POST: RequestHandler = async ({ request }) => {
|
||||
return json({ error: 'Refresh token is required' }, { status: 400 });
|
||||
}
|
||||
|
||||
const oauth = getOAuthClient();
|
||||
const oauth = authServer.getOAuthClient();
|
||||
oauth.setCredentials({ refresh_token: refreshToken });
|
||||
|
||||
const { credentials } = await oauth.refreshAccessToken();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getOAuthClient } from '$lib/google-server.js';
|
||||
import { authServer } from '$lib/google/index.js';
|
||||
import { google } from 'googleapis';
|
||||
|
||||
export const GET: RequestHandler = async ({ request }) => {
|
||||
@@ -14,7 +14,7 @@ export const GET: RequestHandler = async ({ request }) => {
|
||||
const accessToken = authHeader.slice(7);
|
||||
|
||||
// Create OAuth client with the token
|
||||
const oauth = getOAuthClient();
|
||||
const oauth = authServer.getOAuthClient();
|
||||
oauth.setCredentials({ access_token: accessToken });
|
||||
|
||||
// Call the userinfo endpoint to get user details
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getSpreadsheetData } from '$lib/sheets.js';
|
||||
import { sheets } from '$lib/google/index.js';
|
||||
|
||||
export const GET: RequestHandler = async ({ params, request }) => {
|
||||
try {
|
||||
@@ -12,7 +12,7 @@ export const GET: RequestHandler = async ({ params, request }) => {
|
||||
}
|
||||
|
||||
const refreshToken = authHeader.slice(7);
|
||||
const sheetData = await getSpreadsheetData(refreshToken, sheetId, 'A1:Z10');
|
||||
const sheetData = await sheets.getSpreadsheetData(refreshToken, sheetId, 'A1:Z10');
|
||||
|
||||
return json(sheetData);
|
||||
} catch (error) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { getRecentSpreadsheets } from '$lib/sheets.js';
|
||||
import { sheets } from '$lib/google/index.js';
|
||||
|
||||
export const GET: RequestHandler = async ({ request }) => {
|
||||
try {
|
||||
@@ -10,9 +10,9 @@ export const GET: RequestHandler = async ({ request }) => {
|
||||
}
|
||||
|
||||
const refreshToken = authHeader.slice(7);
|
||||
const sheets = await getRecentSpreadsheets(refreshToken, 20);
|
||||
const spreadsheets = await sheets.getRecentSpreadsheets(refreshToken, 20);
|
||||
|
||||
return json(sheets);
|
||||
return json(spreadsheets);
|
||||
} catch (error) {
|
||||
console.error('Error fetching recent spreadsheets:', error);
|
||||
return json({ error: 'Failed to fetch spreadsheets' }, { status: 500 });
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import type { GoogleSheet } from '$lib/sheets.js';
|
||||
import { isTokenValid, refreshAccessToken, getUserInfo, revokeToken } from '$lib/google.js';
|
||||
import { sheets, isTokenValid, refreshAccessToken, getUserInfo, revokeToken } from '$lib/google/index.js';
|
||||
import type { GoogleSheet } from '$lib/google/sheets/index.js';
|
||||
import { goto } from '$app/navigation';
|
||||
|
||||
// Import Components
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import type { GoogleSheet } from '$lib/sheets.js';
|
||||
import type { GoogleSheet } from '$lib/google/sheets/index.js';
|
||||
|
||||
// Props
|
||||
let { sheetsData, errors, loadRecentSheets, selectSheet, toggleSheetList } = $props<{
|
||||
|
||||
Reference in New Issue
Block a user