mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	* Refactor main index page * Refactor admin page * Refactor Auth endpoint * Refactor directory to prep for monorepo * Fixed refactoring path * Resolved file path in vite * Refactor photo index page * Refactor thumbnail * Fixed test * Refactor Video Viewer component * Refactor download file * Refactor navigation bar * Refactor upload file check * Simplify Upload Asset signature * PR feedback
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type { GetSession, Handle } from '@sveltejs/kit';
 | |
| import * as cookie from 'cookie';
 | |
| import { api } from '@api';
 | |
| import { AxiosError } from 'axios';
 | |
| 
 | |
| export const handle: Handle = async ({ event, resolve }) => {
 | |
| 	const cookies = cookie.parse(event.request.headers.get('cookie') || '');
 | |
| 
 | |
| 	if (!cookies.session) {
 | |
| 		return await resolve(event);
 | |
| 	}
 | |
| 
 | |
| 	try {
 | |
| 		const { email, isAdmin, firstName, lastName, id, accessToken } = JSON.parse(cookies.session);
 | |
| 
 | |
| 		api.setAccessToken(accessToken);
 | |
| 		const { status } = await api.authenticationApi.validateAccessToken();
 | |
| 
 | |
| 		if (status === 201) {
 | |
| 			event.locals.user = {
 | |
| 				id,
 | |
| 				accessToken,
 | |
| 				firstName,
 | |
| 				lastName,
 | |
| 				isAdmin,
 | |
| 				email,
 | |
| 			};
 | |
| 		}
 | |
| 
 | |
| 		const response = await resolve(event);
 | |
| 
 | |
| 		return response;
 | |
| 	} catch (error) {
 | |
| 		if (error instanceof AxiosError) {
 | |
| 			console.log('Error validating token');
 | |
| 			return await resolve(event);
 | |
| 		}
 | |
| 
 | |
| 		console.log('Error parsing session');
 | |
| 		return await resolve(event);
 | |
| 	}
 | |
| };
 | |
| 
 | |
| export const getSession: GetSession = async ({ locals }) => {
 | |
| 	if (!locals.user) return {};
 | |
| 
 | |
| 	return {
 | |
| 		user: {
 | |
| 			id: locals.user.id,
 | |
| 			accessToken: locals.user.accessToken,
 | |
| 			firstName: locals.user.firstName,
 | |
| 			lastName: locals.user.lastName,
 | |
| 			isAdmin: locals.user.isAdmin,
 | |
| 			email: locals.user.email,
 | |
| 		},
 | |
| 	};
 | |
| };
 |