Merge pull request #27 from eehkay/fix/bigint-serialization

fix: BigInt serialization 500s in video PATCH and approval decision responses
This commit is contained in:
Yusuf İpek
2026-07-22 19:46:08 +03:00
committed by GitHub
2 changed files with 19 additions and 5 deletions
@@ -157,10 +157,17 @@ export async function POST(request: NextRequest, { params }: RouteParams) {
approver: { select: { id: true, name: true, email: true, image: true } },
},
},
// Scalar fields only: the full version row carries BigInt sizeBytes,
// which JSON.stringify rejects when serializing the response.
version: {
include: {
select: {
id: true,
versionNumber: true,
versionLabel: true,
video: {
include: {
select: {
id: true,
title: true,
project: { select: { id: true, name: true } },
},
},
@@ -191,12 +191,19 @@ export async function PATCH(request: NextRequest, { params }: RouteParams) {
if (typeof description === 'string') updateData.description = description.trim() || null;
if (position !== undefined) updateData.position = position;
// Keep the response to scalar video fields: including versions would pull
// in BigInt columns (sizeBytes) that JSON.stringify cannot serialize, and
// no caller consumes the success payload beyond these fields.
const updatedVideo = await db.video.update({
where: { id: videoId },
data: updateData,
include: {
versions: { orderBy: { versionNumber: 'desc' } },
_count: { select: { versions: true } },
select: {
id: true,
title: true,
description: true,
position: true,
projectId: true,
updatedAt: true,
},
});