46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
import { db } from '$lib/server/db';
|
|
import { baskets, drawing } from '$lib/server/db/schema';
|
|
import { getPath, getSettings } from '$lib/server/settings';
|
|
import { error, json } from '@sveltejs/kit';
|
|
import { sql } from 'drizzle-orm';
|
|
|
|
export const GET = async () => {
|
|
const s = getSettings();
|
|
if (s.remote_server) {
|
|
const connStr = getPath(s);
|
|
try {
|
|
const res = await fetch(`${connStr}/api/drawing`, { headers: { 'TAM-KEY': s.remote_key } });
|
|
if (!res.ok) throw error(res.status);
|
|
const data = await res.json();
|
|
return json(data);
|
|
} catch {
|
|
return json([]);
|
|
}
|
|
} else {
|
|
const data = await db.select().from(drawing).orderBy(drawing.prefix, drawing.b_id);
|
|
return json(data);
|
|
}
|
|
};
|
|
|
|
export const POST = async ({ request }) => {
|
|
const reqData = await request.json();
|
|
const s = getSettings();
|
|
if (s.remote_server) {
|
|
const connStr = getPath(s);
|
|
const res = await fetch(`${connStr}/api/drawing`, {
|
|
method: 'POST',
|
|
headers: { 'TAM-KEY': s.remote_key, 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(reqData)
|
|
});
|
|
if (!res.ok) throw error(res.status);
|
|
}
|
|
await db
|
|
.insert(baskets)
|
|
.values(reqData)
|
|
.onConflictDoUpdate({
|
|
target: [baskets.prefix, baskets.b_id],
|
|
set: { winning_ticket: sql`EXCLUDED.winning_ticket` }
|
|
});
|
|
return json(reqData);
|
|
};
|