mirror of
https://gitlab.com/foxixus/neomovies.git
synced 2025-10-27 17:38:50 +05:00
- /src/api.ts - /src/lib/utils.ts - /src/lib/neoApi.ts - /src/lib/mongodb.ts - /src/lib/favoritesApi.ts - /src/lib/models/Favorite.ts - /src/hooks/useTMDBMovies.ts - /src/hooks/useImageLoader.ts - /src/hooks/useMovies.ts - /src/types/movie.ts - /src/components/SearchResults.tsx - /src/components/SettingsContent.tsx - /src/components/MovieCard.tsx - /src/components/FavoriteButton.tsx - /src/components/admin/MovieSearch.tsx - /src/app/page.tsx - /src/app/movie/[id]/page.tsx - /src/app/movie/[id]/MovieContent.tsx - /src/app/api/movies/upcoming/route.ts - /src/app/api/movies/search/route.ts - /src/app/api/movies/top-rated/route.ts - /src/app/api/movies/[id]/route.ts - /src/app/api/movies/popular/route.ts - /src/app/api/favorites/route.ts - /src/app/api/favorites/check/[mediaId]/route.ts - /src/app/api/favorites/[mediaId]/route.ts - /src/app/tv/[id]/TVShowContent.tsx - /src/app/tv/[id]/TVShowPage.tsx - /src/app/tv/[id]/page.tsx - /src/app/favorites/page.tsx - /src/configs/auth.ts - /next.config.js - /package.json - /README.md - /package-lock.json
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { NextResponse } from 'next/server';
|
|
import { getServerSession } from 'next-auth';
|
|
import { connectToDatabase } from '@/lib/mongodb';
|
|
|
|
// DELETE /api/favorites/[mediaId] - удалить из избранного
|
|
export async function DELETE(
|
|
request: Request,
|
|
{ params }: { params: { mediaId: string } }
|
|
) {
|
|
try {
|
|
const session = await getServerSession();
|
|
if (!session?.user?.email) {
|
|
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
|
|
}
|
|
|
|
const { searchParams } = new URL(request.url);
|
|
const mediaType = searchParams.get('mediaType');
|
|
const mediaId = params.mediaId;
|
|
|
|
if (!mediaType || !mediaId) {
|
|
return NextResponse.json({ error: 'Missing mediaType or mediaId' }, { status: 400 });
|
|
}
|
|
|
|
const { db } = await connectToDatabase();
|
|
|
|
const result = await db.collection('favorites').deleteOne({
|
|
userId: session.user.email,
|
|
mediaId,
|
|
mediaType
|
|
});
|
|
|
|
if (result.deletedCount === 0) {
|
|
return NextResponse.json({ error: 'Favorite not found' }, { status: 404 });
|
|
}
|
|
|
|
return NextResponse.json({ message: 'Removed from favorites' });
|
|
} catch (error) {
|
|
console.error('Error removing from favorites:', error);
|
|
return NextResponse.json({ error: 'Failed to remove from favorites' }, { status: 500 });
|
|
}
|
|
}
|