diff --git a/backend/app/controllers/channel.controller.js b/backend/app/controllers/channel.controller.js index 7995726..3595517 100644 --- a/backend/app/controllers/channel.controller.js +++ b/backend/app/controllers/channel.controller.js @@ -55,11 +55,15 @@ export async function getById(req, res) { channels.name AS name, channels.description AS description, users.picture AS profilePicture, - COUNT(h.id) AS views + COUNT(h.id) AS views, + COUNT(likes.id) AS likes, + COUNT(c.id) AS comments FROM public.videos LEFT JOIN public.channels ON videos.channel = channels.id LEFT JOIN public.users ON channels.OWNER = users.id LEFT JOIN public.history h ON h.video = videos.id + LEFT JOIN public.likes ON likes.video = videos.id + LEFT JOIN public.comments c ON c.video = videos.id WHERE videos.channel = $1 GROUP BY videos.id, channels.name, channels.description, users.username, users.picture `; diff --git a/backend/app/controllers/video.controller.js b/backend/app/controllers/video.controller.js index e12d18e..2125818 100644 --- a/backend/app/controllers/video.controller.js +++ b/backend/app/controllers/video.controller.js @@ -1,10 +1,10 @@ -import {getClient} from "../utils/database.js"; +import { getClient } from "../utils/database.js"; import * as path from "node:path"; import * as fs from "node:fs"; import { fileURLToPath } from 'url'; import { dirname } from 'path'; import jwt from "jsonwebtoken"; -import {query} from "express-validator"; +import { query } from "express-validator"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -54,7 +54,7 @@ export async function upload(req, res) { const id = idResult.rows[0].id; logger.write("successfully uploaded video", 200); await client.end() - res.status(200).json({"message": "Successfully uploaded video", "id":id}); + res.status(200).json({ "message": "Successfully uploaded video", "id": id }); } @@ -78,7 +78,7 @@ export async function uploadThumbnail(req, res) { await client.query(updateQuery, [file, req.body.video]); logger.write("successfully uploaded thumbnail", 200); await client.end(); - res.status(200).json({"message": "Successfully uploaded thumbnail"}); + res.status(200).json({ "message": "Successfully uploaded thumbnail" }); } export async function getById(req, res) { @@ -148,9 +148,48 @@ export async function update(req, res) { const client = await getClient(); const query = `UPDATE videos SET title = $1, description = $2, visibility = $3 WHERE id = $4`; await client.query(query, [req.body.title, req.body.description, req.body.visibility, id]); + + const resultQuery = ` + SELECT + videos.id, + videos.title, + videos.thumbnail, + videos.channel, + videos.file, + videos.description, + videos.visibility, + videos.release_date, + COUNT(DISTINCT l.id) AS likes_count, + COUNT(DISTINCT h.id) AS history_count, + JSON_AGG( + JSON_BUILD_OBJECT( + 'id', c.id, + 'content', c.content, + 'username', u.username, + 'video', c.video, + 'created_at', c.created_at, + 'picture', u.picture + ) + ) FILTER ( + WHERE + c.id IS NOT NULL + ) AS comments, + JSON_AGG(DISTINCT t.name) FILTER (WHERE t.name IS NOT NULL) AS tags + FROM public.videos + LEFT JOIN public.likes l ON l.video = videos.id + LEFT JOIN public.history h ON h.video = videos.id + LEFT JOIN public.comments c ON c.video = videos.id + LEFT JOIN public.video_tags vt ON vt.video = videos.id + LEFT JOIN public.tags t ON vt.tag = t.id + LEFT JOIN public.users u ON u.id = c.author + WHERE + videos.id = $1 + GROUP BY public.videos.id + `; + const result = await client.query(resultQuery, [id]); logger.write("successfully updated video", 200); client.end() - res.status(200).json({"message": "Successfully updated video"}); + res.status(200).json(result.rows[0]); } export async function updateVideo(req, res) { @@ -163,15 +202,15 @@ export async function updateVideo(req, res) { const video = videoResult.rows[0]; const slug = video.slug; const format = video.format; - const pathToDelete = path.join(__dirname, "../uploads/videos/", slug + "." + format ); + const pathToDelete = path.join(__dirname, "../uploads/videos/", slug + "." + format); fs.unlink(pathToDelete, (error) => { if (error) { logger.write(error, 500); client.end() - res.status(500).json({"message": "Failed to delete video"}); + res.status(500).json({ "message": "Failed to delete video" }); return } - logger.action("successfully deleted video " + slug + "." + format ); + logger.action("successfully deleted video " + slug + "." + format); const fileBuffer = req.file.buffer; const finalName = slug + "." + format; const destinationPath = path.join(__dirname, "../uploads/videos/" + finalName) @@ -180,7 +219,7 @@ export async function updateVideo(req, res) { logger.write("successfully updated video", 200); client.end() - res.status(200).json({"message": "Successfully updated video"}); + res.status(200).json({ "message": "Successfully updated video" }); }) @@ -202,7 +241,7 @@ export async function del(req, res) { if (error) { logger.write(error, 500); client.end() - res.status(500).json({"message": "Failed to delete video"}); + res.status(500).json({ "message": "Failed to delete video" }); return } @@ -210,14 +249,14 @@ export async function del(req, res) { fs.unlink(pathToDelete, async (error) => { if (error) { logger.write(error, 500); - res.status(500).json({"message": "Failed to delete video"}); + res.status(500).json({ "message": "Failed to delete video" }); return } const query = `DELETE FROM videos WHERE id = $1`; await client.query(query, [id]); logger.write("successfully deleted video", 200); client.end() - res.status(200).json({"message": "Successfully deleted video"}); + res.status(200).json({ "message": "Successfully deleted video" }); }) }) @@ -248,7 +287,7 @@ export async function toggleLike(req, res) { logger.write("no likes found adding likes for video " + id, 200); client.end(); - res.status(200).json({"message": "Successfully added like", "likes": likesCount}); + res.status(200).json({ "message": "Successfully added like", "likes": likesCount }); } else { const query = `DELETE FROM likes WHERE owner = $1 AND video = $2`; await client.query(query, [userId, id]); @@ -260,7 +299,7 @@ export async function toggleLike(req, res) { logger.write("likes found, removing like for video " + id, 200); client.end(); - res.status(200).json({"message": "Successfully removed like", "likes": likesCount}); + res.status(200).json({ "message": "Successfully removed like", "likes": likesCount }); } @@ -315,7 +354,7 @@ export async function addTags(req, res) { logger.write("successfully added tags to video " + videoId, 200); await client.end(); - res.status(200).json({"message": "Successfully added tags to video", "tags" : updatedTags.map(tag => tag.name)}); + res.status(200).json({ "message": "Successfully added tags to video", "tags": updatedTags.map(tag => tag.name) }); } @@ -333,7 +372,7 @@ export async function getSimilarVideos(req, res) { if (tags.length === 0) { logger.write("No tags found for video " + id, 404); - res.status(404).json({"message": "No similar videos found"}); + res.status(404).json({ "message": "No similar videos found" }); return; } @@ -449,5 +488,5 @@ export async function addViews(req, res) { logger.write("successfully added views for video " + id, 200); await client.end(); - res.status(200).json({"message": "Successfully added views"}); + res.status(200).json({ "message": "Successfully added views" }); } \ No newline at end of file diff --git a/backend/logs/access.log b/backend/logs/access.log index 62b0a65..47212eb 100644 --- a/backend/logs/access.log +++ b/backend/logs/access.log @@ -4251,3 +4251,1242 @@ [2025-08-14 07:27:35.583] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 [2025-08-14 07:27:46.794] [undefined] POST(/login): try to login with username 'sacha' [2025-08-14 07:27:46.845] [undefined] POST(/login): Successfully logged in with status 200 +[2025-08-14 08:50:09.067] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 08:50:09.077] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 08:50:09.092] [undefined] GET(/:id/channel/subscribed): check if user 2 is subscribed to channel 1 +[2025-08-14 08:50:09.095] [undefined] GET(/:id/channel/subscribed): user 2 is subscribed to channel 1 with status 200 +[2025-08-14 08:57:38.102] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 08:57:38.107] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 08:57:38.114] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 08:57:46.615] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 08:57:46.619] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 08:57:46.626] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 08:58:13.003] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 08:58:13.007] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 08:58:13.009] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 08:58:13.011] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 08:58:13.019] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 08:59:50.647] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 08:59:50.650] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 08:59:50.660] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 08:59:51.555] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 08:59:51.557] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 08:59:51.566] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 08:59:55.746] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 08:59:55.749] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 08:59:55.758] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:00:11.066] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:00:11.069] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:00:11.077] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:00:13.671] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:00:13.673] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:00:13.682] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:00:23.431] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:00:23.433] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:00:23.435] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:00:23.439] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:00:23.446] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:02:15.763] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:02:15.765] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:02:15.767] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:02:15.770] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:02:16.719] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:02:16.721] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:02:16.723] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:02:16.725] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:02:22.351] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:02:22.354] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:02:22.356] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:02:22.360] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:02:38.904] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:02:38.907] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:02:38.909] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:02:38.913] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:02:38.920] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:03:54.680] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:03:54.683] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:03:54.687] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:03:54.691] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:03:54.698] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:14.513] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:14.516] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:14.518] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:14.523] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:14.530] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:17.776] [undefined] PUT(/:id): try to update user 2 +[2025-08-14 09:04:17.781] [undefined] PUT(/:id): successfully updated user 2 with status 200 +[2025-08-14 09:04:20.637] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:20.639] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:20.647] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:20.651] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:20.659] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:20.971] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:20.973] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:20.975] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:20.978] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:20.984] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:21.152] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:21.154] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:21.156] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:21.159] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:21.167] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:21.307] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:21.311] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:21.313] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:21.318] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:21.324] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:21.471] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:21.473] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:21.476] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:21.480] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:21.489] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:04:21.624] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:04:21.626] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:04:21.628] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:04:21.632] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:04:21.638] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:06:36.577] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:06:36.586] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:06:36.589] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:06:36.595] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:06:38.766] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:06:38.769] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:07:08.435] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:07:08.438] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:07:11.735] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:07:11.737] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:11:10.062] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:11:10.065] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:11:37.761] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:11:37.764] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:14:06.160] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:14:06.162] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:14:26.867] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:14:26.870] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:15:14.249] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:15:14.252] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:15:52.065] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:15:52.068] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:16:04.933] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:16:04.937] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:16:23.841] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:16:23.844] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:16:34.962] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:16:34.966] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:16:45.544] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:16:45.547] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:16:58.151] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:16:58.156] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:17:21.354] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:17:21.357] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:17:30.631] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:17:30.637] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:17:30.706] [undefined] POST(/thumbnail): try to add thumbnail to video 7 +[2025-08-14 09:17:30.711] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 09:17:30.731] [undefined] PUT(/:id/tags): try to add tags to video 7 +[2025-08-14 09:17:30.743] [undefined] PUT(/:id/tags): successfully added tags to video 7 with status 200 +[2025-08-14 09:17:42.040] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:17:42.042] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:17:42.065] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:17:42.069] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:17:42.074] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:17:43.166] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:17:43.176] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:17:43.179] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:17:43.187] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:17:51.833] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:17:51.836] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:20:14.268] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:20:14.270] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:20:23.122] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:20:23.126] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:20:31.995] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:20:32.005] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:21:37.073] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:21:37.076] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:21:47.365] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:21:47.369] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:21:47.437] [undefined] POST(/thumbnail): try to add thumbnail to video 10 +[2025-08-14 09:21:47.441] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 09:21:47.461] [undefined] PUT(/:id/tags): try to add tags to video 10 +[2025-08-14 09:21:47.471] [undefined] PUT(/:id/tags): successfully added tags to video 10 with status 200 +[2025-08-14 09:24:03.986] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:24:03.989] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:24:14.935] [undefined] POST(/): try to upload video with status undefined +[2025-08-14 09:24:14.939] [undefined] POST(/): successfully uploaded video with status 200 +[2025-08-14 09:24:15.007] [undefined] POST(/thumbnail): try to add thumbnail to video 11 +[2025-08-14 09:24:15.010] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 09:24:15.029] [undefined] PUT(/:id/tags): try to add tags to video 11 +[2025-08-14 09:24:15.038] [undefined] PUT(/:id/tags): successfully added tags to video 11 with status 200 +[2025-08-14 09:41:32.581] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:41:32.584] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:41:32.586] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:41:32.589] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:41:32.598] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:42:38.064] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:42:38.074] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:42:38.077] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:42:38.085] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:43:15.412] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:43:15.421] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:43:15.423] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:43:15.433] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:43:50.865] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:43:50.868] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:43:50.871] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:43:50.876] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:43:50.883] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:43:51.540] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:43:51.549] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:43:51.552] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:43:51.561] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:46:16.293] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:46:16.303] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:46:16.305] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:46:16.312] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:46:16.480] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:46:16.490] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:46:16.493] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:46:16.500] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:46:37.855] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:46:37.864] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:46:37.882] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:46:37.890] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:47:45.879] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:47:45.888] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:48:09.671] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:48:09.679] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:48:31.123] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:48:31.133] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:48:31.136] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:48:31.143] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:49:57.452] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:49:57.462] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:50:25.170] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:50:25.179] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:50:40.001] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:50:40.004] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:50:40.006] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:50:40.009] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:50:40.017] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:50:40.659] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:50:40.669] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:50:48.631] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:50:48.640] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:51:30.022] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:51:30.031] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:51:49.074] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:51:49.083] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:51:49.086] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:51:49.095] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:52:03.749] [undefined] GET(/:id): try to get video 9 +[2025-08-14 09:52:03.751] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 09:52:03.772] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 09:52:03.775] [undefined] GET(/:id): successfully get video 9 with status 200 +[2025-08-14 09:52:05.074] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:52:05.084] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:52:05.087] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:52:05.094] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:52:05.900] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 09:52:05.903] [undefined] GET(/:id): try to get video 3 +[2025-08-14 09:52:05.913] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 09:52:05.917] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 09:52:06.512] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:52:06.521] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:52:06.524] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:52:06.531] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:52:24.484] [undefined] POST(/login): try to login with username 'sacha2' +[2025-08-14 09:52:24.535] [undefined] POST(/login): Successfully logged in with status 200 +[2025-08-14 09:52:43.615] [undefined] GET(/:id): try to get video 2 +[2025-08-14 09:52:43.626] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 09:52:43.638] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 09:52:43.651] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 09:52:49.618] [undefined] GET(/:id): try to get video 3 +[2025-08-14 09:52:49.628] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 09:52:49.656] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 09:52:49.668] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 09:52:54.224] [undefined] GET(/:id): try to get video 3 +[2025-08-14 09:52:54.234] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 09:52:54.248] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 09:52:54.260] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 09:54:26.465] [undefined] POST(/login): try to login with username 'sacha2' +[2025-08-14 09:54:26.515] [undefined] POST(/login): Successfully logged in with status 200 +[2025-08-14 09:54:27.736] [undefined] GET(/:id): try to get video 2 +[2025-08-14 09:54:27.746] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 09:54:27.757] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 09:54:27.768] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 09:54:27.793] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 09:54:27.804] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 09:54:30.556] [undefined] GET(/:id): try to get video 3 +[2025-08-14 09:54:30.566] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 09:54:30.578] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 09:54:30.590] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 09:54:30.619] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 09:54:30.627] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 09:54:31.642] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 09:54:31.651] [undefined] GET(/:id/like): no likes found adding likes for video 3 with status 200 +[2025-08-14 09:54:36.146] [undefined] POST(/): try to post comment +[2025-08-14 09:54:36.155] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 09:54:39.223] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 09:54:39.226] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 09:54:39.229] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 09:54:39.233] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 09:54:39.240] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 09:54:40.000] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:54:40.008] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:54:40.013] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:54:40.020] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 09:54:42.199] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 09:54:42.202] [undefined] GET(/:id): try to get video 3 +[2025-08-14 09:54:42.212] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 09:54:42.217] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 09:55:00.200] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 09:55:00.212] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 09:55:00.215] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 09:55:00.222] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:23:18.930] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:23:18.940] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:23:18.943] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:23:18.950] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:33:37.823] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:33:37.833] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:33:37.836] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:33:37.843] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:33:39.614] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:33:39.623] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:33:39.627] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:33:39.635] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:33:45.990] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:33:45.999] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:33:46.002] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:34:06.394] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:34:06.403] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:34:06.409] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:34:06.415] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:36:39.509] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:36:39.519] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:36:39.523] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:36:39.532] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:36:52.157] [undefined] GET(/:id): try to get video 3 +[2025-08-14 10:36:52.167] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 10:36:52.180] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 10:36:52.194] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 10:36:52.232] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 10:36:52.241] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 10:36:54.291] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 10:36:54.299] [undefined] GET(/:id/like): likes found, removing like for video 3 with status 200 +[2025-08-14 10:36:55.593] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 10:36:55.596] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 10:36:55.599] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 10:36:55.603] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 10:36:55.610] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 10:36:57.008] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:36:57.017] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:36:57.021] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:36:57.029] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:37:00.362] [undefined] GET(/:id): try to get video 3 +[2025-08-14 10:37:00.365] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 10:37:00.375] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 10:37:00.379] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 10:37:01.575] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:37:01.584] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:37:01.588] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:37:01.596] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:37:38.318] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:37:38.328] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:37:38.332] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:37:38.341] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:37:39.033] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:37:39.042] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:37:39.046] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:37:39.054] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:38:00.552] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:38:00.563] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:38:00.566] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:38:00.574] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:40:16.495] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:40:16.505] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:40:16.509] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:40:16.518] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:40:23.501] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:40:23.510] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:40:23.513] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:40:23.521] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:40:33.046] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:40:33.055] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:40:33.059] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:40:33.067] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:40:49.285] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:40:49.294] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:40:49.299] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:40:49.307] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:41:01.916] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:41:01.940] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:41:01.944] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:41:01.952] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:41:05.082] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:41:05.086] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:41:06.943] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:41:06.947] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:41:09.059] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:41:09.069] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:41:09.074] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:41:09.083] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:41:22.315] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:41:22.325] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:41:22.328] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:41:22.335] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:41:24.953] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:41:24.957] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:42:19.994] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:42:20.003] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:42:20.005] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:42:20.014] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:42:23.541] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:42:23.551] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:42:54.247] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:42:54.257] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:42:54.260] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:42:54.269] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:42:58.515] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:42:58.518] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:43:01.600] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:43:01.609] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:43:01.613] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:43:01.621] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:43:10.977] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:43:10.986] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:43:10.990] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:43:10.997] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:43:14.883] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:43:14.908] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:43:57.229] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:43:57.239] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:43:57.243] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:43:57.251] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:43:59.949] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:43:59.954] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:44:13.839] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:44:13.848] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:44:13.866] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:44:13.873] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:44:16.611] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:44:16.616] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:44:53.689] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:44:53.715] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:45:59.386] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:45:59.396] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:45:59.400] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:45:59.410] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:46:03.914] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:46:03.924] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:46:23.903] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:46:23.914] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:46:23.918] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:46:23.925] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:46:26.052] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:46:26.058] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:46:31.809] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:46:31.835] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 10:46:40.187] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:46:40.198] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:46:40.203] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:46:52.930] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 10:46:52.940] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 10:46:52.944] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 10:46:52.954] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 10:46:54.961] [undefined] PUT(/:id): try to update channel with id 1 +[2025-08-14 10:46:54.966] [undefined] PUT(/:id): Successfully updated channel with status 200 +[2025-08-14 11:08:56.806] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 11:08:56.817] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 11:08:56.820] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 11:08:56.828] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 11:08:57.886] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:08:57.889] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:08:57.900] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:08:57.903] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:10:10.097] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:10.105] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:11.141] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:11.150] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:18.893] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:18.901] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:21.976] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:21.985] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:32.447] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:10:32.450] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:32.458] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:32.462] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:10:38.874] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:10:38.884] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:10:38.898] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 11:10:38.910] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 11:10:38.931] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 11:10:38.942] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 11:10:41.994] [undefined] POST(/): try to post comment +[2025-08-14 11:10:42.020] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 11:10:44.656] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:44.658] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:10:44.668] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:44.673] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:10:50.106] [undefined] GET(/:id/like): try to toggle like on video 2 +[2025-08-14 11:10:50.114] [undefined] GET(/:id/like): no likes found adding likes for video 2 with status 200 +[2025-08-14 11:10:50.714] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:10:50.723] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:10:50.737] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 11:10:50.747] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 11:10:50.774] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 11:10:50.785] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 11:10:52.361] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:10:52.364] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:10:52.374] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:10:52.378] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:33:55.182] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:33:55.193] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:33:56.151] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:33:56.162] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:34:23.507] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:34:23.511] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:34:23.520] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:34:23.525] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:34:26.218] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:34:26.221] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:34:26.231] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:34:26.235] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:34:26.870] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:34:26.873] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:34:26.884] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:34:26.889] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:34:39.518] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:34:39.520] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:34:39.530] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:34:39.536] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:34:46.394] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:34:46.397] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:34:46.415] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:34:46.421] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:39:09.755] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:39:09.758] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:39:09.770] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:39:09.774] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:39:25.896] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:39:25.899] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:39:25.909] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:39:25.913] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:39:29.813] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:39:29.821] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:39:51.316] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:39:51.320] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:39:51.328] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:39:51.332] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:39:56.476] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:39:56.502] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:40:11.654] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:40:11.656] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:40:11.668] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:40:11.672] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:45:07.788] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:45:07.791] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:45:07.801] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:45:07.805] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:45:12.172] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:45:12.183] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:45:25.685] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:45:25.688] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:45:25.698] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:45:25.703] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:45:30.477] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:45:30.485] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:46:34.147] [undefined] PUT(/:id): failed due to invalid values with status 400 +[2025-08-14 11:46:41.179] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:46:41.183] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:46:41.196] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:46:41.201] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:46:46.274] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:46:46.282] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:46:59.148] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:46:59.174] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:53:44.217] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:53:44.220] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:53:44.234] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:53:44.241] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:53:49.499] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:53:49.510] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:55:09.222] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:55:09.225] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:55:09.238] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:55:09.244] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:55:16.163] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:55:16.173] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:55:24.594] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:55:24.604] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:55:24.618] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 11:55:24.631] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 11:55:24.663] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 11:55:24.672] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 11:56:01.283] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:56:01.297] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:56:01.318] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 11:56:01.330] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 11:56:01.389] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 11:56:01.397] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 11:56:03.278] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 11:56:03.281] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 11:56:03.285] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 11:56:03.293] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 11:56:03.302] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 11:56:04.070] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 11:56:04.080] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 11:56:04.084] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 11:56:04.092] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 11:56:06.055] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:56:06.057] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:56:06.067] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:56:06.071] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:56:09.525] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:56:09.534] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:56:21.216] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:56:21.225] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 11:57:15.584] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:57:15.587] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:57:15.598] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:57:15.604] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:57:18.904] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 11:59:35.276] [undefined] GET(/:id): try to get video 2 +[2025-08-14 11:59:35.278] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 11:59:35.291] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 11:59:35.297] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 11:59:37.943] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 12:00:48.679] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:00:48.681] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:00:48.693] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:00:48.699] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:00:51.614] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 12:00:51.624] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 12:02:00.772] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:02:00.775] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:02:00.784] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:02:00.788] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:02:36.978] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:02:36.981] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:02:36.993] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:02:36.999] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:02:39.857] [undefined] PUT(/:id): try to update video 2 +[2025-08-14 12:02:39.869] [undefined] PUT(/:id): successfully updated video with status 200 +[2025-08-14 12:02:44.944] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:02:44.953] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:20:03.405] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:20:03.409] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:20:03.418] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:20:03.421] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:20:10.325] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:20:10.328] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:20:18.374] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:20:18.377] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:20:22.987] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:20:22.993] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:20:28.283] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 12:20:28.287] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 12:20:28.294] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 12:20:28.299] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 12:20:28.305] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 12:20:28.916] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:20:28.927] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:20:28.930] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:20:28.937] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:20:30.335] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:20:30.337] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:20:30.347] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:20:30.351] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:20:32.702] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:20:32.706] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:20:43.168] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:20:43.171] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:20:58.988] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:20:58.991] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:20:59.002] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:20:59.007] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:21:01.051] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:21:01.054] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:21:54.778] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:21:54.781] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:21:54.793] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:21:54.797] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:21:56.828] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:21:56.853] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:22:03.157] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:22:03.160] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:22:19.177] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:22:19.182] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:22:19.189] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:22:19.192] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:22:20.940] [undefined] POST(/thumbnail): try to add thumbnail to video 2 +[2025-08-14 12:22:20.942] [undefined] POST(/thumbnail): successfully uploaded thumbnail with status 200 +[2025-08-14 12:25:01.156] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:25:01.158] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:25:01.190] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:25:01.195] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:25:05.246] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:25:05.258] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:25:29.950] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:25:29.953] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:25:29.964] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:25:29.969] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:25:32.325] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:25:32.335] [undefined] PUT(/:id/tags): Tag dzqdzq already exists for video 2 with status 200 +[2025-08-14 12:25:32.341] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:26:20.072] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:26:20.075] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:26:20.085] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:26:20.090] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:26:22.839] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:26:22.851] [undefined] PUT(/:id/tags): Tag dzqdzq already exists for video 2 with status 200 +[2025-08-14 12:26:22.855] [undefined] PUT(/:id/tags): Tag dzdzq already exists for video 2 with status 200 +[2025-08-14 12:26:22.858] [undefined] PUT(/:id/tags): Tag dzqdzq already exists for video 2 with status 200 +[2025-08-14 12:26:22.862] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:26:51.858] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:26:51.861] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:26:51.869] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:26:51.872] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:26:52.796] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:26:52.806] [undefined] PUT(/:id/tags): Tag dzdzq already exists for video 2 with status 200 +[2025-08-14 12:26:52.810] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:26:54.399] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:26:54.408] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:26:56.931] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:26:56.941] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:26:58.742] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:26:58.750] [undefined] PUT(/:id/tags): Tag dzqdqzdzq already exists for video 2 with status 200 +[2025-08-14 12:26:58.754] [undefined] PUT(/:id/tags): Tag dzqdzq already exists for video 2 with status 200 +[2025-08-14 12:26:58.758] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:02.277] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:02.286] [undefined] PUT(/:id/tags): Tag dzqdqzdzq already exists for video 2 with status 200 +[2025-08-14 12:27:02.290] [undefined] PUT(/:id/tags): Tag dzqdzq already exists for video 2 with status 200 +[2025-08-14 12:27:02.295] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:03.403] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:03.412] [undefined] PUT(/:id/tags): Tag dzqdqzdzq already exists for video 2 with status 200 +[2025-08-14 12:27:03.416] [undefined] PUT(/:id/tags): Tag dzqdzqdzqzdzqzdzd already exists for video 2 with status 200 +[2025-08-14 12:27:03.420] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:04.462] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:04.471] [undefined] PUT(/:id/tags): Tag dzqdzqdzqzdzqzdzd already exists for video 2 with status 200 +[2025-08-14 12:27:04.475] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:05.607] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:05.615] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:10.270] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:10.278] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:27:10.282] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:11.329] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:11.340] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:27:11.344] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:27:11.348] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:12.696] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:12.705] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:30.056] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:30.064] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:27:30.068] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:30.895] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:30.904] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:27:30.908] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:27:30.912] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:27:31.488] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:27:31.492] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:27:31.501] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:27:31.504] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:27:32.727] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:27:32.737] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:31:17.253] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:31:17.255] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:31:17.267] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:31:17.270] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:31:30.573] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:31:30.584] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:31:30.605] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:31:30.615] [undefined] GET(/:id/similar): No tags found for video 2 with status 404 +[2025-08-14 12:32:28.088] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:32:28.100] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:32:28.120] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:32:28.131] [undefined] GET(/:id/similar): No tags found for video 2 with status 404 +[2025-08-14 12:32:28.187] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 12:32:28.195] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 12:32:37.740] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:32:37.752] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:32:37.765] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:32:37.775] [undefined] GET(/:id/similar): No tags found for video 2 with status 404 +[2025-08-14 12:32:37.800] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 12:32:37.813] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 12:32:54.881] [undefined] GET(/:id/channel): try to retrieve channel of user 2 +[2025-08-14 12:32:54.884] [undefined] GET(/:id/channel): successfully retrieved channel of user 2 with status 200 +[2025-08-14 12:32:54.887] [undefined] GET(/:id/history): try to retrieve history of user 2 +[2025-08-14 12:32:54.891] [undefined] GET(/:id/history): successfully retrieved history of user 2 with status 200 +[2025-08-14 12:32:54.898] [undefined] GET(/user/:id): Playlists retrieved for user with id 2 with status 200 +[2025-08-14 12:32:56.237] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:32:56.246] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:32:56.251] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:32:56.259] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:32:56.867] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:32:56.869] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:32:56.880] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:32:56.884] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:33:00.303] [undefined] PUT(/:id/tags): try to add tags to video 2 +[2025-08-14 12:33:00.311] [undefined] PUT(/:id/tags): Tag dzq already exists for video 2 with status 200 +[2025-08-14 12:33:00.315] [undefined] PUT(/:id/tags): successfully added tags to video 2 with status 200 +[2025-08-14 12:33:01.379] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:01.389] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:01.392] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:01.400] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:02.181] [undefined] GET(/:id): try to get video 8 +[2025-08-14 12:33:02.184] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:02.195] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:02.200] [undefined] GET(/:id): successfully get video 8 with status 200 +[2025-08-14 12:33:04.752] [undefined] PUT(/:id/tags): try to add tags to video 8 +[2025-08-14 12:33:04.761] [undefined] PUT(/:id/tags): Tag dzq already exists for video 8 with status 200 +[2025-08-14 12:33:04.766] [undefined] PUT(/:id/tags): successfully added tags to video 8 with status 200 +[2025-08-14 12:33:05.305] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:05.315] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:05.320] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:05.328] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:06.375] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:06.378] [undefined] GET(/:id): try to get video 8 +[2025-08-14 12:33:06.386] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:06.393] [undefined] GET(/:id): successfully get video 8 with status 200 +[2025-08-14 12:33:07.822] [undefined] PUT(/:id/tags): try to add tags to video 8 +[2025-08-14 12:33:07.832] [undefined] PUT(/:id/tags): successfully added tags to video 8 with status 200 +[2025-08-14 12:33:08.214] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:08.224] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:08.228] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:08.236] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:09.278] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:33:09.281] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:09.292] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:09.298] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:33:10.961] [undefined] PUT(/:id/tags): try to add tags to video 3 +[2025-08-14 12:33:10.970] [undefined] PUT(/:id/tags): Tag video already exists for video 3 with status 200 +[2025-08-14 12:33:10.976] [undefined] PUT(/:id/tags): successfully added tags to video 3 with status 200 +[2025-08-14 12:33:12.680] [undefined] PUT(/:id/tags): try to add tags to video 3 +[2025-08-14 12:33:12.690] [undefined] PUT(/:id/tags): Tag video already exists for video 3 with status 200 +[2025-08-14 12:33:12.694] [undefined] PUT(/:id/tags): successfully added tags to video 3 with status 200 +[2025-08-14 12:33:14.401] [undefined] PUT(/:id/tags): try to add tags to video 3 +[2025-08-14 12:33:14.410] [undefined] PUT(/:id/tags): Tag video already exists for video 3 with status 200 +[2025-08-14 12:33:14.414] [undefined] PUT(/:id/tags): Tag dzq already exists for video 3 with status 200 +[2025-08-14 12:33:14.418] [undefined] PUT(/:id/tags): successfully added tags to video 3 with status 200 +[2025-08-14 12:33:15.139] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:15.153] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:15.160] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:15.169] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:17.088] [undefined] GET(/:id): try to get video 10 +[2025-08-14 12:33:17.090] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:17.101] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:17.105] [undefined] GET(/:id): successfully get video 10 with status 200 +[2025-08-14 12:33:21.579] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:21.589] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:21.593] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:21.600] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:23.814] [undefined] GET(/:id): try to get video 11 +[2025-08-14 12:33:23.817] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:23.828] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:23.831] [undefined] GET(/:id): successfully get video 11 with status 200 +[2025-08-14 12:33:28.259] [undefined] PUT(/:id/tags): try to add tags to video 11 +[2025-08-14 12:33:28.270] [undefined] PUT(/:id/tags): successfully added tags to video 11 with status 200 +[2025-08-14 12:33:29.545] [undefined] PUT(/:id/tags): try to add tags to video 11 +[2025-08-14 12:33:29.554] [undefined] PUT(/:id/tags): Tag dzq already exists for video 11 with status 200 +[2025-08-14 12:33:29.558] [undefined] PUT(/:id/tags): successfully added tags to video 11 with status 200 +[2025-08-14 12:33:30.089] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:30.099] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:30.103] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:30.110] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:31.362] [undefined] GET(/:id): try to get video 7 +[2025-08-14 12:33:31.364] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:31.374] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:31.378] [undefined] GET(/:id): successfully get video 7 with status 200 +[2025-08-14 12:33:34.312] [undefined] PUT(/:id/tags): try to add tags to video 7 +[2025-08-14 12:33:34.324] [undefined] PUT(/:id/tags): successfully added tags to video 7 with status 200 +[2025-08-14 12:33:35.299] [undefined] PUT(/:id/tags): try to add tags to video 7 +[2025-08-14 12:33:35.307] [undefined] PUT(/:id/tags): Tag dzq already exists for video 7 with status 200 +[2025-08-14 12:33:35.311] [undefined] PUT(/:id/tags): successfully added tags to video 7 with status 200 +[2025-08-14 12:33:36.059] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:36.069] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:36.071] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:36.080] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:38.141] [undefined] GET(/:id/likes/day): try to get likes per day +[2025-08-14 12:33:38.143] [undefined] GET(/:id): try to get video 1 +[2025-08-14 12:33:38.154] [undefined] GET(/:id/likes/day): successfully retrieved likes per day with status 200 +[2025-08-14 12:33:38.158] [undefined] GET(/:id): successfully get video 1 with status 200 +[2025-08-14 12:33:40.312] [undefined] PUT(/:id/tags): try to add tags to video 1 +[2025-08-14 12:33:40.321] [undefined] PUT(/:id/tags): Tag minecraft already exists for video 1 with status 200 +[2025-08-14 12:33:40.325] [undefined] PUT(/:id/tags): Tag survie already exists for video 1 with status 200 +[2025-08-14 12:33:40.328] [undefined] PUT(/:id/tags): Tag moddée already exists for video 1 with status 200 +[2025-08-14 12:33:40.332] [undefined] PUT(/:id/tags): Tag create mod already exists for video 1 with status 200 +[2025-08-14 12:33:40.335] [undefined] PUT(/:id/tags): Tag dzq already exists for video 1 with status 200 +[2025-08-14 12:33:40.339] [undefined] PUT(/:id/tags): successfully added tags to video 1 with status 200 +[2025-08-14 12:33:41.447] [undefined] GET(/:id): try to get channel with id 1 +[2025-08-14 12:33:41.457] [undefined] GET(/:id/stats): try to get stats +[2025-08-14 12:33:41.459] [undefined] GET(/:id): Successfully get channel with id 1 with status 200 +[2025-08-14 12:33:41.468] [undefined] GET(/:id/stats): Successfully get stats with status 200 +[2025-08-14 12:33:43.866] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:33:43.876] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:33:43.890] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:33:43.905] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 12:33:43.950] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 12:33:43.960] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 12:34:57.369] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:34:57.379] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:34:57.395] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:34:57.411] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 12:34:57.447] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 12:34:57.455] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 12:34:58.556] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:34:58.565] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:34:58.579] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:34:58.594] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 12:34:58.625] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 12:34:58.635] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 12:35:52.370] [undefined] GET(/:id): try to get video 2 +[2025-08-14 12:35:52.381] [undefined] GET(/:id): successfully get video 2 with status 200 +[2025-08-14 12:35:52.398] [undefined] GET(/:id/similar): try to get similar videos for video 2 +[2025-08-14 12:35:52.412] [undefined] GET(/:id/similar): successfully get similar videos for video 2 with status 200 +[2025-08-14 12:35:52.480] [undefined] GET(/:id/views): try to add views for video 2 +[2025-08-14 12:35:52.488] [undefined] GET(/:id/views): successfully added views for video 2 with status 200 +[2025-08-14 12:35:53.455] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:35:53.465] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:35:53.476] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:35:53.486] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:35:53.501] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:35:53.509] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:35:55.142] [undefined] GET(/:id): try to get video 7 +[2025-08-14 12:35:55.151] [undefined] GET(/:id): successfully get video 7 with status 200 +[2025-08-14 12:35:55.163] [undefined] GET(/:id/similar): try to get similar videos for video 7 +[2025-08-14 12:35:55.173] [undefined] GET(/:id/similar): successfully get similar videos for video 7 with status 200 +[2025-08-14 12:35:55.187] [undefined] GET(/:id/views): try to add views for video 7 +[2025-08-14 12:35:55.196] [undefined] GET(/:id/views): successfully added views for video 7 with status 200 +[2025-08-14 12:35:57.132] [undefined] GET(/:id): try to get video 7 +[2025-08-14 12:35:57.141] [undefined] GET(/:id): successfully get video 7 with status 200 +[2025-08-14 12:35:57.154] [undefined] GET(/:id/similar): try to get similar videos for video 7 +[2025-08-14 12:35:57.167] [undefined] GET(/:id/similar): successfully get similar videos for video 7 with status 200 +[2025-08-14 12:35:57.215] [undefined] GET(/:id/views): try to add views for video 7 +[2025-08-14 12:35:57.223] [undefined] GET(/:id/views): successfully added views for video 7 with status 200 +[2025-08-14 12:36:03.171] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:36:03.181] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:36:03.194] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:36:03.205] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:36:03.219] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:38:59.466] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:38:59.479] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:38:59.496] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:38:59.512] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:38:59.563] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:38:59.572] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:39:22.705] [undefined] GET(/:id): try to get video 6 +[2025-08-14 12:39:22.715] [undefined] GET(/:id): successfully get video 6 with status 200 +[2025-08-14 12:39:22.727] [undefined] GET(/:id/similar): try to get similar videos for video 6 +[2025-08-14 12:39:22.738] [undefined] GET(/:id/similar): No tags found for video 6 with status 404 +[2025-08-14 12:39:22.766] [undefined] GET(/:id/views): try to add views for video 6 +[2025-08-14 12:39:22.776] [undefined] GET(/:id/views): successfully added views for video 6 with status 200 +[2025-08-14 12:39:27.311] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:39:27.322] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:39:27.336] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:39:27.353] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:39:27.371] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:39:27.379] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:39:34.149] [undefined] POST(/): try to post comment +[2025-08-14 12:39:34.158] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 12:39:36.311] [undefined] POST(/): try to post comment +[2025-08-14 12:39:36.319] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 12:39:40.149] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:39:40.160] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:39:40.172] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:39:40.187] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:39:40.227] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:39:40.235] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:39:48.338] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:39:48.347] [undefined] GET(/:id/like): no likes found adding likes for video 3 with status 200 +[2025-08-14 12:39:51.456] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:39:51.466] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:39:51.479] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:39:51.493] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:39:51.517] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:39:51.525] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:39:56.141] [undefined] DELETE(/:id): try to delete comment 4 +[2025-08-14 12:39:56.149] [undefined] DELETE(/:id): successfully deleted comment with status 200 +[2025-08-14 12:39:56.159] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:39:56.169] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:39:56.181] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:39:56.192] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:39:56.206] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:39:56.214] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:39:56.715] [undefined] DELETE(/:id): try to delete comment 2 +[2025-08-14 12:39:56.723] [undefined] DELETE(/:id): successfully deleted comment with status 200 +[2025-08-14 12:39:56.733] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:39:56.742] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:39:56.754] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:39:56.765] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:39:56.778] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:39:56.785] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:39:58.295] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:39:58.307] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:39:58.320] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:39:58.336] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:39:58.356] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:39:58.364] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:50:01.395] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:50:01.405] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:50:01.418] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:50:01.431] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:50:01.478] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:50:01.487] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:50:05.123] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:50:05.134] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:50:05.147] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:50:05.175] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:50:05.190] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:50:05.201] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:50:08.753] [undefined] POST(/): try to post comment +[2025-08-14 12:50:08.762] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 12:50:09.847] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:50:09.857] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:50:09.883] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:50:09.898] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:50:09.928] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:50:09.936] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:52:04.715] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:52:04.725] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:52:04.738] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:52:04.753] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:52:04.802] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:52:04.811] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:52:06.541] [undefined] POST(/:id/subscribe): try to toggle subscription for channel with id 1 +[2025-08-14 12:52:06.557] [undefined] POST(/:id/subscribe): Successfully unsubscribed from channel with status 200 +[2025-08-14 12:52:12.551] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:52:12.562] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:52:12.577] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:52:12.589] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:52:12.623] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:52:12.632] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:52:13.340] [undefined] POST(/:id/subscribe): try to toggle subscription for channel with id 1 +[2025-08-14 12:52:13.348] [undefined] POST(/:id/subscribe): Successfully subscribed to channel with status 200 +[2025-08-14 12:52:14.202] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:52:14.212] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:52:14.224] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:52:14.238] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:52:14.266] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:52:14.273] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:52:25.529] [undefined] POST(/:id/subscribe): try to toggle subscription for channel with id 1 +[2025-08-14 12:52:25.538] [undefined] POST(/:id/subscribe): Successfully unsubscribed from channel with status 200 +[2025-08-14 12:52:51.437] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:52:51.448] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:52:51.464] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:52:51.478] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:52:51.544] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:52:51.554] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:52:52.981] [undefined] POST(/:id/subscribe): try to toggle subscription for channel with id 1 +[2025-08-14 12:52:52.989] [undefined] POST(/:id/subscribe): Successfully subscribed to channel with status 200 +[2025-08-14 12:52:56.492] [undefined] POST(/:id/subscribe): try to toggle subscription for channel with id 1 +[2025-08-14 12:52:56.500] [undefined] POST(/:id/subscribe): Successfully unsubscribed from channel with status 200 +[2025-08-14 12:54:53.160] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:54:53.171] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:54:53.194] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:54:53.209] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:54:53.238] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:54:53.246] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:55:13.752] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:55:13.762] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:55:13.786] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:55:13.801] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:55:13.864] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:55:13.873] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:55:46.426] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:55:46.436] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:55:46.471] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:55:46.484] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:55:46.512] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:55:46.521] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:55:48.398] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:55:48.407] [undefined] GET(/:id/like): likes found, removing like for video 3 with status 200 +[2025-08-14 12:56:14.257] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:56:14.267] [undefined] GET(/:id/like): no likes found adding likes for video 3 with status 200 +[2025-08-14 12:56:18.282] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:56:18.291] [undefined] GET(/:id/like): likes found, removing like for video 3 with status 200 +[2025-08-14 12:56:33.480] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:56:33.491] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:56:33.514] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:56:33.528] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:56:33.594] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:56:33.603] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:56:35.346] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:56:35.355] [undefined] GET(/:id/like): no likes found adding likes for video 3 with status 200 +[2025-08-14 12:56:53.967] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:56:53.977] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:56:53.996] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:56:54.010] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:56:54.059] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:56:54.069] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:56:55.613] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:56:55.621] [undefined] GET(/:id/like): likes found, removing like for video 3 with status 200 +[2025-08-14 12:56:56.513] [undefined] GET(/:id/like): try to toggle like on video 3 +[2025-08-14 12:56:56.522] [undefined] GET(/:id/like): no likes found adding likes for video 3 with status 200 +[2025-08-14 12:59:21.229] [undefined] GET(/:id): try to get video 3 +[2025-08-14 12:59:21.240] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 12:59:21.254] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 12:59:21.269] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 12:59:21.311] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 12:59:21.320] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 12:59:23.581] [undefined] POST(/): try to post comment +[2025-08-14 12:59:23.590] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 12:59:26.482] [undefined] POST(/): try to post comment +[2025-08-14 12:59:26.493] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 13:03:00.902] [undefined] POST(/): try to register a user with username: test1 and email: test1@gmail.com +[2025-08-14 13:03:00.954] [undefined] POST(/): successfully registered with status 200 +[2025-08-14 13:03:00.960] [undefined] POST(/login): try to login with username 'test1' +[2025-08-14 13:03:01.011] [undefined] POST(/login): Successfully logged in with status 200 +[2025-08-14 13:03:02.685] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:03:02.689] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:03:02.692] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:02.695] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:02.703] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:03:11.325] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:03:11.328] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:11.352] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:03:11.356] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:11.363] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:03:12.975] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:03:12.978] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:23.243] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:03:23.246] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:34.890] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:03:34.894] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:34.899] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:03:34.903] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:03:34.913] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:05:03.204] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:05:03.207] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:03.210] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:05:03.214] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:03.223] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:05:10.894] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:05:10.898] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:10.901] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:05:10.905] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:10.913] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:05:29.014] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:05:29.017] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:29.022] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:05:29.026] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:29.035] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:05:52.641] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:05:52.643] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:52.647] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:05:52.650] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:05:52.657] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:07:57.035] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:07:57.038] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:07:57.041] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:07:57.045] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:07:57.054] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:08:23.710] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:08:23.712] [undefined] GET(/:id/channel): failed to retrieve channel of user 3 because it doesn't exist with status 404 +[2025-08-14 13:08:23.716] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:08:23.720] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:08:23.729] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:08:28.555] [undefined] POST(/): try to create new channel with owner 3 and name test1 +[2025-08-14 13:08:28.557] [undefined] POST(/): Successfully created new channel with name test1 with status 200 +[2025-08-14 13:08:30.961] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:08:30.965] [undefined] GET(/:id/channel): successfully retrieved channel of user 3 with status 200 +[2025-08-14 13:08:30.968] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:08:30.972] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:08:30.980] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:08:47.670] [undefined] GET(/:id/channel): try to retrieve channel of user 3 +[2025-08-14 13:08:47.673] [undefined] GET(/:id/channel): successfully retrieved channel of user 3 with status 200 +[2025-08-14 13:08:47.676] [undefined] GET(/:id/history): try to retrieve history of user 3 +[2025-08-14 13:08:47.679] [undefined] GET(/:id/history): failed to retrieve history of user 3 because it doesn't exist with status 404 +[2025-08-14 13:08:47.687] [undefined] GET(/user/:id): Playlists retrieved for user with id 3 with status 200 +[2025-08-14 13:09:09.402] [undefined] POST(/): try to register a user with username: test2 and email: test2@gmail.com +[2025-08-14 13:09:09.451] [undefined] POST(/): successfully registered with status 200 +[2025-08-14 13:09:09.458] [undefined] POST(/login): try to login with username 'test2' +[2025-08-14 13:09:09.508] [undefined] POST(/login): Successfully logged in with status 200 +[2025-08-14 13:09:11.134] [undefined] GET(/:id/channel): try to retrieve channel of user 4 +[2025-08-14 13:09:11.136] [undefined] GET(/:id/channel): failed to retrieve channel of user 4 because it doesn't exist with status 404 +[2025-08-14 13:09:11.141] [undefined] GET(/:id/history): try to retrieve history of user 4 +[2025-08-14 13:09:11.144] [undefined] GET(/:id/history): failed to retrieve history of user 4 because it doesn't exist with status 404 +[2025-08-14 13:09:11.150] [undefined] GET(/user/:id): Playlists retrieved for user with id 4 with status 200 +[2025-08-14 13:09:16.803] [undefined] POST(/): try to create new channel with owner 4 and name test2 +[2025-08-14 13:09:16.806] [undefined] POST(/): Successfully created new channel with name test2 with status 200 +[2025-08-14 13:33:25.288] [undefined] GET(/:id/channel): try to retrieve channel of user 4 +[2025-08-14 13:33:25.291] [undefined] GET(/:id/channel): successfully retrieved channel of user 4 with status 200 +[2025-08-14 13:33:25.294] [undefined] GET(/:id/history): try to retrieve history of user 4 +[2025-08-14 13:33:25.298] [undefined] GET(/:id/history): failed to retrieve history of user 4 because it doesn't exist with status 404 +[2025-08-14 13:33:25.306] [undefined] GET(/user/:id): Playlists retrieved for user with id 4 with status 200 +[2025-08-14 13:33:49.619] [undefined] POST(/): try to register a user with username: test3 and email: test3@gmail.com +[2025-08-14 13:33:49.668] [undefined] POST(/): successfully registered with status 200 +[2025-08-14 13:33:49.674] [undefined] POST(/login): try to login with username 'test3' +[2025-08-14 13:33:49.725] [undefined] POST(/login): Successfully logged in with status 200 +[2025-08-14 13:33:52.225] [undefined] GET(/:id/channel): try to retrieve channel of user 5 +[2025-08-14 13:33:52.229] [undefined] GET(/:id/channel): failed to retrieve channel of user 5 because it doesn't exist with status 404 +[2025-08-14 13:33:52.231] [undefined] GET(/:id/history): try to retrieve history of user 5 +[2025-08-14 13:33:52.235] [undefined] GET(/:id/history): failed to retrieve history of user 5 because it doesn't exist with status 404 +[2025-08-14 13:33:52.243] [undefined] GET(/user/:id): Playlists retrieved for user with id 5 with status 200 +[2025-08-14 13:33:57.691] [undefined] POST(/): try to create new channel with owner 5 and name test3 +[2025-08-14 13:33:57.694] [undefined] POST(/): Successfully created new channel with name test3 with status 200 +[2025-08-14 13:33:57.707] [undefined] GET(/:id/channel): try to retrieve channel of user 5 +[2025-08-14 13:33:57.711] [undefined] GET(/:id/channel): successfully retrieved channel of user 5 with status 200 +[2025-08-14 13:34:15.105] [undefined] GET(/:id/channel): try to retrieve channel of user 5 +[2025-08-14 13:34:15.109] [undefined] GET(/:id/channel): successfully retrieved channel of user 5 with status 200 +[2025-08-14 13:34:15.112] [undefined] GET(/:id/history): try to retrieve history of user 5 +[2025-08-14 13:34:15.115] [undefined] GET(/:id/history): failed to retrieve history of user 5 because it doesn't exist with status 404 +[2025-08-14 13:34:15.123] [undefined] GET(/user/:id): Playlists retrieved for user with id 5 with status 200 +[2025-08-14 13:37:01.584] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:37:01.595] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:37:01.607] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:37:01.622] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:37:01.653] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:37:01.665] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:37:07.528] [undefined] POST(/): try to post comment +[2025-08-14 13:37:07.538] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 13:40:41.292] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:40:41.302] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:40:41.315] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:40:41.329] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:40:41.358] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:40:41.367] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:40:46.013] [undefined] PUT(/:id): try to update comment 9 +[2025-08-14 13:40:46.023] [undefined] PUT(/:id): successfully update comment with status 200 +[2025-08-14 13:40:47.327] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:40:47.337] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:40:47.354] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:40:47.372] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:40:47.391] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:40:47.399] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:42:08.300] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:42:08.311] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:42:08.328] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:42:08.341] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:42:08.391] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:42:08.401] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:42:19.528] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:42:19.539] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:42:19.562] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:42:19.575] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:42:19.607] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:42:19.617] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:42:21.343] [undefined] DELETE(/:id): try to delete comment 9 +[2025-08-14 13:42:21.351] [undefined] DELETE(/:id): successfully deleted comment with status 200 +[2025-08-14 13:42:28.765] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:42:28.775] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:42:28.790] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:42:28.804] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:42:28.872] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:42:28.882] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:42:42.291] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:42:42.302] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:42:42.319] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:42:42.335] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:42:42.363] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:42:42.371] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 +[2025-08-14 13:42:43.983] [undefined] POST(/): try to post comment +[2025-08-14 13:42:43.991] [undefined] POST(/): successfully post comment with status 200 +[2025-08-14 13:42:45.756] [undefined] DELETE(/:id): try to delete comment 10 +[2025-08-14 13:42:45.765] [undefined] DELETE(/:id): successfully deleted comment with status 200 +[2025-08-14 13:42:45.776] [undefined] GET(/:id): try to get video 3 +[2025-08-14 13:42:45.786] [undefined] GET(/:id): successfully get video 3 with status 200 +[2025-08-14 13:42:45.798] [undefined] GET(/:id/similar): try to get similar videos for video 3 +[2025-08-14 13:42:45.808] [undefined] GET(/:id/similar): successfully get similar videos for video 3 with status 200 +[2025-08-14 13:42:45.822] [undefined] GET(/:id/views): try to add views for video 3 +[2025-08-14 13:42:45.830] [undefined] GET(/:id/views): successfully added views for video 3 with status 200 diff --git a/frontend/src/components/Alert.jsx b/frontend/src/components/Alert.jsx index 255cdf0..ef41c19 100644 --- a/frontend/src/components/Alert.jsx +++ b/frontend/src/components/Alert.jsx @@ -6,7 +6,7 @@ export default function Alert({ type, message, onClose }) { useEffect(() => { const timer = setTimeout(() => { onClose(); - }, 15000); // 15 seconds + }, 5000); // 5 seconds return () => clearTimeout(timer); }, [onClose]); diff --git a/frontend/src/components/AlertList.jsx b/frontend/src/components/AlertList.jsx index 649ea90..82bc9b6 100644 --- a/frontend/src/components/AlertList.jsx +++ b/frontend/src/components/AlertList.jsx @@ -3,7 +3,7 @@ import Alert from "./Alert.jsx"; export default function AlertList({ alerts, onCloseAlert }) { return ( -
+
{alerts.map((alert, index) => ( { - try { - const token = localStorage.getItem('token'); - const response = await fetch(`/api/comments/${id}`, { - method: 'DELETE', - headers: { - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${token}` - } - }); - - if (response.ok) { - // Refresh the video data to update the comments list - refetchVideo(); - } - } catch (error) { - console.error('Error deleting comment:', error); - } + const token = localStorage.getItem('token'); + const response = await deleteComment(id, token, addAlert); + if (response) { + refetchVideo(); + } } const handleEditSubmit = async (id, content) => { @@ -41,36 +30,25 @@ export default function Comment({ comment, index, videoId, refetchVideo, doShowC alert("Comment cannot be empty"); return; } + // Retrieve the token from localStorage + const token = localStorage.getItem('token'); - try { - // Retrieve the token from localStorage - const token = localStorage.getItem('token'); + if (!token) { + navigation('/login'); + return; + } - if (!token) { - navigation('/login'); - return; - } + const body = { + content: content, + video: videoId + }; - const response = await fetch(`/api/comments/${comment.id}`, { - method: 'PUT', - headers: { - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${token}` - }, - body: JSON.stringify({ - content: content, - video: videoId - }) - }); + const response = await updateComment(id, body, token, addAlert); - if (!response.ok) { - throw new Error('Failed to post comment'); - } + if (response) { setEditMode(false); - - } catch (error) { - console.error('Error posting comment:', error); } + } return ( diff --git a/frontend/src/components/Navbar.jsx b/frontend/src/components/Navbar.jsx index 15aa707..0e760cd 100644 --- a/frontend/src/components/Navbar.jsx +++ b/frontend/src/components/Navbar.jsx @@ -39,7 +39,8 @@ export default function Navbar({ isSearchPage = false, alerts = [], onCloseAlert }; return ( -