diff --git a/apps/api/src/content/content.service.ts b/apps/api/src/content/content.service.ts index 49e734f..6dd0a8f 100644 --- a/apps/api/src/content/content.service.ts +++ b/apps/api/src/content/content.service.ts @@ -1,4 +1,5 @@ import { Injectable, NotFoundException } from "@nestjs/common"; +import { Prisma } from "@prisma/client"; import { resolveTimezone } from "@montech/shared"; import { PrismaService } from "../prisma/prisma.service"; @@ -36,21 +37,24 @@ export class ContentService { const prev = (footer.data || {}) as Record; const addressLines = settings.address ? settings.address.split(/\n|,/).map((s) => s.trim()).filter(Boolean) - : (prev.address as string[]) || []; - const socials = Array.isArray(settings.socials) + : Array.isArray(prev.address) + ? (prev.address as string[]) + : []; + const socials: string[] = Array.isArray(settings.socials) ? (settings.socials as Array<{ label: string; url: string }>).map((s) => s.label).filter(Boolean) - : prev.socials; + : Array.isArray(prev.socials) + ? (prev.socials as string[]) + : []; + const nextData: Prisma.InputJsonValue = { + ...prev, + email: settings.email, + phone: settings.phone, + address: addressLines, + socials, + }; await this.prisma.sectionContent.update({ where: { key: "footer" }, - data: { - data: { - ...prev, - email: settings.email, - phone: settings.phone, - address: addressLines, - socials, - }, - }, + data: { data: nextData }, }); }