Add proxyUrls column to UserSettings model

This commit is contained in:
qtchaos 2023-12-29 23:56:25 +02:00
parent 9a27b0b0b4
commit bf55be2978
No known key found for this signature in database
GPG Key ID: 7DA98B2B9EF06A90
4 changed files with 29 additions and 0 deletions

View File

@ -483,6 +483,15 @@
"primary": false, "primary": false,
"nullable": true, "nullable": true,
"mappedType": "string" "mappedType": "string"
},
"proxy_urls": {
"name": "proxy_urls",
"type": "text[]",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"mappedType": "array"
} }
}, },
"name": "user_settings", "name": "user_settings",

View File

@ -0,0 +1,13 @@
import { Migration } from '@mikro-orm/migrations';
export class Migration20231229214215 extends Migration {
async up(): Promise<void> {
this.addSql('alter table "user_settings" add column "proxy_urls" text[] null;');
}
async down(): Promise<void> {
this.addSql('alter table "user_settings" drop column "proxy_urls";');
}
}

View File

@ -13,6 +13,9 @@ export class UserSettings {
@Property({ name: 'default_subtitle_language', nullable: true }) @Property({ name: 'default_subtitle_language', nullable: true })
defaultSubtitleLanguage?: string | null; defaultSubtitleLanguage?: string | null;
@Property({ name: 'proxy_urls', nullable: true, type: 'text[]' })
proxyUrls?: string[] | null;
} }
export interface UserSettingsDTO { export interface UserSettingsDTO {
@ -20,6 +23,7 @@ export interface UserSettingsDTO {
applicationTheme?: string | null; applicationTheme?: string | null;
applicationLanguage?: string | null; applicationLanguage?: string | null;
defaultSubtitleLanguage?: string | null; defaultSubtitleLanguage?: string | null;
proxyUrls?: string[] | null;
} }
export function formatUserSettings( export function formatUserSettings(
@ -30,5 +34,6 @@ export function formatUserSettings(
applicationTheme: userSettings.applicationTheme, applicationTheme: userSettings.applicationTheme,
applicationLanguage: userSettings.applicationLanguage, applicationLanguage: userSettings.applicationLanguage,
defaultSubtitleLanguage: userSettings.defaultSubtitleLanguage, defaultSubtitleLanguage: userSettings.defaultSubtitleLanguage,
proxyUrls: userSettings.proxyUrls,
}; };
} }

View File

@ -41,6 +41,7 @@ export const userSettingsRouter = makeRouter((app) => {
applicationLanguage: z.string().nullable().optional(), applicationLanguage: z.string().nullable().optional(),
applicationTheme: z.string().nullable().optional(), applicationTheme: z.string().nullable().optional(),
defaultSubtitleLanguage: z.string().nullable().optional(), defaultSubtitleLanguage: z.string().nullable().optional(),
proxyUrls: z.string().array().nullable().optional(),
}), }),
}, },
}, },
@ -64,6 +65,7 @@ export const userSettingsRouter = makeRouter((app) => {
settings.defaultSubtitleLanguage = body.defaultSubtitleLanguage; settings.defaultSubtitleLanguage = body.defaultSubtitleLanguage;
if (body.applicationTheme !== undefined) if (body.applicationTheme !== undefined)
settings.applicationTheme = body.applicationTheme; settings.applicationTheme = body.applicationTheme;
if (body.proxyUrls !== undefined) settings.proxyUrls = body.proxyUrls;
await em.persistAndFlush(settings); await em.persistAndFlush(settings);
return formatUserSettings(settings); return formatUserSettings(settings);