Untitled

 avatar
unknown
plain_text
2 years ago
1.2 kB
7
Indexable
app.put("/matches/:matchId", async (req, res) => {
  const { matchId } = req.params;
  try {
    const matchData = req.body;
    const { streamingSources, ...match } = matchData;
    const updatedMatch = await updateMatch(matchId, match);

    const updatedStreams = [];

    for (const streamData of streamingSources) {
      const { streamRestrictedData, ...stream } = streamData;
      const updatedStream = await updateStream(stream.id, stream);

      if (streamRestrictedData && streamRestrictedData.length > 0) {
        // Update streamRestrictedData
        await prisma.streamRestrictedData.deleteMany({
          where: {
            streamId: stream.id,
          },
        });

        const restrictedData = streamRestrictedData.map((data) => ({
          ...data,
          streamId: stream.id,
        }));

        await prisma.streamRestrictedData.createMany({
          data: restrictedData,
        });
      }

      updatedStreams.push(updatedStream);
    }

    res.json({
      match: updatedMatch,
      streamingSources: updatedStreams,
    });
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: "Failed to update match and streams" });
  }
});
Editor is loading...