mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 17:46:06 +00:00
fix: bigint serialization 500s in video and approval responses
Two endpoints return 500 whenever they succeed, because their success payloads include VideoVersion rows whose sizeBytes column is a BigInt that JSON.stringify rejects: - PATCH /api/projects/[projectId]/videos/[videoId] included all versions; respond with scalar video fields only, which is all any caller reads - POST /api/approvals/[requestId]/decision included the full version row in the resolved request; select the scalar fields the response and notifications actually use The approval bug is reachable the first time any approver responds to a request; the decision itself commits, but the requester sees an error. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
@@ -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,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user