Persist configurable connectivity diagnostics
This commit is contained in:
@@ -4,8 +4,9 @@ import type { ConnectivityDiagnosticsUseCase } from '../../features/diagnostics/
|
||||
import { sendJson } from '../response.js';
|
||||
|
||||
interface ConnectivityDiagnosticsRouteDependencies {
|
||||
diagnostics: Pick<ConnectivityDiagnosticsUseCase, 'run'>;
|
||||
diagnostics: Pick<ConnectivityDiagnosticsUseCase, 'run' | 'updateSettings'>;
|
||||
readBody(req: IncomingMessage): Promise<Record<string, unknown>>;
|
||||
sendState(res: ServerResponse): Promise<void>;
|
||||
}
|
||||
|
||||
export function createConnectivityDiagnosticsRoute(
|
||||
@@ -13,11 +14,19 @@ export function createConnectivityDiagnosticsRoute(
|
||||
) {
|
||||
return {
|
||||
async handle(req: IncomingMessage, res: ServerResponse) {
|
||||
if (req.method !== 'POST' || req.url !== '/api/diagnostics/connectivity') return false;
|
||||
const { services = [], target = null } = await dependencies.readBody(req);
|
||||
const result = await dependencies.diagnostics.run(services, target);
|
||||
sendJson(res, 200, result);
|
||||
return true;
|
||||
if (req.url === '/api/diagnostics/connectivity' && req.method === 'POST') {
|
||||
const { target = null } = await dependencies.readBody(req);
|
||||
const result = await dependencies.diagnostics.run(target);
|
||||
sendJson(res, 200, result);
|
||||
return true;
|
||||
}
|
||||
if (req.url === '/api/diagnostics/settings' && req.method === 'PUT') {
|
||||
const { settings, expectedRevision } = await dependencies.readBody(req);
|
||||
dependencies.diagnostics.updateSettings(settings, expectedRevision);
|
||||
await dependencies.sendState(res);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user