Spaces:
Sleeping
Sleeping
| import { txasupabase } from '../../../lib/txasupabase.js'; | |
| export const POST = async ({ request, cookies }) => { | |
| const token = cookies.get('auth_token')?.value; | |
| if (!token) return new Response(JSON.stringify({ error: 'Bạn cần đăng nhập để thực hiện!' }), { status: 401 }); | |
| try { | |
| const { movieSlug, movieName, movieThumb } = await request.json(); | |
| const userData = JSON.parse(Buffer.from(token, 'base64').toString('utf-8')); | |
| // Tìm người dùng trên Supabase dựa vào ID | |
| const user = await txasupabase.getUserById(userData.id); | |
| if (!user) return new Response(JSON.stringify({ error: 'Không tìm thấy người dùng!' }), { status: 404 }); | |
| const favorites = user.favorites || []; | |
| const favIndex = favorites.findIndex(f => f.slug === movieSlug); | |
| let action = ''; | |
| if (favIndex === -1) { | |
| favorites.push({ slug: movieSlug, name: movieName, thumb: movieThumb, addedAt: new Date().toISOString() }); | |
| action = 'added'; | |
| } else { | |
| favorites.splice(favIndex, 1); | |
| action = 'removed'; | |
| } | |
| // Cập nhật lại thông tin phim yêu thích lên Supabase | |
| await txasupabase.saveUser({ | |
| ...user, | |
| favorites | |
| }); | |
| return new Response(JSON.stringify({ message: action === 'added' ? 'Đã thêm vào yêu thích!' : 'Đã xóa khỏi yêu thích!', action }), { status: 200 }); | |
| } catch (err) { | |
| console.error('[Favorite POST Error]:', err); | |
| return new Response(JSON.stringify({ error: 'Lỗi hệ thống!' }), { status: 500 }); | |
| } | |
| }; | |
| export const GET = async ({ url, cookies }) => { | |
| const token = cookies.get('auth_token')?.value; | |
| if (!token) return new Response(JSON.stringify({ favorites: [] }), { status: 200 }); | |
| try { | |
| const userData = JSON.parse(Buffer.from(token, 'base64').toString('utf-8')); | |
| const user = await txasupabase.getUserById(userData.id); | |
| return new Response(JSON.stringify({ favorites: user?.favorites || [] }), { status: 200 }); | |
| } catch (err) { | |
| console.error('[Favorite GET Error]:', err); | |
| return new Response(JSON.stringify({ favorites: [] }), { status: 200 }); | |
| } | |
| }; | |