import { json, error } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; import { env } from '$env/dynamic/public'; const API_BASE = env.PUBLIC_POST_IMAGE; // Replace an existing promo's banner image. export const POST: RequestHandler = async ({ request }) => { try { const formData = await request.formData(); const country = formData.get('country') as string; const slug = formData.get('slug') as string; const uid = formData.get('uid') as string; const displayName = formData.get('displayName') as string; const email = formData.get('email') as string; const banner = formData.get('banner') as File; if (!country || !slug || !uid || !displayName || !email || !banner) { throw error(400, 'Missing required fields'); } const endpoint = `${API_BASE}/catalog/banner/${encodeURIComponent(country)}/${encodeURIComponent(slug)}` + `/${encodeURIComponent(uid)}/${encodeURIComponent(displayName)}/${encodeURIComponent(email)}`; const upstream = new FormData(); upstream.append('banner', banner); const response = await fetch(endpoint, { method: 'POST', body: upstream }); if (!response.ok) { const data = await response.json().catch(() => ({ detail: response.statusText })); throw error(response.status, data.detail || 'Replace banner failed'); } return json(await response.json()); } catch (err) { if (err && typeof err === 'object' && 'status' in err) throw err; throw error(500, err instanceof Error ? err.message : 'Internal server error'); } };