mirror of
https://github.com/immich-app/immich.git
synced 2025-12-20 09:15:35 +03:00
30 lines
1009 B
TypeScript
30 lines
1009 B
TypeScript
import { authenticate, requestServerInfo } from '$lib/utils/auth';
|
|
import { getFormatter } from '$lib/utils/i18n';
|
|
import { getAllLibraries, getLibraryStatistics, getUserAdmin, searchUsersAdmin } from '@immich/sdk';
|
|
import type { PageLoad } from './$types';
|
|
|
|
export const load = (async ({ url }) => {
|
|
await authenticate(url, { admin: true });
|
|
await requestServerInfo();
|
|
const allUsers = await searchUsersAdmin({ withDeleted: false });
|
|
const $t = await getFormatter();
|
|
|
|
const libraries = await getAllLibraries();
|
|
const statistics = await Promise.all(
|
|
libraries.map(async ({ id }) => [id, await getLibraryStatistics({ id })] as const),
|
|
);
|
|
const owners = await Promise.all(
|
|
libraries.map(async ({ id, ownerId }) => [id, await getUserAdmin({ id: ownerId })] as const),
|
|
);
|
|
|
|
return {
|
|
allUsers,
|
|
libraries,
|
|
statistics: Object.fromEntries(statistics),
|
|
owners: Object.fromEntries(owners),
|
|
meta: {
|
|
title: $t('external_libraries'),
|
|
},
|
|
};
|
|
}) satisfies PageLoad;
|