From ea90a7f0868e0c530f60a76d984f24e2c409fe3c Mon Sep 17 00:00:00 2001 From: DecDuck Date: Thu, 29 May 2025 17:28:49 +1000 Subject: [PATCH 1/2] fix: blade's metadata issue --- server/internal/metadata/index.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/server/internal/metadata/index.ts b/server/internal/metadata/index.ts index 9c1f03f..8523e6f 100644 --- a/server/internal/metadata/index.ts +++ b/server/internal/metadata/index.ts @@ -215,11 +215,14 @@ export class MetadataHandler { continue; } - // If we're successful - await pullObjects(); - - const object = await prisma.company.create({ - data: { + const object = await prisma.company.upsert({ + where: { + metadataKey: { + metadataSource: provider.source(), + metadataId: result.id, + }, + }, + create: { metadataSource: provider.source(), metadataId: result.id, metadataOriginalQuery: query, @@ -231,8 +234,15 @@ export class MetadataHandler { mBannerObjectId: result.banner, mWebsite: result.website, }, + update: {}, }); + if (object.mLogoObjectId == result.logo) { + // We created, and didn't update + // So pull objects + await pullObjects(); + } + return object; } From c5f8b44537191e28e71a7130d2b2f8e8df8e84de Mon Sep 17 00:00:00 2001 From: DecDuck Date: Thu, 29 May 2025 17:36:52 +1000 Subject: [PATCH 2/2] fix: metadata update errors --- pages/admin/metadata/games/[id]/index.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pages/admin/metadata/games/[id]/index.vue b/pages/admin/metadata/games/[id]/index.vue index df83e5e..21db8d8 100644 --- a/pages/admin/metadata/games/[id]/index.vue +++ b/pages/admin/metadata/games/[id]/index.vue @@ -569,6 +569,8 @@ const descriptionSaving = ref(0); let savingTimeout: undefined | NodeJS.Timeout; +type PatchGameBody = Partial; + watch(descriptionHTML, (_v) => { console.log(game.value.mDescription); descriptionSaving.value = 1; @@ -581,7 +583,7 @@ watch(descriptionHTML, (_v) => { body: { id: gameId, mDescription: game.value.mDescription, - }, + } satisfies PatchGameBody, }); descriptionSaving.value = 0; } catch (e) { @@ -625,8 +627,8 @@ async function updateBannerImage(id: string) { method: "PATCH", body: { id: gameId, - mBannerId: id, - }, + mBannerObjectId: id, + } satisfies PatchGameBody, }); game.value.mBannerObjectId = mBannerObjectId; } catch (e) { @@ -652,8 +654,8 @@ async function updateCoverImage(id: string) { method: "PATCH", body: { id: gameId, - mCoverId: id, - }, + mCoverObjectId: id, + } satisfies PatchGameBody, }); game.value.mCoverObjectId = mCoverObjectId; } catch (e) { @@ -727,8 +729,8 @@ async function updateImageCarousel() { method: "PATCH", body: { id: gameId, - mImageCarousel: game.value.mImageCarouselObjectIds, - }, + mImageCarouselObjectIds: game.value.mImageCarouselObjectIds, + } satisfies PatchGameBody, }); } catch (e) { createModal(