28 lines
779 B
TypeScript
28 lines
779 B
TypeScript
import { eq } from 'drizzle-orm';
|
|
|
|
import { db } from '../db/client';
|
|
import { recordings, streamSessions } from '../db/schema';
|
|
|
|
export const createRecordingForStream = async (streamSessionId: string): Promise<void> => {
|
|
const stream = await db.query.streamSessions.findFirst({ where: eq(streamSessions.id, streamSessionId) });
|
|
|
|
if (!stream) {
|
|
return;
|
|
}
|
|
|
|
const existing = await db.query.recordings.findFirst({ where: eq(recordings.streamSessionId, stream.id) });
|
|
|
|
if (existing) {
|
|
return;
|
|
}
|
|
|
|
await db.insert(recordings).values({
|
|
ownerUserId: stream.ownerUserId,
|
|
streamSessionId: stream.id,
|
|
cameraDeviceId: stream.cameraDeviceId,
|
|
requesterDeviceId: stream.requesterDeviceId,
|
|
status: 'awaiting_upload',
|
|
updatedAt: new Date(),
|
|
});
|
|
};
|