mirror of
https://gitlab.com/foxixus/neomovies.git
synced 2025-10-28 09:58:49 +05:00
Update 35 files
- /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
This commit is contained in:
41
src/app/api/favorites/[mediaId]/route.ts
Normal file
41
src/app/api/favorites/[mediaId]/route.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
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 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user