mirror of
https://github.com/sct/overseerr.git
synced 2025-12-26 16:27:17 +01:00
* feat(jellyfinapi): create Jellyfin API key from admin user * fix(jellyfinapi): add migration script for Jellyfin API key * feat(jellyfinapi): use Jellyfin API key instead of admin auth token * fix(jellyfinapi): fix api key migration * feat(jellyfinapi): add API key field to Jellyfin settings * fix: move the API key field in the Jellyfin settings
32 lines
862 B
TypeScript
32 lines
862 B
TypeScript
import type { AllSettings } from '@server/lib/settings';
|
|
import logger from '@server/logger';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
const migrationsDir = path.join(__dirname, 'migrations');
|
|
|
|
export const runMigrations = async (
|
|
settings: AllSettings
|
|
): Promise<AllSettings> => {
|
|
const migrations = fs
|
|
.readdirSync(migrationsDir)
|
|
.filter((file) => file.endsWith('.js') || file.endsWith('.ts'))
|
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
.map((file) => require(path.join(migrationsDir, file)).default);
|
|
|
|
let migrated = settings;
|
|
|
|
try {
|
|
for (const migration of migrations) {
|
|
migrated = await migration(migrated);
|
|
}
|
|
} catch (e) {
|
|
logger.error(
|
|
`Something went wrong while running settings migrations: ${e.message}`,
|
|
{ label: 'Settings Migrator' }
|
|
);
|
|
}
|
|
|
|
return migrated;
|
|
};
|