Spaces:
Sleeping
Sleeping
File size: 2,118 Bytes
4bea261 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import { getCountries, saveCountry, deleteCountry, bulkDeleteCountries, syncFromMovies } from '../../../lib/localDb.js';
export async function GET({ request }) {
try {
const list = await getCountries();
return new Response(JSON.stringify(list));
} catch (e) {
return new Response(JSON.stringify({ error: e.message }), { status: 500 });
}
}
export async function POST({ request }) {
const cookies = request.headers.get('cookie') || '';
if (!cookies.includes('auth_token=')) {
return new Response(JSON.stringify({ error: 'Unauthorized' }), { status: 401 });
}
try {
const { slug, name, sync } = await request.json();
if (sync) {
const list = await syncFromMovies('countries');
return new Response(JSON.stringify({ message: 'Đồng bộ quốc gia thành công!', list }));
}
if (!slug || !name) {
return new Response(JSON.stringify({ error: 'Slug và Tên quốc gia không được để trống' }), { status: 400 });
}
const list = await saveCountry(slug, name);
return new Response(JSON.stringify({ message: 'Lưu quốc gia thành công!', list }));
} catch (e) {
return new Response(JSON.stringify({ error: e.message }), { status: 500 });
}
}
export async function DELETE({ request }) {
const cookies = request.headers.get('cookie') || '';
if (!cookies.includes('auth_token=')) {
return new Response(JSON.stringify({ error: 'Unauthorized' }), { status: 401 });
}
try {
const { slug, slugs } = await request.json();
let list;
if (slugs && Array.isArray(slugs)) {
list = await bulkDeleteCountries(slugs);
return new Response(JSON.stringify({ message: `Đã xóa hàng loạt ${slugs.length} quốc gia!`, list }));
}
if (!slug) {
return new Response(JSON.stringify({ error: 'Thiếu slug quốc gia để xóa' }), { status: 400 });
}
list = await deleteCountry(slug);
return new Response(JSON.stringify({ message: 'Xóa quốc gia thành công!', list }));
} catch (e) {
return new Response(JSON.stringify({ error: e.message }), { status: 500 });
}
}
|