Explorar o código

fix(web): don't log unauthorized errors (#1871)

* fix(web): don't log unauthorized errors

* fix docker build error
Michel Heusschen %!s(int64=2) %!d(string=hai) anos
pai
achega
e157a69d86
Modificáronse 2 ficheiros con 22 adicións e 13 borrados
  1. 20 4
      web/src/hooks.server.ts
  2. 2 9
      web/src/routes/+layout.server.ts

+ 20 - 4
web/src/hooks.server.ts

@@ -4,10 +4,26 @@ import { env } from '$env/dynamic/public';
 import { ImmichApi } from './api/api';
 
 export const handle = (async ({ event, resolve }) => {
-	event.locals.api = new ImmichApi({
-		basePath: env.PUBLIC_IMMICH_SERVER_URL || 'http://immich-server:3001',
-		accessToken: event.cookies.get('immich_access_token')
-	});
+	const basePath = env.PUBLIC_IMMICH_SERVER_URL || 'http://immich-server:3001';
+	const accessToken = event.cookies.get('immich_access_token');
+	const api = new ImmichApi({ basePath, accessToken });
+
+	// API instance that should be used for all server-side requests.
+	event.locals.api = api;
+
+	if (accessToken) {
+		try {
+			const { data: user } = await api.userApi.getMyUserInfo();
+			event.locals.user = user;
+		} catch (err) {
+			const apiError = err as AxiosError;
+
+			// Ignore 401 unauthorized errors and log all others.
+			if (apiError.response?.status !== 401) {
+				console.error('[ERROR] hooks.server.ts [handle]:', err);
+			}
+		}
+	}
 
 	const res = await resolve(event);
 

+ 2 - 9
web/src/routes/+layout.server.ts

@@ -1,12 +1,5 @@
 import type { LayoutServerLoad } from './$types';
 
-export const load = (async ({ locals: { api } }) => {
-	try {
-		const { data: user } = await api.userApi.getMyUserInfo();
-
-		return { user };
-	} catch (e) {
-		console.error('[ERROR] layout.server.ts [LayoutServerLoad]: ');
-		return { user: undefined };
-	}
+export const load = (async ({ locals: { user } }) => {
+	return { user };
 }) satisfies LayoutServerLoad;