mirror of
https://github.com/immich-app/immich.git
synced 2025-12-22 09:15:34 +03:00
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import { AppRoute } from '$lib/constants';
|
|
import { redirect } from '@sveltejs/kit';
|
|
import type { PageLoad } from './$types';
|
|
|
|
export const load = (({ url }) => {
|
|
enum LinkTarget {
|
|
HOME = 'home',
|
|
UNSUBSCRIBE = 'unsubscribe',
|
|
VIEW_ASSET = 'view_asset',
|
|
ACTIVATE_LICENSE = 'activate_license',
|
|
}
|
|
|
|
const queryParams = url.searchParams;
|
|
const target = queryParams.get('target') as LinkTarget;
|
|
switch (target) {
|
|
case LinkTarget.HOME: {
|
|
return redirect(302, AppRoute.PHOTOS);
|
|
}
|
|
|
|
case LinkTarget.UNSUBSCRIBE: {
|
|
return redirect(302, `${AppRoute.USER_SETTINGS}?isOpen=notifications`);
|
|
}
|
|
|
|
case LinkTarget.VIEW_ASSET: {
|
|
const id = queryParams.get('id');
|
|
if (id) {
|
|
return redirect(302, `${AppRoute.PHOTOS}/${id}`);
|
|
}
|
|
break;
|
|
}
|
|
|
|
case LinkTarget.ACTIVATE_LICENSE: {
|
|
// https://my.immich.app/link?target=activate_license&licenseKey=IMCL-9XC3-T4S3-37BU-GGJ5-8MWP-F2Y1-BGEX-AQTF
|
|
const licenseKey = queryParams.get('licenseKey');
|
|
const activationKey = queryParams.get('activationKey');
|
|
const redirectUrl = new URL(AppRoute.BUY, url.origin);
|
|
|
|
if (licenseKey) {
|
|
redirectUrl.searchParams.append('licenseKey', licenseKey);
|
|
|
|
if (activationKey) {
|
|
redirectUrl.searchParams.append('activationKey', activationKey);
|
|
}
|
|
|
|
return redirect(302, redirectUrl);
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
return redirect(302, AppRoute.PHOTOS);
|
|
}) satisfies PageLoad;
|