UNPKG

create-mock-backend

Version:

This is npx starter package for installing your favourite backend template for mockBee.

79 lines (72 loc) 2.01 kB
import { Response } from "miragejs"; import { requiresAuth } from "../utils/authUtils"; /** * All the routes related to Liked Videos are present here. * These are private routes. * Client needs to add "authorization" header with JWT token in it to access it. * */ /** * This handler handles getting videos from user's likes. * send GET Request at /api/user/likes * */ export const getLikedVideosHandler = function (schema, request) { const user = requiresAuth.call(this, request); try { if (!user) { return new Response( 404, {}, { errors: ["The email you entered is not Registered. Not Found error"], } ); } return new Response(200, {}, { likes: user.likes }); } catch (error) { return new Response( 500, {}, { error, } ); } }; /** * This handler handles adding videos to user's likes. * send POST Request at /api/user/likes * body contains {video} * */ export const addItemToLikedVideos = function (schema, request) { const user = requiresAuth.call(this, request); if (user) { const { video } = JSON.parse(request.requestBody); user.likes.push(video); return new Response(201, {}, { likes: user.likes }); } return new Response( 404, {}, { errors: ["The email you entered is not Registered. Not Found error"], } ); }; /** * This handler handles removing videos from user's likes. * send DELETE Request at /api/user/likes/:videoId * */ export const removeItemFromLikedVideos = function (schema, request) { const user = requiresAuth.call(this, request); if (user) { const videoId = request.params.videoId; const filteredLikes = user.likes.filter((item) => item._id !== videoId); this.db.users.update({ likes: filteredLikes }); return new Response(200, {}, { likes: filteredLikes }); } return new Response( 404, {}, { errors: ["The user you request does not exist. Not Found error."] } ); };