diff --git a/src/components/assets/assets-options/AssetOffsetDialog.tsx b/src/components/assets/assets-options/AssetOffsetDialog.tsx index 8c8036a..882ca3f 100644 --- a/src/components/assets/assets-options/AssetOffsetDialog.tsx +++ b/src/components/assets/assets-options/AssetOffsetDialog.tsx @@ -34,7 +34,6 @@ export default function AssetOffsetDialog({ assets: _assets, open, toggleOpen }: const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); - console.log(offsetData); setLoading(true); const promises = assets.map(async (asset) => { setAssetStatus({ [asset.id]: 'pending' }); diff --git a/src/components/people/PeopleList.tsx b/src/components/people/PeopleList.tsx index 1e45db4..f031000 100644 --- a/src/components/people/PeopleList.tsx +++ b/src/components/people/PeopleList.tsx @@ -69,7 +69,7 @@ export default function PeopleList() { setFilters((prev) => ({ ...prev, ...newConfig })), }} > - +
} diff --git a/src/config/db.ts b/src/config/db.ts index 1492ace..cb903ae 100644 --- a/src/config/db.ts +++ b/src/config/db.ts @@ -1,14 +1,31 @@ -import { drizzle } from 'drizzle-orm/node-postgres'; +import { drizzle, NodePgDatabase } from 'drizzle-orm/node-postgres'; -import { Client } from "pg"; +import { Client, Pool } from "pg"; import { ENV } from "./environment"; import * as schema from "@/schema"; +import { sql } from 'drizzle-orm'; -const client = new Client({ +const pool = new Pool({ connectionString: ENV.DATABASE_URL, + keepAlive: true, }); -await client.connect(); -export const db = drizzle(client, { +class DatabaseConnectionError extends Error { + error: string; + constructor(message: string, error: string) { + super(message); + this.name = "DatabaseConnectionError"; + this.error = error; + } +} +export const connectDB = async (db: NodePgDatabase) => { + try { + await db.execute(sql`SELECT 1`); // Execute a simple query + } catch (error: any) { + throw new DatabaseConnectionError(error.message, "Database connection failed"); + } +} + +export const db = drizzle(pool, { schema -}); \ No newline at end of file +}); diff --git a/src/handlers/serverUtils/user.utils.ts b/src/handlers/serverUtils/user.utils.ts index f71ca3d..faf90db 100644 --- a/src/handlers/serverUtils/user.utils.ts +++ b/src/handlers/serverUtils/user.utils.ts @@ -1,4 +1,5 @@ import { appConfig } from "@/config/app.config" +import { connectDB, db } from "@/config/db" import { ENV } from "@/config/environment" import { getCookie } from "@/lib/cookie" import { NextApiRequest } from "next" @@ -40,6 +41,7 @@ export const getCurrentUserFromAccessToken = (token: string) => { } export const getCurrentUser = async (req: NextApiRequest) => { + await connectDB(db); const session = getCookie(req, appConfig.sessionCookieName) if (session) { diff --git a/src/helpers/date.helper.ts b/src/helpers/date.helper.ts index 9cabed2..b7a4077 100644 --- a/src/helpers/date.helper.ts +++ b/src/helpers/date.helper.ts @@ -22,7 +22,6 @@ export const offsetDate = (date: string, offset: { minutes: number, seconds: number }): string => { - console.log(offset) const parsedDate = new Date(date); const result = addYears(parsedDate, offset.years || 0) const result2 = addDays(result, offset.days || 0) diff --git a/src/lib/api.ts b/src/lib/api.ts index 0483d40..abc56cd 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -4,19 +4,21 @@ import qs from 'qs' const handleErrors = (error: AxiosError | any) => { - if (error.code === "ERR_BAD_RESPONSE") { + + let errorObject = {} + if (error.response && error.response.data) { + return Promise.reject({ + error: error.response.data.error, + message: error.response.data.message, + status: error.response.status, + }) + } + else if (error.code === "ERR_BAD_RESPONSE") { return Promise.reject({ error: "Unable to process this request, please try again later", message: error.code, }); } - let errorObject = {} - if (error.response) { - return Promise.reject({ - ...error.response.data, - status: error.response.status, - }) - } errorObject = { message: 'Network Error. Please check your connection and try again!', } diff --git a/src/pages/api/immich-proxy/[...path].ts b/src/pages/api/immich-proxy/[...path].ts index 31f597b..bc5187a 100644 --- a/src/pages/api/immich-proxy/[...path].ts +++ b/src/pages/api/immich-proxy/[...path].ts @@ -21,9 +21,6 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) body: req.method !== 'GET' && req.method !== 'HEAD' ? JSON.stringify(req.body) : null, }) - // Log response headers for debugging - console.log('Response Headers:', response.headers); - // Forward the status code res.status(response.status) diff --git a/src/pages/api/users/me.ts b/src/pages/api/users/me.ts index fb721f2..21b6b8b 100644 --- a/src/pages/api/users/me.ts +++ b/src/pages/api/users/me.ts @@ -20,7 +20,6 @@ export default async function handler( } try { - if (!db) { return res.status(500).json({ message: "Database connection failed" }); } @@ -34,7 +33,7 @@ export default async function handler( } catch (error: any) { return res.status(500).json({ message: error.message ||"Internal Server Error", - error: error, + error: error.error || "Internal Server Error", }); } } diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 7848235..1f2fea5 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,8 +1,5 @@ -import { Inter } from "next/font/google"; import PeopleList from "@/components/people/PeopleList"; -const inter = Inter({ subsets: ["latin"] }); - export default function Home() { return }