refactor: let the config write error answer the 503 in the plugin and theme routes

This commit is contained in:
Linus Rath
2026-11-01 00:15:14 +01:00
parent 5e4b6465d1
commit d73494593a
6 changed files with 0 additions and 28 deletions
@@ -6,7 +6,6 @@ import { HistoryError, readHistoryEntry } from '@/lib/admin/extension-history';
import { getPlugin, getTheme, savePlugin, saveTheme } from '@/lib/admin/plugin-registry';
import { invalidateFrameOriginsCache } from '@/lib/admin/csp-frame-origins';
import { configReadOnlyResponse } from '@/lib/admin/config-read-only-response';
import { storeUnavailableResponse } from '@/lib/admin/store-unavailable-response';
import { EXTENSION_ID_RE } from '@/lib/extension-package';
/**
@@ -88,8 +87,6 @@ export async function POST(
}
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Extension rollback error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Rollback failed' }, { status: 500 });
}
-3
View File
@@ -23,7 +23,6 @@ import {
import { configManager } from '@/lib/admin/config-manager';
import { checkBundleSignature } from '@/lib/admin/directory-keys';
import { configReadOnlyResponse } from '@/lib/admin/config-read-only-response';
import { storeUnavailableResponse } from '@/lib/admin/store-unavailable-response';
import { compareVersions } from '@/lib/version-compare';
import { RELEASE_VERSION } from '@/lib/release-version';
import {
@@ -387,8 +386,6 @@ export async function POST(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
if (error instanceof DirectoryError) {
return NextResponse.json({ error: error.message }, { status: 502 });
}
-4
View File
@@ -61,8 +61,6 @@ export async function POST(request: NextRequest) {
} catch (err) {
const readOnly = configReadOnlyResponse(err);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(err);
if (unavailable) return unavailable;
logger.error('plugin-approvals POST', { error: err instanceof Error ? err.message : String(err) });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
@@ -89,8 +87,6 @@ export async function DELETE(request: NextRequest) {
} catch (err) {
const readOnly = configReadOnlyResponse(err);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(err);
if (unavailable) return unavailable;
logger.error('plugin-approvals DELETE', { error: err instanceof Error ? err.message : String(err) });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
@@ -135,8 +135,6 @@ export async function PUT(
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
}
@@ -176,8 +174,6 @@ export async function DELETE(
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
}
-7
View File
@@ -16,7 +16,6 @@ import { keptVersions, listHistory } from '@/lib/admin/extension-history';
import { ExtensionPackageError, readPluginPackage, suspiciousCode } from '@/lib/extension-package';
import { MAX_PLUGIN_SIZE } from '@/lib/plugin-types';
import { configReadOnlyResponse } from '@/lib/admin/config-read-only-response';
import { storeUnavailableResponse } from '@/lib/admin/store-unavailable-response';
/**
* GET /api/admin/plugins - List all admin-managed plugins
@@ -134,8 +133,6 @@ export async function POST(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Plugin install error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
@@ -189,8 +186,6 @@ export async function PATCH(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Plugin update error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
@@ -224,8 +219,6 @@ export async function DELETE(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Plugin delete error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
-7
View File
@@ -15,7 +15,6 @@ import { keptVersions, listHistory } from '@/lib/admin/extension-history';
import { readThemePackage } from '@/lib/extension-package';
import { configReadOnlyResponse } from '@/lib/admin/config-read-only-response';
import { storeUnavailableResponse } from '@/lib/admin/store-unavailable-response';
/**
* GET /api/admin/themes - List all admin-managed themes
@@ -86,8 +85,6 @@ export async function POST(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Theme install error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
@@ -127,8 +124,6 @@ export async function PATCH(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Theme update error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
@@ -161,8 +156,6 @@ export async function DELETE(request: NextRequest) {
} catch (error) {
const readOnly = configReadOnlyResponse(error);
if (readOnly) return readOnly;
const unavailable = storeUnavailableResponse(error);
if (unavailable) return unavailable;
logger.error('Theme delete error', { error: error instanceof Error ? error.message : 'Unknown error' });
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}