/** * GET /api/v1/settings/embedding — retrieve embedding settings * POST /api/v1/settings/embedding — update active embedding settings * PUT /api/v1/settings/embedding — alias for POST */ import { json } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; import type { EmbeddingSettingsUpdateDto } from '$lib/dtos/embedding-settings.js'; import { getClient } from '$lib/server/db/client'; import { EmbeddingSettingsDtoMapper } from '$lib/server/mappers/embedding-settings.dto.mapper.js'; import { EmbeddingSettingsService } from '$lib/server/services/embedding-settings.service.js'; import { handleServiceError, InvalidInputError } from '$lib/server/utils/validation'; // --------------------------------------------------------------------------- // GET — Return embedding settings // --------------------------------------------------------------------------- export const GET: RequestHandler = () => { try { const service = new EmbeddingSettingsService(getClient()); return json(EmbeddingSettingsDtoMapper.toDto(service.getSettings())); } catch (err) { return handleServiceError(err); } }; // --------------------------------------------------------------------------- // POST/PUT — Create or update a profile // --------------------------------------------------------------------------- async function upsertSettings(body: unknown) { if (typeof body !== 'object' || body === null) { throw new InvalidInputError('Request body must be a JSON object'); } const service = new EmbeddingSettingsService(getClient()); const settings = await service.updateSettings(body as EmbeddingSettingsUpdateDto); return EmbeddingSettingsDtoMapper.toDto(settings); } export const POST: RequestHandler = async ({ request }) => { try { const body = await request.json(); return json(await upsertSettings(body)); } catch (err) { return handleServiceError(err); } }; export const PUT: RequestHandler = POST;