import { createStorageAdapter } from "@/lib/storage"; import type { APIRoute } from "astro"; import { withErrorHandler } from "@/lib/errors"; import { logger } from "@/lib/logger"; import { badRequest, forbidden, success } from "@/lib/api"; export const POST: APIRoute = withErrorHandler(async ({ request, locals }) => { const user = locals.user; if (!user?.isAdmin) { return forbidden(); } let config; try { config = await request.json(); } catch (e) { return badRequest("Invalid JSON"); } if (!config.type) return badRequest("Type required"); const adapter = createStorageAdapter(config); const testKey = `test-connection-${Date.now()}.txt`; await adapter.put(testKey, Buffer.from("test connection")); await adapter.delete(testKey); logger.info({ adminId: user.id, storageType: config.type }, "Storage connection test successful"); return success({ success: true }); });