mirror of
https://github.com/p-stream/backend.git
synced 2026-01-11 20:10:33 +00:00
fix: prevent overwriting settings with defaults
This commit is contained in:
parent
62e0b545be
commit
955578c429
1 changed files with 24 additions and 5 deletions
|
|
@ -114,11 +114,11 @@ export default defineEventHandler(async event => {
|
|||
|
||||
const validatedBody = userSettingsSchema.parse(body);
|
||||
|
||||
const data = {
|
||||
const createData = {
|
||||
application_theme: validatedBody.applicationTheme ?? null,
|
||||
application_language: validatedBody.applicationLanguage,
|
||||
default_subtitle_language: validatedBody.defaultSubtitleLanguage ?? null,
|
||||
proxy_urls: validatedBody.proxyUrls === null ? [] : validatedBody.proxyUrls || [],
|
||||
proxy_urls: validatedBody.proxyUrls === null ? [] : (validatedBody.proxyUrls || []),
|
||||
trakt_key: validatedBody.traktKey ?? null,
|
||||
febbox_key: validatedBody.febboxKey ?? null,
|
||||
enable_thumbnails: validatedBody.enableThumbnails,
|
||||
|
|
@ -134,14 +134,33 @@ export default defineEventHandler(async event => {
|
|||
proxy_tmdb: validatedBody.proxyTmdb,
|
||||
};
|
||||
|
||||
log.info('Preparing to upsert settings', { userId, data });
|
||||
const updateData: Partial<typeof createData> = {};
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'applicationTheme')) updateData.application_theme = createData.application_theme;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'applicationLanguage')) updateData.application_language = createData.application_language;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'defaultSubtitleLanguage')) updateData.default_subtitle_language = createData.default_subtitle_language;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'proxyUrls')) updateData.proxy_urls = createData.proxy_urls;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'traktKey')) updateData.trakt_key = createData.trakt_key;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'febboxKey')) updateData.febbox_key = createData.febbox_key;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableThumbnails')) updateData.enable_thumbnails = createData.enable_thumbnails;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableAutoplay')) updateData.enable_autoplay = createData.enable_autoplay;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableSkipCredits')) updateData.enable_skip_credits = createData.enable_skip_credits;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableDiscover')) updateData.enable_discover = createData.enable_discover;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableFeatured')) updateData.enable_featured = createData.enable_featured;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableDetailsModal')) updateData.enable_details_modal = createData.enable_details_modal;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableImageLogos')) updateData.enable_image_logos = createData.enable_image_logos;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableCarouselView')) updateData.enable_carousel_view = createData.enable_carousel_view;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'sourceOrder')) updateData.source_order = createData.source_order;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'enableSourceOrder')) updateData.enable_source_order = createData.enable_source_order;
|
||||
if (Object.prototype.hasOwnProperty.call(body, 'proxyTmdb')) updateData.proxy_tmdb = createData.proxy_tmdb;
|
||||
|
||||
log.info('Preparing to upsert settings', { userId, updateData, createData: { id: userId, ...createData } });
|
||||
|
||||
const settings = await prisma.user_settings.upsert({
|
||||
where: { id: userId },
|
||||
update: data,
|
||||
update: updateData,
|
||||
create: {
|
||||
id: userId,
|
||||
...data,
|
||||
...createData,
|
||||
},
|
||||
}) as unknown as UserSettings;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue