Files
dockhand/src/routes/api/stacks/path-hints/+server.ts
T
2026-01-11 09:01:42 +01:00

38 lines
1.1 KiB
TypeScript

import { json, type RequestHandler } from '@sveltejs/kit';
import { getStackPathHints } from '$lib/server/stacks';
import { authorize } from '$lib/server/authorize';
/**
* GET /api/stacks/path-hints?name=stackName&env=envId
* Returns path hints extracted from Docker container labels for a stack.
*/
export const GET: RequestHandler = async ({ url, cookies }) => {
const auth = await authorize(cookies);
if (auth.authEnabled && !auth.isAuthenticated) {
return json({ error: 'Unauthorized' }, { status: 401 });
}
const stackName = url.searchParams.get('name');
const envId = url.searchParams.get('env');
if (!stackName) {
return json({ error: 'Stack name is required' }, { status: 400 });
}
try {
const hints = await getStackPathHints(stackName, envId ? parseInt(envId) : undefined);
return json({
stackName,
workingDir: hints.workingDir,
configFiles: hints.configFiles
});
} catch (error) {
console.error('Failed to get stack path hints:', error);
return json(
{ error: error instanceof Error ? error.message : 'Failed to get path hints' },
{ status: 500 }
);
}
};